What is the Propeller?
The Parallax Propeller is a 32-Bit 8-Core microcontroller. Chance are you've already seen a few Propeller Powered projects like:
OpenStomp Coyote-1: open source digital guitar effects pedal
Music Demo (.mp3)
The Replica 1, an Apple 1 Clone
ybox2, DIY Networked Set-top Box
and plenty more. The Propeller is commonly used because it's high performance, has easy video output, and offers a lot of I/O.
So What is the Propeller Platform?The Propeller Platform puts the Prop on a circuit board with voltage regulators, memory, a crystal, and connectors to other modules. It's a lot like the Arduino with a few improvements on the basic idea;
1 - Modules (a.k.a. shields) can be connected to each other on top and bottom. For example, you might have a Propeller module in the middle, an LCD UI on the top, and a prototyper on the bottom.
2 - Pin spacing is .1". The space between sockets is .2", too. This makes the Platform compatible with breadboards, and it lets you use Platform modules in combination with other project boards.
3 - The board footprint is 3.8" x 2.5", which is the same footprint as ExpressPCB's MiniBoard service, so adding your own custom module is inexpensive and straightforward.
4 - They're well documented. They're featured in Jon Williams' column in Nuts and Volts and the Propeller Platform Module will be the basis for many of projects described in his upcoming columns.
5 - They're Public Domain. Module designs use the MIT license, giving you more flexibility than more restrictive licenses like Creative Commons Share-Alike. Templates and specifications can be downloaded here.
The Propeller Platform is available as a kit or pre-assembled from Gadget Gangster.
Build time is about 45 minutes. Get started by going to the next step!
Step 1: FAQ
What is the Propeller Platform?The Propeller Platform is an open-source embedded computing platform - it's a lot like the Arduino, but improves on the concept by using a faster microcontroller, standard pin spacing and a less restrictive license (MIT License).
What are the specs?Propeller Microcontroller:
- Built-in video generator hardware to output to NTSC/PAL or VGA displays
- Built-in high level language (Spin) that's easy to learn
- High performance (160 Million Operations per Second)
- Speed can be changed at run-time for improved power efficiency
- Available in a hobbyist-friendly DIP package
- 32 I/O pins, each pin can be set as an input or output
- 5v and 3.3v Voltage Regulators, rated at 800mA, each
- 5Mhz Crystal, user-swappable
- 32kB on-board memory, with space for a second memory IC
- All IC's are in sockets for easier replacement and assembly
- Standard .1" pin headers in a dual-row configuration, so modules can be stacked above and below or added to a breadboard or Protoboard
Propeller Platform with Battery Platform and ProtoPlus modules
How does it compare to the Arduino?
- More Expensive The Arduino is $30, a Propeller Platform with PropPlug (what you use to program the Prop) is $50. But you'll only need one PropPlug and a Propeller Platform on it's own is $35.
- Smaller Community You'll see the word 'Arduino' in Make Magazine a lot more often than the word 'Propeller'.
- No onboard 'Analog In' Instead, you have to use a capacitor and a resistor to read analog values. Not hard, but not as easy as the Arduino.
- 2 Chips You need 2 IC's when using a Propeller, the Prop itself, and the EEPROM to store the program
- Much faster microcontroller WAAY Faster. This lets you do really cool things like output VGA, do speech synthesis, play .wav files, and more, all on the chip. The Propeller does 160 MIPS while an atmega168 does 16.
- Hi-quality audio and video The hardware for video is builtin and numerous audio libraries are available under the MIT license.
- Real Multitasking tell one cog to take care of video and another to handle the keyboard / mouse, and that's it. No interrupts, no timers - it's REALLY easy to do multitasking on the Propeller
- More I/O, More Flexible Each I/O can be reconfigured, and there are 32 of them.
- Standard Pin Spacing The Propeller Platform fits on a breadboard or protoboard
- Better Power Usage The Prop can change clockspeeds on-the-fly to save power and shutdown un-used cogs. Power usage can go from 80mA all the way down to 4-5mA
- Better License Arduino is licensed under Creative Commons Attribution Share-alike (read it - it's several pages). The Propeller Platform is available under the MIT license (read it - it's 2 paragraphs). Don't worry about how you use our designs - we won't sue!
- Software focused A lot of microcontrollers have dedicated hardware to accomplish certain tasks. Instead, the Propeller does most stuff in software. This doesn't bother me, but some people have problems with it.
- Spin The high-level language for the Prop is Spin - this is a much more modern language than C/C++, but it takes a little getting used to
- Mac Support There is no official Mac client, but getting up and running with a Mac isn't hard. Parallax has a Mac page right here.
Personally, I use the Propeller for most development, and I use a PICaxe (read: 08M the 555 of our time?) when I just need simple / cheap logic. The Arduino is 'aight, but I find the Propeller easier to program and a lot more powerful. The Arduino is too expensive when I just need simple logic.
What modules are available?
There is no definitive list of modules, but you can check Gadget Gangster for some of the modules currently available. Some example modules:
- Video / Audio
- LCD Displays
- Motor Controller
Step 2: Gather the Parts
- 3x 47uF Electrolytic Caps (make sure they're mico-mini so other modules will fit on top)
- 1x 4.7uF Tantalum Cap
- 1x 104 Ceramic Cap
- 1x 10k Ohm Resistor (Brown - Black - Orange)
- 1x 220 Ohm Resistor (Red - Red - Brown)
- 1x 470 Ohm Resistor (Yellow - Violet - Brown)
- 1x 1.1k Ohm Resistor (Brown - Brown - Red)
- 2x Green 3mm Green LED's
- 1x Red LED
- 2x Machine Pin Sockets
- 2x 4pin Sockets
- 2x 16pin Sockets
- 1x 4pin Right Angle Header
- 1x Right Angle Power Switch
- 1x Tactile Switch
- 1x 40pin DIP socket
- 1x 8pin DIP socket
- 1x 2mm Power Jack
- 1x 5Mhz Crystal (make sure it's half-height so other modules can fit on top)
- 1x 5V Voltage Regulator
- 1x 3.3V Voltage Regulator
- 1x Parallax Propeller
- 1x 32 kB i2c EEPROM
- 1x Propeller Platform PCB
Step 3: IC Sockets
The 8pin DIP socket goes at U2, the notch points up.
The 40pin DIP socket goes at U1, the notch points to the left.
Step 4: Add the First Set of Pin Sockets
Keep the inside row empty for now, but you can populate with pin headers to stack another module under the Propeller Platform.
Step 5: 4 Pin Socket
The 4 pin socket goes in the same row as the 16 pin socket.
Step 6: Second Set of Sockets
Step 7: Add Power Jack
Step 8: Programming Headers
You can get a Prop Plug from Gadget Gangster or Parallax. The benefit of keeping the programming hardware off the board is a smaller overall board size and a lower cost.
When you're all finished and ready to program the Propeller, insert the Prop Plug 'hat-side up'.
Step 9: Add Switches
The right tactile switch will reset the Prop when it's running (just tap it to reset). The left switch is the power switch. Both switches are placed at the edge of the board to make it easy to access them if other modules are stacked on top.
Step 10: Add Power Capacitors
The Capacitors are polarity sensitive, the lead closest to the stripe is negative, and it goes in pointing down.
Make sure you use micro-mini caps, or other modules may not fit on top of the Propeller platform.
Step 11: Prepare the Crystal Socket
1 - Identify the two machine pin sockets (as in the photo below). Use your dikes to split them in half.
Step 12: Remove the Plastic
Step 13: Crystal Sockets
Step 14: Adding the Crystal Sockets
Also, add the resistors at R1, R2, and R3. These little guys will limit the current for the LED's that will tell you when the power is on.
R1: 1.1k Resistor (Brown - Brown - Red)
R2: 470 ohm Resistor (Yellow - Violet - Brown)
R3: 220 ohm Resistor (Red - Red - Brown)
Step 15: Add the Voltage Regulators
VR1: the 5V regulator. It's an ON Semi (part # MC33269T-5.0G). Compared to the 3.3V regulator, it has a square tab that's a bit thinner. The black box doesn't have a little notch, either.
VR2: the 3.3V regulator. It's an ST (part # LD1117V33). It has a thicker tab with the tab corners trimmed off.
You can also use a bit of extra solder to connect the tab to the board. This will help the regulators sink more heat.
Step 16: Add Caps
The ceramic cap goes below the 40pin DIP socket. It's not polarity sensitive.
The ceramic cap is marked '104', it's also smaller than the tantalum cap.
Step 17: Finishing Steps
The LED that goes in the circle marked 'PWR' has a clear lens. For this LED, the SHORTER lead goes thru the circular hole (closer to the resistor), the LONGER lead goes through the square hole.
The LED that goes in the circle marked '5.0' has a green lens. For this LED, the LONGER lead goes thru the circular hole (closer to the resistor), the SHORTER lead goes through the square hole.
The LED that goes in the circle marked '3.3' has a green lens. For this LED, the LONGER lead goes thru the circular hole (closer to the resistor), the SHORTER lead goes through the square hole.
Also, add a 10k ohm resistor (Brown - Black - Orange) at R4
Next step is to test the power. Plug in your power adapter and flip the right angle switch down. The LED's should all light up, indicating that the Regulators are outputting power.
Step 18: Add the IC's
Step 19: Using It: Your First Propeller Program
Boot it up the Propeller Tool and let's start with the most simple program, an LED blinky;
I'll break down each line:
Programs start execution at the first method it finds. In this case, there's only one method (main), and it's a PUBlic method, but we don't need to worry about that now
dira := 1
dira is the 'direction register' for pin 0. By writing a value of 1 to the register, we make pin 0 an output. := is the assignment operator.
do everything that's tabbed below. A REPEAT loop without an UNTIL will repeat forever. Tabs are important in spin - everything indented under this line is part of the REPEAT loop.
the ! operator means 'flip' and OUTA is the output register for pin 0. So this line takes the current value of outa, flips it, and write it back. If the pin is high, it will flip low. If the pin is low, it will flip high.
A fancy way of describing the ! is a 'Bitwise NOT assignment operator'.
WAITCNT(CLKFREQ + cnt)
Translation: Hold up for 1 second. WAITCNT(Time) will pause execution until the system clock == Time.
CLKFREQ is a system value - it equals the number of ticks in each second. CNT is another system value, it's the current system time (how many ticks since the Propeller has started). By adding 1 second's worth of ticks to the system clock, we're figuring out what the system clock will be one second from now.
And that's your first program!
What would you change if you wanted the LED to blink twice per second?
Step 20: Downloads
- Incredibly fast (160 Million instructions per second),
- Has a ton of I/O (32 pins that can do input or output),
- Has great video and audio capabilities
- And is easy to develop for
You should also check out Parallax's Object Exchange where there are a ton of open-source libraries to help you when doing projects with your Prop.
Download the Propeller Manual
Download the Propeller Platform PCB Design (ExpressPCB format)
Schematic with mouser part #'s here (ExpressPCB format)
Propeller Platform Design Templates
Grab the Kit or Get It Pre-Assembled From Gadget Gangster.