sangaboard-firmware/README.md
Filip Ayazi 35d969aadd Add endstops, light_sensor, test, many fixes
- 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
2021-05-25 01:43:11 +01:00

1.9 KiB

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 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

  • Implement Endstops module
  • Implement Light sensor modules
  • 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
  • Add test for argument parsing
  • Add more unit tests
  • Test automatic building and upload
  • Support other platforms
  • Clean up
  • Improve handling of unused modules/libraries
  • Lower RAM use