31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
# Firmware code for the sangaboard
|
|
|
|
*This firmware is Work in Progress and has not reached feature parity with the original yet (see below for more details)*
|
|
|
|
Firmware for the control board of OpenFlexure Microscope. This is a refactor of the [original arduino code](https://gitlab.com/bath_open_instrumentation_group/sangaboard/-/blob/master/arduino_code/README.md) with some improvements to the infrastructure and features.
|
|
|
|
## Notable changes
|
|
This version of the firmware uses PlatformIO rather than Arduino IDE.
|
|
|
|
The code is split into the main part which mostly handles command parsing and modules which execute actual commands, allowing the firmware to be easily extensible with new features (add a module based on one of the existing ones and add a line to setup to register its commands and loop function).
|
|
|
|
Motor moves now do not block command processing and a new command `stop` was added which aborts any move in progress.
|
|
|
|
## Hardware
|
|
|
|
Currently works on Arduino Nano + Sangaboard v0.2. Other platforms might work with appropriate `platform.ini` and `config.h` changes and will be supported in due course.
|
|
|
|
## TODO list
|
|
|
|
### Original firmware feature parity
|
|
- [ ] Implement Endstops module
|
|
- [ ] Implement Light sensor modules
|
|
- [ ] Handle Sangaboardv3
|
|
- [ ] Ensure responses to commands match the original version
|
|
|
|
### Improvements and fixes
|
|
- [ ] Add a CI script
|
|
- [ ] Add tests (argument parsing)
|
|
- [ ] Test automatic building and upload
|
|
- [ ] Support other platforms
|
|
- [ ] Clean up some of the messier bits
|