Report on Oxidize 1K - a remote-only conference for Embedded Rust developers
I came to know about Oxidize 1K, a remote-only conference on Embedded Rust development, through a twitter post. I was working from home, all the time getting inundated by morbid reports of Covid-19 taking over the world. It was a very long time since I had participated in any developer event, and I thought this was a good opportunity to jump in and immerse myself in something positive at least for a short period. And, I am glad I did it!
All the talks were approximately 10 minutes long and delivered over Zoom. Interaction with the speakers and other participants was through matrix chat rooms. The short format of the talks doesn’t allow any deep-dives, but the audience (more than 370 people) got a chance to know about the state-of-the-art in the embedded rust space and also meet and interact with the people who were doing some really cool stuff! Congratulations to the organizers for pulling this off at such a short notice (1 week)!
This may be the beginning of a trend; we will surely see more remote-only conferences in the future, and more and more traditional conferences will incorporate some kind of an “online” component!
What do you do in the breaks between talks? Of course, interact with other participants (in the chat room)! The oxidize1k team had another brilliant idea - they got Sam Aaron to do music live coding in between the talks, Sam also gave a wonderful talk on his philosophy of coding and music.
A quick look at some of the talks
Bryan Cantrill gave an interesting presentation on tockilator. When debugging embedded firmware (in this context, the Rust-based Tock OS), it is helpful to get tracing information. Verilator is an open source tool that takes in a Verilog description of say a RISC-V processor core and generates an executable C++ program which performs a cycle-accurate simulation of the core. The tockilator project makes it possible to take the exhaustive instruction tracing information provided by verilator when running a RISC-V softcore and correlate it with the Rust code executed by Tock OS.
As an aside, I believe we will see (in the longer term) an increasing convergence of several interesting trends in the systems software field: the emergence of RISC-V as the “Linux of microprocessors”, use of Rust as a safer replacement for C/C++ and growth of the FOSS based FPGA tools ecosystem.
Dominik Boehi talked about the exciting embedded debugging toolkit, probe-rs. This is basically a set of tools built around a library which lets us manipulate an ARM/RISC-V microcontroller (access memory, reset cpu, set breakpoints etc) from our Rust code in a debug-probe-agnostic way (stlink/jlink/cmsis-dap supported). One cool application is “cargo flash” which can be used to flash and run code on the microcontroller using cargo! No more googling around for “how to flash code on my controller” … with Rust, you get it out-of-the-box!
End-to-end encrypted messaging is becoming critical in the context of IoT applications. Mrinal Wadhwa talked about the Ockam project which aims to build a framework for secure messaging using languages like Rust,Erlang and Elixir. Rust is being used in the context of its suitability for crypto, ability to interoperate with C, portability (think embedded-hal), suitability for interfacing with Erlang/Elixir (using rustler - added advantage that native code written in Rust will not crash the erlang vm. Core crypto code can be written in Rust and used in both embedded systems and on the cloud).
Solokeys makes open source FIDO2 security keys. Nicolas Stalder, one of the co-founders of the company, talked about Rust crypto on Cortex-M4. Conor Patrik, another co-founder, gave a presentation on how the company is using Rust for developing NFC firmware.
Embedded Rust is making inroads in the design of hi-tech experimental physics apparatus. Robert Jordens talked about using Rust in the design of an optical single-ion clock and a sophisticated embedded PID controller. Check out m-labs for more fascinating stuff involving Physics!
There was only one non-embedded-specific Rust talk: “C is dynamically typed”, and it had an interesting take on Rust String/&str - wait for the videos to be put up on this youtube channel to watch it and also all the other talks!
Full marks to the Oxidize 1k team for assembling a stellar team of speakers and making the conference happen in such a short period!
Just a few thoughts regarding what could be done (in my opinion) to make future events even better.
The 10 minute talk format is OK, but it will be good to have a few longer sessions, even if that means increasing the total duration of the event.
Maybe have some “demo” sessions where people can quickly show the cool h/w stuff they have done using embedded Rust? I have conducted dozens of talks/workshops where I had to carry bags full of electronics stuff and get everything set up properly at the venue; doing this in the familiar environment of your own home lab makes it considerably easier!
What about hands-on workshops?
Come to think of it, almost everything you do at a traditional conference can be done in the “remote” format also … so why not go for it?