Whats new on the latest SP140 controller

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


Is that new memory chip sufficiently large/rewriteable to serve as trip logger? At least for the data the throttle itself has, like timestamps on start/stop/accelerate?

Hey Jim,
Great question, its on my list to investigate creating a version of a “black box” logger for a variety of parameters which would be especially helpful for debugging.

The datasheet for the flash chip here says the memory is rated for a minimum of " 100K Program-Erase cycles per sector" - each sector is 4KB for a total of 4,096 sectors. So without wear-leveling (assuming you were always writing to the same chunk of memory) at 1 write per second you could expect about 27.8 hours of rated cycles (100000/60/60).

In contrast the CAT24C64 EEPROM chip from the previous SAMD21 based controllers is rated for 1 million cycles total with its smaller 64KB of total memory.
Of course these are the minimums. If you were going to use, say, half of the flash memory for data logging (2048 sectors/8MB) and write 10 times per second it sounds like we can expect about 237 days of continuous writes (100000/60/60/10/24*2048). Thats a lot of flying!

Did you know the datasheets also specify the number of year minimum the data is rated to be stored for? The flash memory is 20 vs 100 years for the EEPROM. I wonder if we’ll have brain controlled PPG throttles by then…

2 posts were split to a new topic: First time battery plug in doesn’t always work

What one did batch 3 come with the white or the black?

Haha both, we’ve been shipping as fast as we can as new inventory comes in.

The theme here is that we’re trying to constantly improve as we go and don’t want to hold up shipping for any particular change.

1 Like