I’m [adding support for the MicroMod nRF52840 Processor to CircuitPython. I was hoping to find someone that could let me know which USB PIDs would be acceptable to use. I took a nod from the [sparkfun_nrf52840_mini board that is already supported in CircuitPython, and have created my PRs using 0x1B4F (SparkFun’s) VID, but I’d still like to get some PIDs so as to not accidentally collide with anything else!
I’d need one for the CircuitPython device itself, and two for the [UF2 bootloader modes (One is for the regular UF2 bootloader, and the other is for the “CDC Only” UF2 bootloader mode.
If I’m barking up the wrong tree here, just tell me where to point my next yip!
Is there a formal list of all of these somewhere? Ideally in some kind of Wiki page? Really want to see CircuitPython support for the RP2040 chipsets!
These are the relevant and as far as we can tell only released items which are the PIDs for the three SparkFun RP2040 items. Those two sets represent the hex values from 0x0021 to 0x0026 at least.
SparkFun Thing Plus – RP2040 (SparkFun USB PID: 0x0025)
SparkFun MicroMod RP2040 Processor (SparkFun USB PID: 0x0024)
SparkFun Pro Micro – RP2040 (SparkFun USB PID: 0x0026)
There are some official CircuitPython examples here at least that are directly related to the MM nRF52840. Directly from SparkFun.
Their official post for the nRF52840 says as of late January when first posted “[a]s noted, CircuitPython support for the nRF52840 is still in a very early release stage. Here are a few tips for escaping some of the more common pitfalls.”
Added board configuration files for the Sparkfun ThingPlus RP2040 Builtin NeoPixel, LED, QWIIC port and build-in micro-SD slot all tested and working with the updated pin definitions.
Wants to merge 7 commits into adafruit:main from mintakka:thingplus-rp2040. Should hopefully be merged here shortly (next few hours to a day or so at the most).
A pretty definitive list of boards that CircuitPython ships on is available here: https://circuitpython.org/downloads – notice one of the most recent is the Raspberry Pi Nano
I haven’t got the MicroMod nRF52840 on there yet, but my changes did get merged in this last week. There’s the matter of the bootloader as well: right now CP on the nRF52840 requires the UF2 bootloader (or at least a bootloader that will jump to the proper address,) and Nordic soft device (which is how Nordic implements their BLE stack.) The bossa bootloader that ships on the MM nRF52840 Processor, while perfectly capable for doing most things, just doesn’t right line up with how the nRF52840 CP port expects to boot. So there’s the matter of getting folx to flash with a SWD tool, which can be a lot.
I plan to take a look at getting some of the other MicroMods in CP as well, at least the SAMD51 and ESP32, since those cores are both already supported by the mainline. Shouldn’t be too terribly much to get those going I hope, ideally with out having to change their bootloaders.
I was also going to look at the RP2040 MicroMod, but they’re very much so out of stock, so I don’t have one.
One day, I imagine I’ll take a look at the Artemis MicroMod too, but that might be a bit more involved than adding board support for cores that are already in the CP mainline :]
Can you confirm that these PIDs for the RP2040 boards are correct?
SparkFun Thing Plus – RP2040 (SparkFun USB PID: 0x0025)
SparkFun MicroMod RP2040 Processor (SparkFun USB PID: 0x0024)
SparkFun Pro Micro – RP2040 (SparkFun USB PID: 0x0026)
I’ve created a PR to add MicroMod RP2040 support to CircuitPython, and need to make sure that’s the approved USB PID for the board. The other two boards have already been added to CircuitPython as of 6.2.0 with the PIDs listed above.
Looks like this is all set (tannewt confirmed that he’d requested the PIDS and got the ok). PR has been accepted and merged and should show up in a future release.