The imix is an open source, all-in-one development board for IoT research and prototyping. With a Cortex M4 microcontroller, low-power wireless communication, sensing, battery charging, and tons of I/O options, imix has everything you need to prototype and profile your next big IoT project. Pair imix with the Tock embedded OS to quickly develop secure embedded platforms and applications.
We developed the imix as a reference platform for the kind of next-generation hardware that Tock OS is designed for. It includes a multitude of sensors, two MCUs, two different low-power radios, and advanced hardware security features.
This is the same board the core Tock OS developers use, so it’s the most reliable way to get started developing with Tock. Even if you’re porting Tock to another platform, having a common, reference hardware platform for OS development will make it easier to upstream your patches and debug issues.
For the price, no other development platform offers as many features as imix: a light sensor, humidity and temperature sensors, accelerometer, Bluetooth LE/ANT and 802.15.4 radios, battery charging, and an auditable random number generator are all on-board.
No shields or expansion boards are required. If you collaborate, this means you can just plug the imix into your computer and you know you’ll have the same exact setup as your colleagues.
In addition, imix allows you to individually control a separate power domain for each subsystem. You’re not using the sensors? Don’t turn them on! Don’t need an 802.15.4 radio? Leave it off! Moreover, it’s easy to measure power consumption from each domain independently. This means you can get further with the development board when creating low-power applications.
Finally, both the software and hardware designs are completely open source, so you won’t be lost when you move from prototyping to building your own hardware.
Sensor networks research has evolved over the past couple decades to include new applications for the Internet of Things. These applications use different network protocols (e.g., Bluetooth LE) and have strict security and privacy requirements.
imix provides a common platform for researchers to explore new applications while using modern hardware. It includes radios for both 802.15.4 and Bluetooth LE, sensors that enable common IoT and sensor networks applications, as well as ample exposed communication busses and GPIO pins for expansion. Moreover, The platform is designed to make rigorous evaluation of power consumption easy and convenient.
Combined with Tock OS, the imix allows researchers to do repeatable research and build on each other’s work.
|Architecture||Cortex-M4 + M0||Cortex-M4||Cortex-M3||ATmega (AVR)||MSP430|
|SRAM||64 KB + 32 KB||32 KB||96 KB||4 KB||10 KB|
|Flash||512 KB + 256 KB||256 KB||51 2KB||128 KB||304 KB|
|Max. Freq||48 MHz||48 MHz||84 MHz||16 Mhz||8 Mhz|
|USB||Host/Device Full-Speed||Host/Device Full-Speed||Host/Device Hi-Speed||No||No|
|Hardware RNG||3 (1 auditable)||1||1||No||No|
|USB Power||2 ports||2 ports||2 ports||No||Yes|
|Battery||Yes (18650)||No||No||Yes (AA)||Yes|
We’ve already produced a small batch of imix boards and have been using them for Tock OS development. We plan on fixing a few minor hardware bugs and will then be ready to manufacture the board for distribution.
The imix development board is already usable for embedded development and it has become our primary development board for Tock OS. The main challenge we face is successfully producing it at scale. We have found a manufacturer to produce the boards within budget.
Where is the source code?
The imix eagle files are on GitHub.
How do I program imix?
You can replace the kernel and program apps on the SAM4L using a Unix utility that talks to the imix bootloader. To replace the bootloader, or program the NRF51, you need a JTAG debugger like this one.
Is imix Arduino compatible?
Imix has Arduino Uno compatible headers, so you can attach many shields intended for Arduino Uno to imix. However, we have not ported imix to work with the Arduino IDE.
Do I need imix to run Tock OS?
Tock OS can run on any Cortex-M based board, but imix is what we use for development and has a ton of features we wanted to support. So while you don’t technically need imix to run Tock, it’s the simplest way to get started and the most painless way to contribute.
What is this "auditable" random number generator?
It’s a random number generator built from cheap components directly on the board. You can see the SenSys 2016 paper for details. Imix is the first board available to include it.