I’m looking for something powerful enough to take advantage of the Zigduino hardware, while at the same time open source and supported by an active community. Is that Contiki? Early signs are promising. I have put up a specialized avr-zigduino platform for Contiki, which contains tested and proven code and a Zigduino-specific walk-through to use it.
Contiki considers itself the “The Operating System for Connecting the Next Billion Devices – the Internet of Things.” It’s an Internet-connected multi-tasking OS for low-end platforms, like Microcontrollers. Contiki is great for the amazing level of connected functionality it will squeeze out of a $5 chip. It runs on a vast array of platforms and CPU’s.
It does have a few problems, though. It’s massively multi-platform, so not all code works on all platforms, and it’s hard to tell which will work. Another problem is that its primary purpose seems to be wireless research, not application implementation, so it can be maddeningly long on theory and short on details. It has an emulator, a simulator, and the ability to run/test everything on PC’s. That is, it gives you lots of ways to avoid running on real hardware! Too many examples revolve around these shortcuts and hand-wave the details for real hardware. Finally, it is optimized around the Tmote Sky platform, which is not even available anymore.
Zigduino is an Atmega128rfa1 board in an Arduino form factor with 5V-tolerant inputs.
The avr-zigduino platform sets Contiki up so you can run it on it the Zigduno board, using the right chipset, UART, LED’s, etc. Beyond that, it seeks to separate what works on Zigduino from what does not, and provide tests to ensure that future Contiki revisions continue to work on Zigduino. It also intends to provide real-life usable examples on real hardware for all functionality that’s claimed to be working.
Whenever I get something working with Contiki in Zigduino, my goal is to write a test for it to ensure the code continues to work AND an example showing how someone would use it for a real-life project. Right now, I’m just building up the tests, and the examples will come in time.
Ultimately, I would like to get the avr-zigduino platform folded into Contiki. The biggest challenge is likely to be the small set of changes needed elsewhere in the OS which are needed for the platform to work right. This may not happen quickly, so I am hosting a complete fork on github.
Read all the details on the avr-zigduino platform wiki on github.