It’s clear that the type of distributed computing called for by billions of connected and networked sensors and gateways will require new forms of computing architectures. We’ve seen an embrace of containers by many companies that want to run their applications on edge devices and in the cloud. We’ve also seen the rise of cloud-based services that constantly keep connected devices up to date and help manage millions of computers at scale.
And now, thanks to a Danish company called Toit (taken from how Andy Sandberg’s character in “Brooklyn-99” says “tight”), there’s another option for managing a cluster of networked and resource-constrained computers. The 3-year-old startup has built a service around firmware and a set of developer tools that makes it easier to manage IoT devices.
Kasper Lund, co-founder and CEO of Toit, said that the company was built to make it easier for people to safely deploy code on connected embedded devices. He elected to work on building the platform for the ESP32 board produced by Espressif. The ESP32 is an inexpensive board that has Wi-Fi, Bluetooth, and a custom RISC-based microcontroller.
The ESP32 has become very popular with various IoT products. Lund said he wanted to choose something a little different from the traditional ARM-based MCU available, although he added that Toit’s platform could be adapted for ARM-based MCUs and even newer RISC-V architectures.
Toit’s firmware runs on the ESP32 (and works with a variety of real-time operating systems including FreeRTOS, Zephyr, and Contiki). The firmware separates the application from the underlying hardware and gives developers a safe space to deploy their code without worrying about bricking the device.
During his time at Google, Lund and others on the Toit team worked on the V8 engine for Chrome, which was a virtual software container for the browser activities running on a computer. Toit’s software is similar in that it creates a virtual environment. The only difference is it’s designed to run on MCUs that use RTOSes instead of full-fledged operating systems.
Toit provides the firmware and the developer tools to build applications; the result is an API for each device running the Toit firmware. Through the API developers can see where devices are, send updates, gather data, or whatever else they may want to do. The API framework means that companies can control their physical devices much like software, and additional features offered by Toit help ensure that owners of those devices can update them often.
Toit also has an algorithm that helps reduce the amount of data in a software update so it’s cheaper to send it using cellular or other high-cost connectivity options, and in a way that handles intermittent connectivity. Instead of pushing an entirely new version of the software to a device, the Toit software sends a version with only the necessary changes described and the software updates from that. It’s as if instead of sending an entirely new version of an article to my editor, I sent her a shorter document telling her where to place the comma or what word to change. And because Toit’s software platform is virtualized away from the underlying hardware, the devices can roll back updates if they cause a problem.
Toit has several customers using the software and has since late last year, but so far the largest deployment is in the “hundreds of devices,” said Lund. This isn’t really a scaled-out deployment, but Toit’s customers haven’t pushed the software out in production environments, so we’ll have to wait and see how well it scales.
Toit has raised $3.5 million in seed funding from Creandum, and joins companies such as Balena, Golioth, Zededa, and others trying to solve the complexities associated with delivering software to distributed IoT devices. I’m excited to see them all.