loading
Picture of Meet the Parallax Propeller QuickStart board

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...
 
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.....

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.

giacky982 years ago
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?

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).

i think you'd have to do a lot of coding to make that work... in assembly
Bootloaders already exist in the object exchange.Some since 2009...
gtoal1 year ago

Do you know if the chip has eight physical cores, or is it hardware time-sliced like the old Xerox Alto?

JeffM20 gtoal29 days ago

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.

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.

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:

Robot Shield:

-9 GPIO, 4 Servo Outputs, 8 Analog Inputs and SD Card

Radio Shield:

-Plug in your favorite XBee footprint compatible radio and see the signal strength on board.

Power Shield:

-Up to 32 GPIO's with selectable power and on-board DC-DC regulators.

You can check out more information on this on our facebook page:

https://www.facebook.com/fastrobotics

Gelfling61 year ago

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!

In your Instructable you mention, "The Priam blinks an LED attached to pin 7." 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.
cavelamb (author)  Dream Dragon3 years ago
No argument about overkill for blinking an LED.
But one must start somewhere...

My main reason for picking the Propeller is to make a "ships bell".
Two ways to do that - virtual bell, or real bell.

The real bell just needs a real time clock and a solenoid to ding with.

The virtual approach involved playing back a digitized .WAV file.
It was a challenge to get the bell sound and code compressed down
enough to fit into 32K of RAM. But it worked.

Try doing THAT with an Arduino!

https://www.sparkfun.com/products/10628