The Propeller processor chip is the most unique micro-controller on the market today.
 It's not just a single microprocessor, but EIGHT independent processors that share
resources like memory and I/O pins.   And it can do some pretty amazing things that
the rest of the microcontrollers like the Ardino and PICs just plain can't do!  

(But today, all we want to do it blink an LED)

Each of the processors (called a Cog) has 512 LONGS (32 bits each) (or 2048 bytes) of RAM
memory for it's own use.  In addition, all eight processors share an additional 64K bytes
(16K LONGS) of shared HUB memory. Hub memory is divided into 32K bytes of ROM
(from address 0 to 7FFF, or low memory) and 32K bytes (8092 LONGS) of RAM from 8000 to
FFFF hex).

The ROM section contains the boot loader code, math tables, and character fonts. 
RAM is for program storage, variables and stack space.
 The hub controls COG access to Propeller resources like memory or I/O pins in "round robin"
fashion. For more exciting details of the COG and HUB tune into chapter 5 of the manual and
check it out!

The programming language is called Spin, and it too is rather unique.

Today I'd like to introduce the Parallax "QuickStart" board.

This is probably the best board to buy to get started with the Propeller chip from Parallax
since it has more useful toys to play with - built in.  No need to learn to wire up microelectronic
circuits just to blink an LED!

The normal (necessary) chips are on board, of course...
P8x32MM Propeller processor chip, 64 KB EEPROM, USB interface chip and voltage regulator
are all there. But this board also has, across the bottom edge, eight "touch pads" and eight LEDs
that you can play with immediately.

The Touchpads are used as input buttons.  They take a bit more programming support than a regular
switch, but they cost a whole lot less (they are "printed" on the circuit board) and work pretty well.
But that's a bit more advanced topic (the required Touchpad drivers are available on-line at the
Propeller Object Exchange)

So first off, lets, hook up and get started...

Step 1: SetUp the QuickStart Board

Physically connecting the QuickStart board to your PC is simplicity itself,

but there IS a catch.

Since this is a USB device, you MUST load the USB drivers before plugging the board's
USB cable  into your computer.

Driver and editor are downloaded from Parallax at their web site...

There is quite a bit of stuff there for free, but all we really need to get started is the
Propeller/Spin Tool Software.

          Propeller/Spin Tool Software v1.2.7 (R2) - (Supports Windows 2K/XP/Vista/7.
          Requires IE7 or newer Or FireFox 3.0 or newer)
           Includes software, USB driver, Propeller Manual, PE Kit Labs text and example
           code, schematics,  quick reference, Propeller Help and tutorial examples.

Click the download tab, save the file to your hard drive. 

Before running the setup-Propeller-Tool file, close all other programs that may be
running on your computer.

Then click on the setup program and follow the instructions.  Pretty normal stuff.

Personally, I install to a custom folder  - C:\Prop - instead of the default in the
Program Files folder. It's a lot easier to get to and spell(!)

When the setup program finishes, you are all ready to get going.

<p>Just recently resurrected mine, Parallax now has LINUX (Debian) releases of their Spin &amp; Propeller-C Simple IDE's.</p><p><a href="https://www.parallax.com/downloads/propelleride-software-linux" rel="nofollow">http://www.parallax.com/downloads/propelleride-so...</a></p><p><a href="http://learn.parallax.com/tutorials/language/propeller-c/propeller-c-set-simpleide/linux" rel="nofollow">http://learn.parallax.com/tutorials/language/prope...</a></p><p>Both run great under UBUNTU 16.06/64-bit on a 8GB/Athalon-X2/64 desktop. </p>
<p>Also, the FTDI USB&lt;--&gt;Serial driver is standard in most distros, but they also include a link and info on how to install the driver if necessary.</p>
I have some of the old dip based propellers where you pretty much have to make your own development board. If people only knew what they can do. 8 brains.....
<p>The thing people easily overlook here is that the cores are asleep unless the application (and developer) wants to use them. It can start, pause, and stop cores at will, and can even switch between its low-speed internal RC Oscillator to an external oscillator, going from about 20 KHz speed to 80 MHz in very short time, then back again, which is great for systems that need to wait for some kind of stimulus events spaced in time, but still do high-speed processing in response to those events. Also, each core can be set to wait (in a sleep-like state) for a specific event and then process swiftly the moment it happens. This makes building a real-time application with a mix of low and high bandwidth requirements very easy because you can assign certain cores to focus on specific tasks while leaving others to different tasks, without a lot of complicated code. It's like have a team of people that you can delegate tasks to and trust they they'll carry it out at the right time in the right way without further input from you. </p>
The 8-core architecture sounds very cool! I have to try this! However, does the fact that the program is stored in the RAM make you able to load some code from a SD card and then run it?
<p>Normally it boots from an EEPROM, but it can use an SD card and can also be left without persistent storage to be programed on-the-fly by some accompanying computer software (where the intent is that it always be paired with a computer of some sort).</p>
i think you'd have to do a lot of coding to make that work... in assembly
Bootloaders already exist in the <a href="http://obex.parallax.com/search/boot%20loader" rel="nofollow">object exchange</a>.Some since 2009...
<p>Do you know if the chip has eight physical cores, or is it hardware time-sliced like the old Xerox Alto?</p>
<p>It's 8 independent cores that each execute instructions simultaneously using their own internal memory. Each has direct simultaneous access to the I/O pins too. The main memory and a few other resources are shared among the 8 via a central arbiter called the Hub. Each core can access up to 1 long of Main RAM (in the Hub) every 16 clock cycles; but most often, processing takes place withing the cog (free of mutually-exclusive resources) and only coordination efforts require access to shared memory.</p>
<p>Internally, it is supposed to have 8 cores, 32-bit architecture , 32 I/O bits (GPIO), each addressable from each core. Yeah, I just got the Parallax 40000 board (the P8X32A QuickStart board). and slowly absorbing as much as I can on it.</p>
<p>I know this post is pretty old, but I'd like to tell you guys about some shields we are developing for the Parallax Quickstart. Right now we have a Robot Shield and are developing a Radio Shield and Power Shield. Here are some quick specs:</p><p>Robot Shield:</p><p>-9 GPIO, 4 Servo Outputs, 8 Analog Inputs and SD Card</p><p>Radio Shield:</p><p>-Plug in your favorite XBee footprint compatible radio and see the signal strength on board.</p><p>Power Shield:</p><p>-Up to 32 GPIO's with selectable power and on-board DC-DC regulators.</p><p>You can check out more information on this on our facebook page: </p><p>https://www.facebook.com/fastrobotics</p>
<p>RadioShack must be discontinuing this (as they have a LOT of parallax items), because I just picked up this little board for only $9.95/US. Adding it to my little board collection (Arduino, Arduino-Mega, Basic Stamp2, Raspberry Pi) for tinkering. Should be interesting!</p>
In your Instructable you mention, &quot;The Priam blinks an LED attached to pin 7.&quot; However your screen shot shows CON 'pin' = 16. Any clarity on this perhaps?
It's great to see someone using ANYTHING other than Arduino, but all that processing power to blink an LED? It just doesn't seem like an efficient use of resources.
No argument about overkill for blinking an LED. <br>But one must start somewhere... <br> <br>My main reason for picking the Propeller is to make a &quot;ships bell&quot;. <br>Two ways to do that - virtual bell, or real bell. <br> <br>The real bell just needs a real time clock and a solenoid to ding with. <br> <br>The virtual approach involved playing back a digitized .WAV file. <br>It was a challenge to get the bell sound and code compressed down <br>enough to fit into 32K of RAM. But it worked. <br> <br>Try doing THAT with an Arduino! <br> <br>

About This Instructable




More by cavelamb:A custom shield for the Propeller ASC - Infra-Red Remote Control - and multiple COGS! Propeller Power for the Arduino QuickStart bi-directional motor control 
Add instructable to: