.cargo | ||
doc | ||
nix | ||
src | ||
.gitignore | ||
.travis.yml | ||
Cargo.lock | ||
Cargo.toml | ||
default.nix | ||
LICENSE | ||
memory.x | ||
openocd.gdb | ||
README.md | ||
release.nix | ||
stabilizer_pid.png | ||
stabilizer_pid.svg | ||
stabilizer.cfg | ||
stabilizer.py |
Stabilizer Firmware
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 runningcargo run --release