Bobbin SDK: Richer Hardware Abstractions for Embedded Systems Programming

Bobbin SDK is a suite of tools and code that has been used in embedded development projects running on a variety of ARM Cortex-M MCUs over the last year and a half. It exists to bridge the gap between the existing Rust ecosystem centered around svd2rust and rich but proprietary vendor SDKs. svd2rust has jump-started embedded development in Rust, but is fundamentally limited by the CMSIS-SVD data format itself. ... Read more

Rust 2018: Improving Safety and Ergonomics for Low-Level Programming

There’s been a lot written about what can be done to make Rust’s tooling, libraries and infrastructure better for embedded programming, but I’d like to cover a slightly different topic: what can be done to make Rust the language itself safer and easier to use for low-level programming? I’m using the term “low-level programming” to refer to any type of programming where you are dealing with memory structures at the bit level and/or are dealing with memory-mapped I/O. ... Read more

Notes from Small Satellite Conference 2017

This past weekend I had a chance to attend the Pre-Conference Workshop of the 2017 Small Satellites Conference in Logan, UT. I had a few goals going in: learning about the software stacks used in these satellites as well as their development processes, learning about the systems architectures and hardware that is in use, and meeting with my new friend Alex who has a unique perspective as an industry insider that is interested in and using Rust. ... Read more

Blink... Blink... Blink...

In Bobbin CLI: Getting to Blinky I introduced Bobbin CLI, but I didn’t actually answer how you actually get to Blinky, the embedded world’s “Hello, World”. There are many excellent posts and tutorials showing how to get a board blinking using many different different types of hardware and development tools, including the excellent Rust your ARM microcontroller. But sometimes you need something more basic: you simply want to know whether your toolchain and hardware work! ... Read more

Bobbin CLI: Getting to Blinky

Anyone that’s dabbled in open-source embedded software development in C, C++ or Rust knows how rough it is around the edges. For beginners, it’s a huge barrier - there’s a lot of research, installation, and configuration that has to happen just to get a working toolchain that you can use to build and load software onto your chosen development board. For more experienced developers, it makes you wonder if it’s all worth the effort. ... Read more