Technical Debts
List of technical debts identified during the project.
-
Framework Deviation: Using
arduinoframework instead ofpico-sdkas initially planned inDESIGN.md. This was chosen because the Seeed Studio PlatformIO platform recommends it and it was easier to verify the basic setup. Transitioning topico-sdkremains a future goal. -
PWM Implementation Gaps: The current
RP2040PWMRenode model is a simplified functional representation and lacks several hardware features:- Double Buffering:
CCandTOPregisters update immediately instead of being latched and updated only on counter wrap. - Dynamic Counter: The model uses a static frequency/duty cycle calculation rather than a cycle-accurate 16-bit incrementing counter.
- Input Modes:
DIVMODEsettings (LEVEL, RISE, FALL) that use the B pin as a clock gate or clock source are not implemented. - Phase Adjustment:
PH_ADVandPH_RETbits are non-functional. - Interrupt/DMA Triggering: IRQ and DREQ signals are not asserted on counter wrap.
- Double Buffering:
-
ADC Implementation Gaps: The
RP2040ADCRenode model was improved in May 2026 to address previous gaps in error handling, READY flag behavior, pacing timer accuracy, and DREQ signaling. Remaining items include:- Pacing Timer Precision: While the interval logic is implemented, the model uses a simple cycle counter which may drift under heavy simulation load.