Hoping to jump start implementation of its Internet of Things software, Thingsquare has just released the open source code of its Mist firmware for a number of hardware platforms, including STMicroelectronics and Texas Instruments.
Thingsquare Mist connects battery-powered wireless microcontrollers to the Internet, allowing product manufacturers to quickly connect products such as smart lightbulbs and home appliances to smartphone apps and database backends. Used in a number of products in the connected home, smart lighting, and smart cities markets, Mist builds on open Internet standards, such as IPv6, RPL, and 6lowpan.
According to Adam Dunkels, chief architect and co-founder of Thingsquare, what the company brings to the mix is an exceptionally lightweight router software, which connects an IPv6 mesh to the Internet in less than 4 kilobytes of memory.
The launch source code has support for TI’s CC2538 2.4 GHz 802.15.4 SoC, and CC1101 and CC1120 sub-GHz transceivers with TI's MSP430 microcontroller as well as the SPIRIT1 sub-GHz transceiver on the STM32L microcontroller platform from STMicroelectronics.
Mist typically runs on hardware with 64-256 kilobytes of flash and 16-32 kilobytes of RAM. The device configuration runs a WebSocket client that talks to a cloud-hosted server. The router runs the seamless router software and firewall in addition to the full Mist stack. The code was compiled with gcc.
Every Mist device has a low-power radio that allows it to communicate with each other and the Mist router. The router has both a low-power radio and an Internet connection, typically Ethernet or WiFi and is responsible for the formation of the Mist mesh network.
When a Mist device boots up, it starts to send RPL DIS (discovery) messages announcing that it would like to connect to a nearby Mist network. Since the messages are encrypted, only the devices that belong together can hear the messages.
Using the IETF RPL IPv6 mesh routing protocol (ripple), the Mist router is the root of the RPL network. All other devices have routes to the root device as well as routes to all its children in the routing graph. The root begins to form the RPL network by sending out RPL DIO (identification) messages to its neighbor devices.
The Mist devices have multiple ways to reach the root of the network. To choose which way to take, the devices continuously measure the quality of the paths and use the one that needs fewer transmissions to reach the root. If a path goes bad, more retransmissions are needed, and the device will switch to a better path.
The Thingsquare Mist open source code is available for download from the Thingsquare website. Mist-compatible hardware kits and reference designs will be available. The company will also sell subscriptions to Mist source code updates, custom Mist-based software solutions, and a range of training options for Mist users.