Getting Started With The Parallax Propeller

The folks at [gadget gangster] have been working on an excellent set of tutorials for getting started with the Propeller chip itself, the open-source Propeller Platform Modules and the Spin programming language that’s used to control things. All of the basics and a growing selection of more advanced topics are covered in gorgeous detail, with most of the tutorials containing helpful photographs and screen shots, source code listings and video walk-throughs to help you understand what the authors are talking about.

Parallax is not new to the microcontroller game. Almost two decades ago, their BASIC Stamp embedded microcontroller was the springboard for many tinkerers. The Parallax Propeller is an easy-to-use microcontroller that’s been gaining popularity for a while now. Several Propeller support modules have hit the market recently, providing power supply and interface functions to the Propeller similar to how the popular Arduino platform interfaces with AVR microcontrollers.

17 thoughts on “Getting Started With The Parallax Propeller

  1. I’ve almost completely converted to the Propeller (just a few Arduino/AVR projects to finish up first…) Here are a few things that are uniquely cool about the Propeller and the company that makes them:

    – The propeller itself has eight cores that run independently, and each core has access to all of the I/O pins. There is no need for interrupts. It runs at 80MHz, for up to 160MIPS. It can synthesize NTSC and speech without any extra silicon.

    – The Propeller Object Exchange (OBEX) is a wealth of code all in one easy-to-use place.

    – The designers of the chip visit and comment on the forums (when they have time) – how cool is that??

    – The price is comparable to Arduino with far more power.

    – available in both DIP and surface mount packages.

    And lastly, I must plug the fantastic 12blocks (12blocks.com) IDE for the propeller. If you’re new to programming this will get you up and running faster than anything available for Arduino. And even if you’re an experienced programmer, being able to swap around blocks like Lego bricks makes prototyping and development very efficient.

    By all means, check out the Propeller and make it a part of your next project!

  2. I have used a Gadget Gangster board in a project and it was great not having to deal with building a processor board at the same time as building the project board. I was able to layout my display board so that the Gadget Gangster board just plugged in with no hassles. The propeller is a great processor to work with. I see people move to the prop all the time but no one seems to leave. :)

  3. For me, I dont like the language, or the major insecurity of the software.

    I have a few of these, and the only thing I realy do with them is video work. (terminals, etc.) I can not use one in any comercial applicaion. Also, cost is too high. 100,000 units at $12 vs $4 pic

  4. “there is no need for interrupts” until you need one then dedicate a 80mhz 32 bit cog for full tilt polling

    “price is comparable” until your past the prototype / play stage then its at least 2x as much

    I want to like these things, I could have a few applications for them, but they get pricey, I dont feel like learning them inside out to use C, and spin frankly, wtf? its pascal mixed with basic? is that good? to me it sounds like “cheap American beer mixed with vomit” (and I write in basic semi frequently)

    I dunno, I have 17$ in my arduino setup, and I was writing my own software for it that night, my own lib the next morning, it also serves as a platform for normal avr development and I make stuff for 8 to 40 pin devices depending on need, and could really support any 8 bit avr device with it

    make a prop that does just some of that, at that price and yea Ill make a goofy space invaders game and toss it in my parts bin

  5. @osgend, I wanted to like it too, I still pull it out once in a while and do some play video stuff with it. I tried to include it in an application, then adding the spi/flash, support, I just switched to a pic and was done with half the components. Again, I too want to like it, but it is not power-programmer friendly. One of the downsides I see to it is allowing people to truly handle multiple things with a single core. Kinda breads sloppy programming. Just my 2cents

  6. I’ve had a really terrible experience with SPIN code and getting it to work on Lady Ada and Darco’s YBox2. (http://www.deepdarc.com/contact/)

    The code that they included worked great, but writing anything for yourself was absolute HELL! Spin code is terrible for anyone that has any experience with coding at all…

    My project wasn’t that difficult – network status monitor. it grabs a webpage, does some basic parsing, and displays the results.

    It’s quite possible that i’m a terrible programmer, but the only thing I could keep on thinking to myself is “Fuck, If I had a real TCP stack and a standard Object oriented language this would of taken me an hour to program instead of DAYS”

    Blah. Not touching it again.

  7. The Propeller is an awesome multicore processor at $1.00 a cog. (They haven’t been $12 for a while).
    I’d never really been a “professional” programmer, and found that the Spin language was easy and powerful. The documentation has suffered a bit until this last year with the release of two excellent books and the GG website looks perfect for anyone starting out. Thanks for the tip HAD!

  8. Dont get me wrong, it does apear powerfull, heck, I still want to like it, but it lacks powerfull tools to get things done, like Arthur mentioned. I see it as the next power step up from BS1. The language is simple, and can do alot, but the langueage does not lend it self well as an application language, more of just a quick down dirty couple of commands to get a single task done. Just my 3 cents

  9. I agree with Arthur: SPIN is so freaking bizarre. I lusted after the YBox2 for a long time and finally got one, rejoicing how it will fit into a dozen fun solutions for me by just programming new widgets in what looked like a pretty keen IDE on a fantastic platform.

    And then SPIN. I can cruise in C, Perl, PHP, and VB.net, but SPIN is just… Bizarro. Attempting to rap my head around SPIN caused pain & anguish. I gave up after a month of determined hacking, purchased a couple Arduino kits at half the cost of the YBox2, and did what I wanted on an Arduino in an evening.

  10. I use the Propeller quite a bit and am reasonably proficient in both SPIN and PASM. Some people hate SPIN, some love it. I like it. Like anything powerful yet efficient it takes a little self-discipline to learn – but the time is worth it.

    The concept of multi-core computing is interesting and powerful once mastered. Nobody worth their salt in the micro-controller field should claim proficiency without adding the Propeller (or something like it with multi-cores) to their resume.

    The Parallax Propeller Forum deserves mention – a great community providing excellent support. There’s also the Object Exchange on the Parallax site, a repository of interesting code for the Propeller. Then there’s the Unofficial Propeller Wiki – worth a look. Links are provided below…

    But the Propeller chip has some issues:

    * SPIN is kind of slow, especially compared with PASM.

    * COG RAM is soo small in my opinion.

    * Two or four clocks per instruction in most cases.

    * Too expensive unless you’re really going to use all the cogs.

    * There’s no double-precision, not even with Catalina or the Imagecraft C compilers; none (unless you write it yourself of-course).

    * It would be nice if there was more main RAM to support higher resolution video, if nothing else. (Gadget Gangster has a SDRAM board for added external RAM.)

    * The Propeller Tool IDE is native to Windows only and is closed-proprietary (but it is free).

    * The PLL hardware is a bit fragile in my opinion.

    The Gadget Gangster board is nice. It gives you an extra 32kB of EEPROM for user-storage. I suggest you get a real serial (two wire) 2X20 or (better yet) 4X20 LCD display to go along with your Propeller board; it is portable and indispensable for debug. Parallax sells some and Sparkfun has some too I think.

    There a new version of the Propeller due, maybe next year (I’ve given up tracking it). The new version will be a seriously enhanced version of the current chip. So you aren’t wasting your time working with the current Propeller. If I’m not mistaken both chips will remain in production.

    * Unofficial Propeller Wiki:

    http://propeller.wikispaces.com/

    * Parallax Propeller Forum:

    http://forums.parallax.com/forumdisplay.php?65-Propeller-Chip

    * Propeller Object Exchange (ObEx):

    http://obex.parallax.com/

  11. I was about to take the plunge into the world of Propeller the other day, but thankfully I took some time to research it first.

    The Propeller chip has zero peripherals. Specifically, it has no built-in ADCs, comparators, PWM, watch dog timer… and as others have mentioned, no interrupts. It has no internal flash memory or EEPROM for storing programs, so at the very least a Propeller chip requires (REQUIRES!) an external EEPROM or host to download from, or it cannot run anything.

    I like the idea of truly parallel multi-tasking, but since so many of the standard list of microcontroller functions would have to be performed in software or by external chips, much (if not all) of the advantage of parallel execution is given away. Even the speed advantage disappears when you compare single-cycle execution on an AVR at 16-20MHz to multi-cycle execution plus shared memory wait times plus inter-chip communication times on an 80 MHz Propeller.

    So to equal the functionality of a $4.50 USD ATmega328p, an $8 USD Propeller chip would need another $5 – 10 in chips (EEPROM + 6 or 8 channels of ADC), a huge pile of 3rd-party libraries, and a mess of integration time *before you even start programming your application*.

    Maybe I’m missing something, and to be fair I have never used a Propeller so I’m judging by the datasheets… but I don’t see how the Prop offers any value over a mid-level AVR or PIC.

  12. “So to equal the functionality of a $4.50 USD ATmega328p, an $8 USD Propeller chip would need another $5 – 10 in chips (EEPROM + 6 or 8 channels of ADC), a huge pile of 3rd-party libraries, and a mess of integration time *before you even start programming your application*. ”

    I will try to do this gently, you shouldn’t be flamed for simply not understanding the platform, nor should you so easily dismiss it.

    Price issues
    The current propeller single chip price is 7 dollars. If you are paying 5 to 10 bucks for 32K EEPROMs you are not shopping in the right places.

    Libraries and time
    Look at Parallax’s Object Exchange; page after page after page of downloadable, freely useable object libraries for any number of functions and uses – quite a bit of it professionally written and provided by the chip’s designers. As for integration time, that’s called a learning process and should NEVER be subject to criticism.

    Someone completely unfamiliar with any particular processor platform will look at similar concerns, but to actually take the plunge, now that’s a different story. Let me ask you in return: How long would it take you to “integrate” a PS/2 keyboard, PS/2 mouse, and 1024×768 VGA monitor into your next arduino project? How many pins would you have to use? How slow/fast would it be? How much would it cost? Answers for the Prop are 1 hour, 10 pins, real-time response, and less than 30 dollars. Hard to beat with any AVR platform that I’ve used (half dozen or so), not doable at all in the PIC world, and I’ve still got 20 pins or so left over for sensors, joysticks, network hosts, etc, as well as a few dedicated processors to apply to those external device tasks. Oh yeah, for 1 more pin I can watch things on my large screen TV and broadcast it to the bedroom television. I’ll gladly pay 7 bucks for such a chip (and I did), and spend however much time is required to learn to do these things.

    Like I said, this is not intended to be a flame, just a gentle reminder that those who haven’t tried the experience shouldn’t be the one’s knocking it.

    8051, 6811, AVR/Mega/Tiny/Arduino/BS1/BS2/AM188ES/386EX/Propeller, I’ved used ’em all and they are ALL excellent platforms depending on the task at hand. But only one, the Prop, provides for simulatneous multi-processing, and this is such a great new territory in uCs that my opinion is that all of you should give it a shot, if nothing else it’ll make you appreciate software multi-tasking on a whole new level.
    Steve

  13. As an brief aside to my above comment, I note that a couple of people on this and other sites have mentioned the lack of interrupts on the propeller, so I’d like to point out that the comparably priced AVRs offer 1 or 2 interrupts at most. With the Prop, you get 8 dedicated 32-bit processors with 512 double word bytes of RAM to deal with “hardware interrupts,” and each has at least three ways of recognizing the request, and the individual processor can actually sleep in between processing hardware requests. Probably the biggest benefit would appear to be that the hardware handling code is run on the dedicated processor in it’s own memory space while the rest of the Prop (including other hardware handling dedicated processors, as needed, up to 7 more) goes on about its business without the “interrupt” slowing down any other processes until its time to share some information, at which point the notifies the hub, posts its results in shared memory, and goes back to sleep. This is one of the greatest systems I’ve ever seen, and I’d trade a whole handful of 2313s for one Prop that can do this.

    As to timers, the Prop of course has a system timer and each COG has its own built in timing mechanism, setting one COG up to monitor and process a “watchdog” type condition wouldn’t be hard to do at all, but I’ll let a more experienced hack-a-dude fill you in on that, as well as setting up PWM and ADC/DAC i/o – I know it can be done because many a bot is out there running on the Prop platform, just don’t do so much with bots myself; I tend to use uC’s to monitor switches and events more than anything, and I plan on sticking with the Prop for a while.
    Steve

Leave a Reply to osgeldCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.