Hi everyone!
After a while away from R2C2, I am now back doing some firmware development. In the meantime, I entered a competition for a new electronics board
http://reprap.org/wiki/Race_to_the_Bottom and I came a credible third place, though mainly because few other entrants were able to get working electronics :) It all takes a lot more effort than one realises, but it was great fun trying to reach a deadline.
Sango-bc is an ARM board using an STM32 chip with a fairly small flash (64KB), which I decided to port Teacup to rather than R2C2. I did get it working, but Teacup has a lot of dependencies on AVR. I also did a port of the same build to an LPC1114, with even less flash (32KB), for Traumflugs Gen7-ARM development.
I have also been trying to design a RAMPS version for Due, and also find some suitable firmware to port to Due.
More recently I have been working in a pick and place machine, and also got interested in laser setups.
So what I have learned is that it would be really useful to have a portable, general purpose machine firmware, and that reinventing wheels quickly gets tiring, but more importantly going round in circles making small improvements does not move things forward. There are various people working on some really interesting polar and delta bots, they really need a faster control system instead of the hacked AVR setup. A Cortex-M4 with FPU would make a great setup for them, but there is no support for that, either hardware or firmware.
Coming back to R2C2, and seeing where I got to, I think that FreeRTOS has a little too much complexity, and doesn't offer much in the way of portable device drivers. It is also pretty much a loss leader for NonfreeRTOS. For the above Teacup ports I used ChibiOS, which has better device driver support and a lot of other features, but is also pretty complex. Therefore I am removing FreeRTOS and replacing it with a very lightweight cooperative set up, a model I have used successfully in several projects for my day job.
I see that not much has happened to the R2C2 firmware, but the edge branch I had been working has diverged a lot from the master branch. I don't really fancy merging the two branches back together, and obviously there is little demand to have the features from edge on master. I don't want to inflict experimental changes on the stable R2C2 firmware, so it is probably best if we leave r2c2/master as it is and leave r2c2/edge for historical interest.
For the future, I will be doing r2c2 firmware development in my own forked repo, and leave the r2c2 repo entirely under the control of Bitbox. This gives me the flexibility to hack around, and general r2c2 users get a stable officially supported firmware by Bitbox.
Well, that turned out to be a long post! But, I see some interesting developments ahead.