- Added endstop and light_sensor module - Improved configuration by splitting wiring configs to boards.h - Added a unit test for argument parsing - Fixed many smaller bugs
41 lines
No EOL
1.9 KiB
Markdown
41 lines
No EOL
1.9 KiB
Markdown
# Firmware code for the sangaboard
|
|
|
|
*This firmware is Work in Progress and while it should now support all features of the original, many features are untested.*
|
|
|
|
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) 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.
|
|
|
|
The firware can be build against different platforms (pi pico, stm32). `boards.h` contains wiring configuration which will need to be adjusted when used with a custom board.
|
|
|
|
## 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
|
|
- [x] Implement Endstops module
|
|
- [x] Implement Light sensor modules
|
|
- [x] Handle Sangaboardv3
|
|
|
|
### Testing
|
|
- [ ] Ensure responses to commands match the original version
|
|
- [ ] Test endstop modules
|
|
- [ ] Test Light sensor module
|
|
- [ ] Test on different platforms
|
|
|
|
### Improvements and fixes
|
|
- [ ] Add a CI script
|
|
- [x] Add test for argument parsing
|
|
- [ ] Add more unit tests
|
|
- [ ] Test automatic building and upload
|
|
- [x] Support other platforms
|
|
- [ ] Clean up
|
|
- [ ] Improve handling of unused modules/libraries
|
|
- [ ] Lower RAM use |