Bobbin CLI is a command line tool to make it easy to build, deploy, test and debug embedded devices using a unified CLI.
I’ve written a blog post, Bobbin CLI: Getting to Blinky describing the motivations for this tool and what it does. The short version is that it’s a tool designed so that you can do this:
$ bobbin run Compiling blue-pill v0.1.0 (file:///home/bobbin/bobbin-hello/blue-pill) Finished dev [optimized + debuginfo] target(s) in 0.13 secs text data bss dec hex filename 152 0 4 156 9c target/thumbv7em-none-eabihf/debug/blue-pill Loading target/thumbv7em-none-eabihf/debug/blue-pill.hex Complete Successfully flashed device Loader Load Complete Console Opening Console Hello World 1 Hello World 2 Hello World 3 ^C $
with a wide range of development boards and debug probes.
Currently Bobbin CLI works with
- ST-Link/V2 and ST-Link/V2-1 (STM32 Discovery and Nucleo development boards, including optional SWO trace output)
- J-Link (Standalone debug probes and included in many development boards)
- DAPLINK / CMSIS-DAP (Used in many development bards)
- Blackmagic Probe (popular open source debug probe)
- TI ICDI
- Bossa (Firmware uploader for Arduino-compatible boards including the Arduino Zero and Feather-M0)
- Teensy Loader (Firmware uploader for Teensy boards)
- DFU-UTIL (USB DFU firmware uploader)
Only macOS and Linux are supported as hosts at the moment, but there’s work being done to make it run on Windows.
My original motivation for this was to scratch an itch - building an CI infrastructure capable of supporting dozens of connected embedded devices per host. But just as important is making it easy for someone new to embedded Rust programming to go from plugging in a dev board to having a running program.
The long term goal is to make it easier to go from a clean Rust installation to a working embedded toolchain than it is to download and install the Arduino IDE.