Skip to content
Stabilizer Firmware
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.cargo cargo: gdb-multicarch Mar 20, 2019
doc
nix add Nix build files May 15, 2019
src use atomics Apr 30, 2019
.gitignore start Mar 18, 2019
.travis.yml travis: skip clippy Apr 29, 2019
Cargo.lock ethernet: tweak Apr 28, 2019
Cargo.toml ethernet: tweak Apr 28, 2019
LICENSE readme, license Mar 20, 2019
README.md png May 9, 2019
build.rs start Mar 18, 2019
default.nix add Nix build files May 15, 2019
memory.x ethernet: tweak Apr 28, 2019
openocd.gdb iir: tweak, add offset Mar 29, 2019
release.nix add Nix build files May 15, 2019
stabilizer.cfg working Mar 18, 2019
stabilizer_pid.png png May 9, 2019
stabilizer_pid.svg README: diagram and photo May 9, 2019

README.md

Stabilizer Firmware

Flow diagram

Hardware

Features

  • dual channel
  • SPI ADC
  • SPI DAC
  • fixed AFE gains
  • 500 kHz rate, timed
  • < 2 µs latency, unmatched
  • f32 IIR math
  • generic biquad (second order) IIR filter
  • anti-windup
  • derivative kick avoidance
  • configurable output limits

Hardware

See https://github.com/sinara-hw/Stabilizer

Minimal bootstrapping documentation

  • Clone or download this
  • Get a recent openocd, a JTAG adapter ("st-link" or some clone) and everything connected and permissions setup
  • Get a multiarch gdb (or a cross arm gdb and edit .cargo/config accordingly)
  • Get rustup
  • rustup override add nightly
  • rustup target add thumbv7em-none-eabihf
  • openocd -f stabilizer.cfg and leave it running
  • cargo run --release
You can’t perform that action at this time.