Left/white is latest board revision
Let me start by stating that there is no new functionality between the controllers, much of the hardware changes were driven by ongoing chip shortages. However there are a few things worth highlighting on the newest controller.
The first difference is that we are now using the RP2040 for the MCU instead of the SAMD21.
The table below shows some of the highlights with the new chip. I’m happy to add more low level details but will skip that for now. Both support Arduino fairly well so the firmware changes were minimal.
Note: The RP2040 firmware version is followed by an ‘R’ (eg. v5.5R) because the 2 chips require different firmware when flashing updates.
The addition of a second core is like having 2 chips in one. In version 5.5 we just leverage it to handle running the audio buzzer but expect more in future updates!
SAMD21 | RP2040 | |
---|---|---|
Processor | ARM® Cortex®-M0+ CPU running at up to 48 MHz | Dual ARM Cortex-M0+ @ up to 133MHz |
Flash | 256 KB in-system self-programmable Flash | Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus |
Ram | 32KB on-chip SRAM | 264KB on-chip SRAM |
ADC | 12 available × 12-bit | 3 available × 12-bit |
I/O | Up to 52 programmable I/O pins | 30 GPIO pins, 4 of which can be used as analog inputs |
The keen observer of the image will notice that we no longer populate the 10 pin SWD connector. That’s because the RP2040 comes hardcoded with its own (UF2) bootloader. USB flashing is enabled from the factory. Also there are no more concerns of accidentally overwriting the bootloader and having to buy a special flashing tool to get it back.
Because the RP2040 doesn’t have its own storage we added a 16MB flash chip for storing the firmware. The firmware is nowhere near that big so there was plenty of extra room to also use it as an EEPROM (where the config data such as meters vs feet is stored).
Another difference is USB-C. We’ve upgraded from micro-USB to the new standard which means no more plugging in the USB cable upside down!
Hopefully this was informative. Again, I view this as more of a controller revision vs an upgrade and we plan to support both versions far into the future.
Speaking of upgrades, back to work