Thingsquare Mist – Open Source Firmware for The Internet of Things
Thingsquare recently released the source code for the Thingsquare Mist firmware, an ultra lightweight router software (<4 kB memory) for the Internet of Things based on open Internet standards such as IPv6, RPL (Routing Protocol for Lossy networks), and 6lowpan. Thingsquare Mist allows to connect battery-powered wireless micro-controllers to the Internet, and is currently used in applications such as smart light bulbs, connected home appliances, and connected cities.
The IPv6 mesh network is composted of nodes with a low power radio that communicate with the Mist router (Green), which in turn connect to the Internet and Thingsquare Cloud backend (Thingsquare Haven) to store the data, and/or receive control commands via Ethernet or Wi-Fi. The end users can then use an App to monitor, and/or control the devices remotely. Thingsquare Mist uses IETF RPL IPv6 mesh routing protocol (pronounced “ripple”) for IPv6 nodes communications.
Thingsquare Mist runs on several low-power wireless SoCs, standalone MCUs, as well as low-power wireless transceiver combos, and both 2.4 GHz and sub-GHz radios are supported:
- 2.4 GHz radio:
- mist-cc2538dk based on TI CC2538 ARM Cortex M3 SoC
- red-io based on Freescale MC13224v ARM7 SoC
- sub-GHz radio:
- stm32l-spirit1 powered by STMicro STM32L ARM Cortex M3 MCU + SPIRIT1 radio
- exp1120 powered by Texas Instruments MSP430f5438 MCU + CC1120 radio
- exp1101 powered by Texas Instruments MSP430f5438 MCU + CC1101
Thingsquare Mist can run on hardware with 64 to 256 kB flash and 16 ti 32 kB RAM. The graph below shows the flash and RAM footprint (in kB) for a router configuration for both 16- and 32-bit micro-controllers. The device configuration (not shown) also runs a WebSocket client, but does without the firewall, and has a very similar footprint to the server. The operating system of the platform is Contiki, an open source OS for the Internet of Things.
Thingsquare Mist 1.0.1 is a 33 MB download which contains the following directories:
- app – Thingsquare Mist applications
- contiki – The Contiki OS
- dev – Device drivers for radios
- examples – Examples such as hello world, mesh node, router node, and udp multicast.
- platform – Code for the hardware platforms mentioned above.
- tools – Various tools
Software for Thingsquare Mist is developed in C language and can be compiled with either gcc or IAR. The company recommends to use the open source Instant Contiki development environment (Eclipse based). It a 2GB single-file download that includes an Ubuntu virtual machine to be run in VMWare Player pre-installed with the required compiler and toolchain. You can also use Thingsquare Mist simulation environment in order to test your code before production and deployment. I could not find a download link for the latter though…
For further information, you can visit Mist page on Thingsquare.com.