Parallax Insider News

Open Propeller Project

  • By: Ken Gracey Published: 10 January, 2014 8 comments

You’ve all made tremendous contributions to the Parallax community through the years. You’ve enabled Parallax to continue our Propeller 2 Research and Development by providing most of what the community needs to use Propeller 1. Your efforts include developing the C compiler, translating OpenSpin, specifying the Propeller 2 design, numerous WizNet examples, the MacBS2 program, the SIDE C programming environment, educational curriculum, over a dozen established programming languages, and a huge number of hardware and projects. These efforts always have organic roots fueled from your interests, and many of them don’t have any support from Parallax. 

We invite you to participate in the Open Propeller Project!
We’d like to get behind your efforts and now introduce some of our own, capturing them as the “Open Propeller Project”. The Open Propeller Project will launch some new applications that we’d like to create with the Propeller, and we’re calling on you to help develop them. As we grow the applications and widen our project base, Open Propeller Project could grow to include the most open multicore microcontroller in the world.  
Why the Open Propeller Project?
We want to help energize the community behind our common embedded beliefs and interests: 
  • That multicore embedded programming should be interrupt-free, software-configurable, deterministic and with a rewardingly fast prototype cycle;
  • That the tools, code and projects should inspire and enable your personal efforts, so you can make whatever you want from what we offer; 
  • Supporting educational customers means inspiring embedded education; and
  • Move our attention from a state of lament about delayed Propeller 2 releases to an active and positive one that recognizes Propeller 1’s capabilities are far from being reached for most of us.
  • Help us reach the early adopter goal of 1,000 people using FPGAs the day Propeller 2 is released. This will help prove the core to be free of bugs, to speed the Propeller 2 OBEX selection, to support early compiler and interpreter development efforts, and ultimately moves our customer design-in cycle forward by many months (a big benefit to Parallax). Our own FPGA board is in design - more on this later.  
How does Open Propeller Project work?
Parallax will launch Open Propeller Projects in our forums, each under their own thread. We’ll present a goal so that developers have latitude to approach it from several design perspectives. People could work together or on their own. The discussion and code would mature on the forums while the project is open. At some point the project will have been mostly achieved and we’ll consider it complete, but the thread will always remain open for support. At some stage we’ll collect the project files into the first post and provide proper links to OBEX so others can duplicate the effort. Multiple projects could be underway at the same time - we’ll roll out some projects and adjust as we go. That’s it - we don’t want to load your organic efforts with a bunch of corporate mud and take the fun out of your interests. 
What kinds of Open Propeller Projects would we launch?
  • Applications that cross into other disciplines like music, entertainment and art, open science equipment, renewable energy and alternative fuel sources, remote internet connectivity; 
  • Programming tools, including IDEs, interfaces to other single-board computers (rasp, Arduino, etc.), operating systems (Linux, Mac, Windows), and hardware platforms;
  • Provide a better home for Chip’s requests for design input on Propeller 2;
  • Scoping out product revisions for our open hardware, like improvements to the S2 robot; and
  • FPGA projects around Propeller 1, 2 and 3 in which we share the core binary and maybe much more.
What we think you’ll like about participating in the Open Propeller Project
  • Being able to share your efforts, and having them recognized;
  • Using the projects, code or hardware produced for your own purposes; and
  • Contributing to the Propeller community, and building the excitement as we prepare for Propeller 2.

What else do we hope to accomplish?

For example, perhaps our initial efforts interfacing an iPad to a Propeller could lead to a full web-based programming tool over WiFi (the community is our best hope). Maybe we’d even manufacture some hardware from the effort, or contract out more projects. In our new mode of operation our team includes you as a recognized and appreciated member. And there’s no secret about this last point. Bringing Propeller 2 to market is a tremendous effort for us in so many ways: cost, engineering time, risk, market acceptance, etc. There’s no KickStarter or venture funding for this project - we can only get the job done with your support and our good ol’ boot-strappin’ efforts.  
Please allow us a few days to get our first Open Propeller Project together. In the meantime, please tell us what you think and feel free to share your ideas for Open Propeller Projects. 
- Ken Gracey  


People keep asking for self-hosting language for the Propeller so I took the VM from my xbasic PC-based compiler and combined it with a self-hosted version of Basic that I wrote a while back for the Propeller. The result is ebasic3. It is an interactive language with a modern Basic syntax that runs on the Propeller out of EEPROM. It is much faster than interpreted Basic since it compiles Basic source code to bytecodes which it runs using a virtual machine written in PASM. It also supports long variable names, structure control constructs like if/then/else/endif as well as functions and subroutines with named arguments. It can also interface directly with Propeller hardware through built-in functions like waitcnt, waitpeq, etc and has direct access to COG register like DIRA, INA, OUTA, etc. It will run on any Propeller board but requires an external SPI flash chip to provide SD filesystem access for loading and saving programs.

Is this the sort of thing you'd be interested in hosting as an Open Propeller Project?

I am awaiting the release of Propeller 2 to develop hardware to replace the use of embedded Linux that is very slow and I have no confidence.

Ken: I'm very excited about the Open Propeller Project (OPP)!

With the success of the Raspberry Pi and introduction of the Intel Galileo, this move to is welcomed, timely, and enhances my excitement for the arrival of the Parallax Propeller 2. I do agree with your assessment of the under-utilization of the Parallax Propeller 1's capabilities. I'm willing to donate my time to grow the OPP initiative and help drive the recognition of the capabilities of Chip's unique Propeller designs.

Count me in!
Gregory K. Brown

Like SRLM, I've been developing an API/library for the propeller using PropGCC - except mine is in C. With it, I also provide detailed instructions for building it in Eclipse - something I think the Propeller community could greatly benefit from. Eclipse may not be the best IDE I've ever used, but I feel it is leaps and bounds better than SimpleIDE. I don't have nearly as many modules as libpropeller, but that should be a rather straight-forward fix. After reading most of the forum thread "C++ Template Class Too Big......", I will likely either re-write most of it in C++ or create a wrapper version called PropWare++.

I only found out about libpropeller yesterday afternoon. As such, I now have a LOT of ideas that I'd like to implement in PropWare (including unit testing!). Since SRLM was kind enough to MIT license it, I'll do something to integrate large portions - either reference his existing code, port it to C, or refactor some classes to fit better with PropWare (obviously, recognition will be given appropriately).

I know PropWare is a ways away from production ready, and may not yet be a good candidate for the Open Propeller Project, but I think it could be in the near future. I want to at least get it out there and make the right people aware of it so that I can get some direction on what needs to be done.

My current ToDo list (in priority order) is:
- Continue improving the robustness of the SD module
- Determine if C++ should be used in PropWare and if so, how? (wrapper or re-write)
- Finish documenting example projects
- Design test cases

Source code:

Where in UK, London can I purchase Parallax products ?
Thank you.

Best solution is to get them from Active Robots near Bath (about 10 mins SE, in fact). Ask for Tony - they'll take care of anything you can need since they're a Parallax dealer.

I have long thought that the Propeller concept was a superior design for a multi-processor chip.
Further, I have spent the last decade programming multiple state machine hardware controllers in FPGA's
In the past, I have used external processors, internal processors like Picoblaze and Microblaze from Xilinx, as well as open source hardware processors.
In every single development I used the processors to drive the state machines in an efficient manner with the processor handling events, external communication, and any other task that was more simply done by a few lines of code.
With the first propeller, I have tested the idea of single propeller 1, connected to an FPGA, with 8 separate state machines running in parallel, to handle the intercommunication of the sequencing of the 8 state machines.

I am proposing and open source solution for a frame work to use the already available open source cores, with a set of template source code for propellers, so that the barriers of complex FPGA designs are significantly reduced, and the benefits of the propeller as a core element in these designs be demonstrated.