Integrating Rust into (Bare-Metal) Firmware (on a Microcontroller)

By Christian Meusel

Workshop - Monday, 14 September
10:00

Rust is a great fit for refactoring and extending existing C applications. Especially at low level. This workshop is about empowering people to integrate Rust into existing C applications - especially in the context of bare-metal microcontroller software. Let’s get our hands dirty!

This workshop is about incrementally adding Rust to an existing C application which will be exercised by adding QR code generation and display to an existing WiFi scanner written in C with LVGL.

From an initial beach head tackling build integration, organizing your new Rust code, and making the first FFI call into Rust to adding dynamic memory allocation, third party crates (the QR code generator), generating FFI bindings, and preparing a QR code pixel stream for displaying it with LVGL.

This is a hands-on session where all participants get their MCU board to work on and play along at home.

Prerequisites:

Foundational proficiency in writing C applications, basic Rust knowledge and no fear of getting its hands dirty with embedded programming. On the workshop day you will need a working C and Rust toolchain for ESP32 Xtensa devices together with CMake. Luckily Espressif already bundles these tools for their ESP32 controllers and you will receive installation instructions a few weeks before the workshop.

Trainer

speaker.name

Christian Meusel

Christian has been building embedded systems for 20 years, and for the last 10, he has been helping customers get their products into shape, certified, and shipped. In most cases, Rust is at least partly driving them. For recreational coding, he does open source work like maintaining the serialport crate.