FreeRTOS gets lightweight IoT interface with Nabto
This is not much memory as serving web pages from a device generally requires it to run a TCP/IP stack and have some form of file system.
The key to delivering web pages from such a small footprint is to shift heavy user-interface processing to the PC or smartphone that is reading or controlling the remote IoT-enabled device, using a cloud-based system called Nabto, from a Danish firm of the same name.
“FreeRTOS plus Nabto is a small, less than 23Kb including IP stack, piece of C code that, when integrated into an embedded networked device, allows that device to be remotely accessed and controlled through a web based interface or intelligent data acquisition system,” said Real Time Sytems, the company that supports FreeRTOS.
With Nabto, the IoT device only handles a small amount of data – out-going data from its sensors and in-coming commands. The remainder of any web pages seen by the user is served by a remote server in the cloud.
Page seen by the user are assembled from the two sources in the PC or phone by a Nabto plug-in in its web browser,.
“Our technology enables the client to read the device from anywhere, just like Skype,” Nabto founder and CEO Carsten Gregersen told Electronics Weekly. “Security is built in, similar to SSL or TLS security.”
“The plug-in is doing the clever bit,” added Richard Barry, the man behind FreeRTOS. “It will run with any browser. The first time you try to connect to embedded device, it will ask you to install the plug-in, only the first time, the cloud resolves the address for you.”
In use, the plug-in goes first to the cloud server. “The server knows where both items are and serves a specification file to generate a web server interface, mediating direct connection to the device,” said Barry. “It is all seamless to the user. The external device can work behind firewall, doesn’t need a file system, and doesn’t need TCP/IP stack.”
Companies selling devices with FreeRTOS and Nabto, like a room thermostat for example, would have a URL, like BrownsThermostat.com, and each individual product would have a unique address built-in: 456.brownsthermostat.com, for example.
For development, and for use across a local network – for example in a factory – no cloud server is needed. Instead the web content is cached on the user’s PC or phone. “If local, the plug-in will just search and come up with a list of devices to connect to,” said Barry.
Writing apps is simple, claims Barry. “If you can write web pages, you can write apps. The developer just has to build code into the application, just one C function. They don’t have to know how networks work,” he said. There are two application examples on the FreeRTOS website.
In commercial use, capacity would be rented on the cloud server, or “you can buy the server software and host it yourself,” said Barry. “To start, you don’t need to pay anyone, just run it locally.”
There is a lot more on the Nabto page of the FreeRTOS site.