In 2006, Parallax, Inc wasn’t new to the electronics business. They’d been around since 1987. Still, for a relatively small company, jumping into custom chips is a big leap. Parallax didn’t just jump into some cookie cutter ASIC, they made their own parallel multi-core microcontroller. Designed by [Chip Gracey], the Parallax Propeller has 8 cores, called cogs. Cogs are connected to I/O pins and other resources by a hub. The Propeller saw commercial success, and continues to have a loyal following. This week’s Hacklet is about some of the best Propeller projects on Hackaday.io!
We start with retrocomputing prop star [Jac Goudsmit] and L-Star: Minimal Propeller/6502 Computer. [Jac] loves the classic 6502 processor. Inspired by [Ben Heckendorn’s] recent Apple I build, [Jac] wanted to see if he could replicate an Apple I with minimal parts. He built upon the success of his Software-Defined 6502 Computer project and created L-Star. The whole thing fits on a Propeller proto board with room to spare. The project uses a 6502, with a Propeller handling just about everything else. The system takes input from a PS-2 keyboard, and outputs via composite video, just like the original Apple I. As you can see from the photo, it’s quite capable of displaying Woz in ASCII. [Jac] has expanded the L-Star to support the Ohio Scientific C1P and CompuKit UK101, both early 6502 based computers.
Next up is [Mike H] with B-BOT. B-BOT is a balancing robot. [Mike] used B-BOT to learn about designing with the Propeller and programming in SPIN, the Prop’s built-in interpreted language. While slower than assembler, SPIN was plenty fast enough to solve the classic inverted pendulum problem. B-BOT’s primary sensor is a Pololu AltIMU-10. This module contains a gyro, accelerometer, compass, and altimeter all on one tiny board. Locomotion comes in the form of two stepper motors. Command and control is via X-Bee radio modules. All the parts live on a custom PCB [Mike] milled using his CNC router.
[Antti.lukats] created Soft Propeller, his entry in the 2015 Hackaday Prize. Soft Propeller doesn’t use a hardware Propeller at all. The core of the system is a Xilinx Zynq-7 chip, which contains an FPGA and a Dual Core ARM A9+ processor. Back in 2014, Parallax released the Verilog HDL code for the Propeller core. [Antti] has taken this code and ported it over the Zynq-7. With 256Kb of RAM, 16 MB of Flash and an LED, the entire system fits in a DIP package smaller than a stick of gum.
Finally, we have [Christian] with Pipman GPS Watch. There’s just something about the Pip-boy from the Fallout video game series. This Personal Information Processor (PIP) has spawned hundreds of projects from cosplayers and electronics hobbyists alike. [Christian’s] version uses a 4D systems TFT LCD to display those awesome graphics. Input comes through a 5 way navigation switch. A GPS and compass module provide all the navigation data Pipman needs. At the center of it all is a Parallax Propeller programmed in SPIN. [Christian] has a working prototype on his bench. He’s now working on modeling a 3D printed case with Blender.
There are a ton of Propeller projects on Hackaday.io. If you want to see more, check out our Propeller Project list! Did I miss your project? Don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!
I built a CNC plasma cutter a few years ago with nothing but a Parallax Propeller for brains. It was a fun challenge since I could find no spin code online for anything similar.
It’s a real shame the Propeller is not more popular as it’s a pretty good chip.
It’s perfect for projects too complex for a ATmega but you don’t want to deal with the complexity of having to use something like a raspberry pi.
Plus they’re only $7.99 which is very cheap for something with 8 cores you can define for various tasks.
There are plenty of easy to use and powerful ARM Cortex chips that fill the gap between ATmega and Pi.
Most Arm SOCs cannot be had in an easy to use DIP for prototyping and don’t have separate cores that can be dedicated to a single task with deterministic timing.
But the ARMs are less expensive and faster in most applications. You don’t need to wait for the hub to swing around to transfer data to another core.
And the ARMs have built in UARTS, so you don’t need to bit-bang everything.
While that may be true, I find benefit in the prop’s relative ease of programming, using both its assembly interpreted SPIN language. Due to that fact that it’s a multi-core device, you can generally do whatever you want to the code executed by one cog and not have to worry about its affect on the whole system. When you have tasks with really tight timing constraints, like video for example, it’s a whole lot easier to do on something like the Propeller (and not just because of it’s video generator).
That said, other things may be more difficult, especially with no hardware peripherals, but I think there’s educational value in having to figure out how to do things in software on a real low level where performance and optimization is important. That’s something I think more modern programmers should do every once in a while.
That is surprising to me (all that being cheaper that is, not being faster)
You can get 8 ARMs, plus 8 rs232-rs422 converts, plus 8×8(?) line buffer and driver ICs so each ARM can directly control the IO pins of all other ARMs in the group, plus the circuitry so arm1 can dynamically reflash arm2-8 in software, plus RAM and flash chips that all 8 ARMs can access, all for under $8?
Is that an FPGA setup or something? Either way I’d love to see your design!
Why do you think you need 8 ARMs ? Many problems can be solved with just a single ARM.
The Propeller is great for real time control applications. You have the responsiveness of a multicore chip without the latency of a system of interrupts. The NXT core is also respectable and offers some higher speed chips but a little more complicated control. Spin is the true star of the Propeller line.
Programming C on the Prop is dreamy. It’s complicated enough to be fun and simple enough to avoid politics-related bugs.
The Pipman watch is actually complete! http://hackaday.com/2015/08/10/all-the-unofficial-electronic-badges-of-def-con/img_20150809_220553/
I never got around to updating my hackaday.io page, I should do that. I plan to have a full write up of the completed project done by the weekend
I use it for a lot of my projects. In flight control software I’m writing, I have one core running (up to 32) servo outputs at 500hz with 1/8uS resolution (no jitter), 1 core reading 8 R/C PWM inputs with 1/2uS resolution (no jitter), another core reading all the sensors, another core doing serial I/O, etc, etc. On a normal chip you’d some of those tasks are handled by hardware (serial, i2c, spi, etc), and others would be handled with interrupts.
On the prop, the stuff that would normally be handled by hardware is done with a “software peripheral” meaning you can customize the behavior of the driver as you like, don’t have pin restrictions on which I/O’s it uses, and can have it to additional processing, independent of your other threads. For example, my sensors core does median filtering for accelerometer inputs and drift compensation for the gyro values. It also means that you’re not restricted to the devices built into the chip – If you need another serial input or PWM output, you can just “soft-code” it.
The stuff that you’d have to do with interrupts you just dedicate a core to (or use part of an existing one if the timing doesn’t need to be precise). The results are jitter free, and often simpler to code.
It’s certainly not the right tool for every job, but it’s incredibly flexible.
I have been using the Prop for many years now and find it very easy to quickly put together proof of concept type projects and one-off designs. The community support found on the Parallax forums is second to none.
The RamBlade (matchbox size) with ZiCog software is a Z80 and CPM2.2 emulator. It has a Propeller P8X32A and circuitry, plus 512KB SRAM (for the Z80 RAM/EPROM – only 64KB surrently used) and microSD (for the filesystem).
http://hackaday.com/?s=ramblade
The CpuBlade is a Propeller Board for prototyping Propeller based designs.
The PCB is 1″x1″ and all 32 I/O pins, Reset, and +5V & GND are all brought out around the edges on a 0.1″ pitch.
The board has an on-board 3V3 regulator, and optionally enabled/bypassed (by solder links) transistor reset circuit (to use with most cheap USB-Serial(TTL) boards rather than the expensive PropPlug for programming and PC connection.
The Propeller P8X32A is a QFP44 package with 24C512 SMT (64KB). The HC49U/S Crystal (select 5MHz, 6MHz or 6.25MHz) is plug-in using special socket pins. The PCB comes assembled (excluding the pin headers which are supplied).
http://www.clusos.com
I fell in love with the Propeller when I was working on an early project and I needed to blow some debugging data out to tweak a control loop. Project was on a protoboard and I just added 3 resistors and a RCA jack breakout, code to launch another cog, and voila second video output. Nothing else has that kind of versatility.
Shouldn’t it be Xilinx?