Intro: Propeller Platform
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
First, pop in the Sockets. The sockets have a nice locking mechanism to hold them to to pcb while you solder. I prefer to use sockets as you can easily remove an IC if you're having problems, and you don't need to worry about damaging the IC while soldering.
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
Take one of the 16 pin sockets and add it to the board. You can add it to the outside row (closest to the edge of the board), or the inside row, but I suggest adding it to the outside row.
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
Add the 4 pin socket. Use the right angle pin headers to keep both sockets aligned, as shown in the photo. This will hold the 4 pin sockets while you flip over the board and keep the 4 pin and 16 pin sockets straight.
The 4 pin socket goes in the same row as the 16 pin socket.
Step 6: Second Set of Sockets
Same deal on the other side.
Step 7: Add Power Jack
Add the power jack on the top left of the board, in the box just under '7.5 - 12VDC'. When soldering down the power jack, be generous with the solder - it's what's holding the jack down as you insert / remove a power plug
Step 8: Programming Headers
The Propeller is programmed with a Prop Plug. add right angle headers in the box labeled 'Plug', as shown in the photo. This is where you'll connect the Prop Plug for programming.
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
Add switches to the left and right.
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 three caps (they look like little cans) go next to the right angle switch. They help provide smooth power to the microcontroller and other modules.
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
It's nice using a socket for the crystal as the Prop can support other crystal values. Here's the hack to make a 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
Using your dikes again, remove the plastic around each pin, as shown in the photo. You just need a little pressure to scrape off the plastic.
Step 13: Crystal Sockets
This is what you'll get:
Step 14: Adding the Crystal Sockets
Insert them in as shown in the photo. I use a bit of tape to hold them, flip the board over and solder them in place. On the back side of the board, trim the mounting pins from the machine 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
The Propeller runs at 3.3V, but Propeller Platform also includes a 5V regulator to provide 5V to other modules.
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 tantalum cap goes right next to the crystal socket. Note that the tantalum cap is polarized. If you look closely at the body, you'll see a + mark next to one of the legs. The leg with the plus mark should go through the hole that's closer to the crystal.
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
Add the LED's -
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
First, download the Propeller tool (windows or mac) so you can write your program. Also, make sure you have a PropPlug.
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.