flipperzero-firmware
flipperzero-firmware copied to clipboard
[FL-3669] Expansion module protocol
What's new
- UART refactoring by @skotopes (better access model)
- Standard expansion module protocol with automatic detection, software flow control and RPC support
- Reference parser implementation
- Integration test application and unit tests for the parser
TODO:
- [x] Documentation (Doxygen, protocol description)
- [x] Robustness (make it resilient to garbage data and unexpected disconnects)
- [x] Basic error detection via checksum
- [x] Code cleanup and optimisation
Verification
- Connect the hardware programmer with jumper wires so it does not interfere with pins 13 to 15.
- Connect pins 13 to 16 and 14 to 15 with jumper wires.
- Flash the firmware.
- Launch the test application:
./fbt launch APPSRC=expansion_test - An audovisual alert should play shortly.
- Check that the test applicaton has exited and the respective RPC session was closed.
- Download file
/ext/ExpansionTest/test.txtusing qFlipper or any other method. - Check that it is identical to the file found in the application source
assetsfolder.
Checklist (For Reviewer)
- [ ] PR has description of feature/bug or link to Confluence/Jira task
- [ ] Description contains actions to verify feature/bugfix
- [ ] I've built this code, uploaded it to the device and verified feature/bugfix