Skip to content
Rust board support crate for the Solo security key
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.cargo basics Jan 5, 2019
examples
ref
src Implement Leds, with example Mar 15, 2019
.gitattributes Add reference material Mar 9, 2019
.gitignore
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
Makefile
README.md
bmp.gdb
build.rs
memory-nucleo.x
memory-solo.x Improve Makefile, adding Nucleo target board Mar 9, 2019
openocd.cfg
openocd.gdb Implement Leds, with example Mar 15, 2019

README.md

License License Crates

solo-bsc

This is a (WIP!) Rust board support package for the open source Solo security key.

This key consists of:

  • an STM32L432KC microcontroller
  • either a USB-A or USB-C connector
  • a clicky dome button
  • 3 LEDs
  • an NCP114 voltage regulator
  • and various resistors, capacitors, and Zener diodes

One specialty is that it has a custom USB bootloader, allowing easy updates. To use it, FLASH ORIGIN in memory.x needs to be set to 0x800_5000 instead of the conventional 0x800_0000. Alternatively, the ST DFU bootloader can be used. Additionally, serial TX/RX and all SWD pins (SWDIO, SWCLK, SWO) are kind of broken out.

Quickstart

You need stable Rust 2018 edition, for details see the embedded book, in short:

curl https://sh.rustup.rs -sSf | sh
rustup target add thumbv7em-none-eabihf
cargo install cargo-binutils
rustup component add llvm-tools-preview

To build blinky, run make blinky. You end up with a blinky.hex file.

To flash it to your Solo Hacker:

  • insert Solo and boot to Solo bootloader by pressing the button for ~2 seconds (it starts to blink)
  • setup Solotool and make sure you can flash the original solo.hex
  • run tools/solotool.py /path/to/blinky.hex
  • watch the green LED blink 🎉

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

You can’t perform that action at this time.