Is Parallax Propeller a good product?

It does what it does very well. Spin is a nice easy language to get your head around and as an interpreted language, quite efficient with a nice compact bytecode.

Spin is not blazingly fast, but raw PASM is pretty sprightly (50ns instruction cycle).

Having 8 identical cores with a completely deterministic instruction cycle makes for a very versatile little chip. As long as you remember it is a microcontroller and play within its limits, it's an incredibly nice chip to use.

I keep a stack of proto-boards handy for rapid prototypes. The ability to do crash and burn compile/test cycles in a matter of seconds (it takes about 7 seconds to download the absolute largest program into the chip and huge compiles rarely take more than 2 seconds - more often in the hundreds of milliseconds) makes for a very fast turnaround development cycle.

Parallax really concentrates on the beginner market, so along with being a pretty potent little machine, it is very easy for a greenhorn to get working in short order.

Native 32 bit integer math is nice too.

I did not mean that to sound like Parallax products are only suitable for the beginner. The Propeller is a "grown ups" processor with plenty of oomph in the right places, it's just that Parallax provides a lot of hand holding for the beginner to help them get started.


Big difference to other MCUs is that the propeller has very little hardware add-ons. No I2C, no serial interface, no AD and so on ... oh .. not to forget NO INTERRUPTS. Only a video generator per COG and 2 counters per COG (COG is the name of a core). On the first glance this does not sound very good!

But that's exactly what the 8 COGs are meant for. Instead of adding hardware here and there and offering thousands of different types of microcontrollers for every possibly useful combination, the propeller is designed to do all that in software or get support by external chips that do things much better than the internal circuits.

SPIN supports modular software development by so called Objects. And Parallax supports the developers by offering a internet platform for Object Exchange. So, if you need a chip with 8 serial ports ... pick an object that implements 4 serial prots per COG, use it in 2 COGs and there you are.

I did PIC programming and AVR programming before, but the propeller is so easy to use and you get results much faster than with other controllers. Mainly because the Objects can be used without changes in most cases. Interrupt driven controller software most times needs to be adapted to fit in the own environment.

PS:

Brian stated:

The software is a FREE download on Parallax's web site. You will need to purchase a programmer, such as the PROP PLUG, for a modest price.

That could be missunderstood. You don't have to buy a PROP PLUG. I'm still running my propeller on a breadboard with a non Parallax USB to serial converter. In their documents you can also find a serial interface which only needs some resistors & transistor.

For a start with the propeller you only need: 1. the propeller 2. a interface (serial or USB to serial) THAT'S IT! Very inexpensive. Of course some Objects will not run at that low speed.

Add on: A 5 MHz crystal to get the full 80MHz internal speed generated with PLL. (full speed means the speed given in the spec as max. frequency ;o) A min. 32kByte serial EEPROM to store one program.

Ah ... EEPROM ... another difference to other microcontrollers. The propeller does not have any internal non-volatile memory to store programs on, like FLASH or internal EEPROM. It's booting from external EEPROM -or FRAM- into it's internal RAM. I already damaged AVRs just by programming to often, which I think is very usual when developing programs. This won't happen with the propeller! EEPROM gone? Well .. attach the next one.


Spin is fast enough to bit-bang serial I/O at 19200 Baud.

There's a large library of routines, mostly I/O drivers, but with a vocal tract synthesis program that sings in 4-part harmony and a variety of video drivers for TV and VGA displays among other things. There's even a floating point library including the usual transcendental functions.