Home >

Containers and Managed Software on Micro-controllers

Kasper Lund- Watch Now - Duration: 36:05

Containers and Managed Software on Micro-controllers
Kasper Lund
Building all functionality for your micro-controllers as monolithic firmware is error-prone and costly. Taking a page from server- and desktop systems, we propose running your code as individual apps, isolated from each other in containers, and managing them over-the-air through a remote serviceability protocol. Want to catch a glimpse of this on an ESP32?
M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

davek
Score: 1 | 3 years ago | 1 reply

Your presentation and demo were really good. How much code space is used by the toit firmware? Is the code compiled to object code on the PC or is there some level of interpretation being performed on the target?

Kasper LundSpeaker
Score: 0 | 3 years ago | no reply

Thank you! The Toit firmware uses a number of supporting libraries, such as Mbed TLS, Apache Nimble, and lwIP. Isolated from those, the Toit virtual machine takes up around 165kb of ROM in the .text segment and approximately 2kb of RAM in the .data and .bss segments.

Toit applications are compiled to an intermediate form that is interpreted on the device. Everything is well set up to support compiling directly to object code, so we are probably going to explore that next. For now, the interpretation supports live reloading which is pretty neat too: https://youtu.be/cU7zr6_YBbQ.

daveyboy17
Score: 2 | 3 years ago | 1 reply

Seriously impressive vision of how the future of firmware could be. I would really like to see this kind of thing available for far more devices. Excellent presentation!

Kasper LundSpeaker
Score: 1 | 3 years ago | no reply

Thank you! We are currently integrating the first open source contributions on new ports starting with RISC-V based device like the ESP32-C3, so this is definitely coming to more devices. If you want to take the open source version for a spin, we've made that really easy through Jaguar: https://github.com/toitlang/jaguar.

If you're the type that likes to see it first, I have just uploaded a three minute YouTube video of Jaguar in action: https://www.youtube.com/watch?v=rXbe_1hyz80. Enjoy!