Propeller MCU Love 'em, Hate 'em, What?

I've used propeller MCUs for years, but eventually the libraries drew me to Arduino.
What's your experience and/or your opinion of the propeller and it's applications?

I haven't looked closely at them. At the cursory glance I did give them, I was not attracted by the use of the Spin language.

However, I really enjoyed an interview with the founder Chip Gracey I listened to some time ago. I believe it was this one:

Seems like a really cool person and company.

1 Like

Spin is for plebs. You can write for it in C++ or assembly. Also, there's a guy who wrote a 3bit (or something like that) assembly language of his own that is so small and so fast that it was incorporated into the design of the 2nd generation of chips.
It's not all beer and Skittles though, you either program for each core or you get one instruction every 8 clocks. But I always tried to write for each core and use the 8-way interlink for orchestrated data transfer. Also, you can use the pins to transfer data between cores super fast.
It takes non-conventional thinking and it's pretty esoteric.
Besides curiosity, one reason I bring it up is that they could be quite useful if they could be programmed in Arduino, but I imagine that's a library by library rewrite.

1 Like

I'm interested in using C++ on a parallel machine. I saw them announced.

I write Arduino code in tasks that run together the way we did in the 80's. Serial tasking with no OS in the way. Your bugs can be all your own.

One thing about AVR-Arduino is how cheaply you can fly. Mouser wants $2.29 for an ATmega328P-PU, the top end of the ATmega48/88/168/328 pin-compatible "family".

Give it 5V, GND, 1 or 2 bypass caps, a reset circuit, a led and resistor to blink and a program, it will run up to 8MHz on internal CLK.

True minimal duino, plugs into breadboard projects.

one_chip_arduino_f_lcd

Aa assembled propeller board must run pretty good lunch money, I'd want something high-end to do with it. Maybe have it sense and run an active suspension for an off-road buggy comes to mind.

Very cool pico-duino. I have a pile of ATMEGA328P kits. I might have to make my own.
Do you happen to have a link for those tiny LEDs?

Mouser sells the P1 propeller P8X32A-D40 for $7.99. The same minimal setup is just as straight forward except its internal clock is not very good so an external clock would get you 8 x 32 bit cores at 20MHz (overclocking is possible too) for around $10, not much more than an assembled Uno.

I helped make a 5 axis CNC machine for a local millwork company using a propeller. It made much smoother multidimensional cuts because each sensor and each motor was controlled independently.

Also did a lot of math modeling using the propeller. It allows for time sequenced parallelization of algorithms.

Your buggy suspension sounds like a good challenge for it.

Propeller Multicore Concept

The Propeller family of microcontrollers are designed to perform multiple tasks simultaneously, without the need for interrupts or the dictates of an onboard operating system.

We do this much already. If propeller is to run > 8 tasks, it should too.

Propeller board for $28
This board has a P1.

Robotshop different board $30.
This board has a P2.

It sez P2.
The P2 has 8 identical 32-bit processors each with 4 KB of dual-port RAM, a configurable clock up to 320 MHz (8×160 MIPs), 64 smart I/O pins, and a common hub with 512 KB of shared RAM and a CORDIC math solver.

It screams ROBOT to me.

1 Like

Indeed!
Wouldn't it be cool to be able to port Arduino sketches to it?

Yeah, it would be super awesome if there was an Arduino boards platform for the Propeller chips. I curate a list of all known Arduino boards platforms, so I have a fairly good awareness of the range of chips with Arduino support, but I've never seen one for the Propeller boards. I'm discovering new platforms all the time though, so it's possible I missed it.

That would be amazing and I appreciate the offered attention to it.
If you find anything that needs development assistance please tap me for some help. I cannot do it alone because I've no idea of the scope, but I can sure help with individual tasks.

If you're interested in the subject, check out the Arduino Platform Specification:
https://arduino.github.io/arduino-cli/latest/platform-specification/
This provides all the information necessary to add Arduino support for a microcontroller.

1 Like

Very cool, thanks.
I'll have to see what I can get started after I clear my board.
It's not AVR or SAM though.

Nobody's mentioned it but each core has a tiny video processor, check it out.

The platform system does not impose any limitations on processor architecture. If there is a C++ compiler and some form of "uploader" tool, then you can add support.

What is likely the biggest task for a target that does not have any existing reference platforms is implementing the full Arduino core API. That is not absolutely necessary, but portability of sketches from one part to another is something the users do expect. Arduino has split all the hardware independent code out to a dedicated project here:

So that at least takes care of part of the project, but there will always be the task of writing all the rest (e..g, digitalWrite())

1 Like

That's the stuff I can do more easily. So, it is possible for full compatibility :partying_face:
I think this goes 4th or 5th on my list so hopefully I can find time to start in the next couple months.

Of course host it on github but when I get started it looks like I should make a post about it in the Other Hardware Development category.