Implement device firmware upgrade using MCUboot Serial Recovery over
usart1 (reusing the existing protocol UART). The application layer
handles upgrade commands (0xFF) to trigger bootloader entry, while
MCUboot manages the actual firmware swap with RSA signature
verification.
Key additions:
- sysbuild.conf to enable MCUboot bootloader with signing key
- mcuboot.conf with serial recovery and watchdog feed settings
- Kconfig option APP_DFU (default y) with conditional compilation
- dfu.cpp module for DFU initialization
- Upgrade command callback in com.hpp (bootmode_set + sys_reboot)
- Documentation for upgrade procedures and change notes
Group UART sensors into channel slots and add an MS board overlay
with per-port speed and sensor mode configuration. Also add optional
per-second channel diagnostic output controlled by APP_DEBUG_PRINT.
Restructure Led as a template on the DT spec, add a generic
signal/slot mechanism for host status, and cache Infrared sensor
samples via trigger callbacks. Add new init modules for LED, temp,
and watchdog, and build them into the main app.
- Remove heating and NTC functionality from communication module
- Convert Infrared from template to runtime array-based implementation
- Refactor Led to support multiple LEDs with compile-time name
validation
- Simplify main to remove direct hardware initialization
- Update west manifest for dr2501a board and add ch9438 module
Extend the UART protocol to support writing and reading the heating
state, and reading individual pole NTC sensors and the heating pad NTC.
Cache NTC readings for query on demand. Move PID updates to a workqueue
to avoid blocking the timer IRQ context.
Add printk debug statements to NTC temperature sensor reading and
IR temperature sensor reading. Change NTC loop to use index-based
iteration. Fix missing newline in boot message. Remove unused
watchdog and commented-out code.
- Add CONFIG_SAMPLE_NTC to CMakeLists.txt and Kconfig
- Implement PI temperature controller with PWM output in heating.hpp
- Convert NtcGroup from template to non-template class
- Add LED helper class with flash support
- Implement COM protocol handlers for device ID and running state
- Add SPI, sensor, and PWM configuration to prj.conf
- Remove indicator overlay and update main.cpp with temperature
monitoring
- Add test script for serial protocol communication