First and incomplete version of the refactor, stage module works, including aborting moves.
30 lines
No EOL
1.5 KiB
Markdown
30 lines
No EOL
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 it's 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 |