Xenon CircuitPython second life

I found the tutorial on how to convert the Xenon since its EOL to a useful device again:
However, having issues compiling.
Why isn’t a HEX file available for download?


found a pre-compiled hex file, got it to flash via particle debug; uploading the uf2 file, i get a blue flashing led and a sold red.


Would have thought Particle would support this processes better :frowning:

@marcusone, were you able to flash the bootloader to the Xenon? I compiled and flashed the version I am using and it works. However, flashing it was tricky. In Windows 10, I used the Particle Gen3 debug board and had to specify the paths to all the files in the openocd command using the openocd files in the toolchain directory created by Workbench.

Thanks @peekay123 for checking in… after an hour or so I finally figured it out.

A couple issues for those that are having them:

  1. Compile your own… very hard, and i’ve been compiling code since using floppy disks to compile your own slackware on a i86 :smiley: (i don’t use the tools required to compile the hex and trying to install, etc just wasn’t working for me on windows or linux).

S1: Download the Hex file from Adafruits github https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases

  1. Seeing as I have Workbench, windows location is similar so c:\users\username.particle\toolchains\openocd blah blah.

S2: I downloaded the particle_xenon_bootloader-0.3.0_s140_6.1.1.hex, and placed directly in the bin folder and named it simply particle_xenon_bootloader.hex

Then did: openocd -f interface/cmsis-dap.cfg -f target/nrf52-particle.cfg -c "adapter_khz 1000" -c "init" -c "program particle_xenon_bootloader.hex 0x000000 verify reset" -c "exit"

which worked; with some errors as the guide warned about, but appears to have worked.

then download the uf2 file and copy onto the drive that shows up as per instructions.

  1. Blue and Red light, blue flashing…

S3: I just left it for like 10min and it appeared to finally work. had to copy the file a couple of times.

  1. CIRCUITPY drive not showing up.

S4: Windows to the “rescue”… for some reason windows wasn’t assigning a drive letter to the “new” drive. So watch for that, or insert into another system or linux system and it should work.

Particle Team: please update/work on a guild that does this much easier, or perhaps release a program that can do it. or provide a full refund to those getting really mad they have a worthless device now (if they can’t figure out as I have how to get it to work).


@marcusone Thanks, this helped, some. I was having a hard time getting the boot loader to compile. Why didn’t Particle just supply it, I know better to as why but I still do lol

So I have been able to get the bootloader flashed but when I copy the uf2 file it looks to work but the CIRCUITY drive doesn’t show up on either of my Windows 10 systems. Works just fine on my RasberryPi but that’s not where I work. I’ve looked at the disk manager and the drive isn’t showing up.


@xcode yes, i’m still having issues on the windows PC that i did the update on (which has lots of drive letters already assigned :slight_smile: )
On my HTPC with windows 10, i plugged it in and it works fine… so not sure how to fix on my main dev pc :frowning:

There is a precompiled HEX file available already :wink:
See here

And this is the link to it

Thanks for updating it, or whoever did. as those links and details were not there when I was doing it!

Is this updated to fix the issue we are seeing?

I think this was added 10 days ago by @bsatrom - no idea whether any bugfixes found there way into that tho’

well, so far that has made it worse updating to latest firmware :frowning: now I can’t see circuitpy drive on any computer :frowning:

trying to go back to previous firmware to see if that helps. I’ve tried CircuitPython 5 and 4; so don’t think its that.

More Updates:
Appears to be an issue with only my Windows Machine that has Particle software installed (VSCode, workstation, etc). That appears to be the only difference. Or perhaps its something else @xcode and i are running :frowning:

[edit] and only happens to the Xenon. Feathers, etc that I have with CircuitPython work just fine.

Hey @marcusone what’s the current issue you’re having?

On my main computer where I do most of my work, and flashed the Xenon device; it won’t show the CIRCITPY drive.

After flashing, if I move to a Linux machine, and install the U2F circuit python install file to the XENON boot drive, it reboots and presents the CIRCITPY drive fine.

I suspect I’m experiencing the same behavior:
Following the Particle tutorial gets me to the XENONBOOT drive event, but placing the .uf2 file on the xenonboot drive does not result in a mount named CIRCUITPY but rather results in my Windows 10 machine no longer recognizing the xenon. However, when I plug it into an old Mac or a raspi, the CIRCUITPY mount is recognized and I can successful run a circuitpython program.
Used Windows 10, the Particle debugger, and openocd (from Particle Workbench directory) for the process. Tried both CircuitPython 5.0.0 and 4.1.0 and the precompiled hex files particle_xenon_bootloader-0.3.1_s140_6.1.1.hex and 0.3.2 versions, all with same result.

1 Like

interesting. I’ll try to reproduce this on my spare Windows 10 machine and will see what I get.

Just an update here. I was able to successfully complete the tutorial steps on a Windows 10 machine with Workbench installed. I used the latest hex from Adafruit and the Particle Debugger.

1 Like

I’ve been using the Nordic nRF52 SDK to re-program the Xenon from scratch. This seems to be working at the moment. This removes any connection with Particle, and seems to give these boards a second life. My next tests will be try out the GPIO pins as well as try AWS FreeRTOS.


Having same issue as Marcusone and bpr
Use particle debugger and openocd. Able to burn the bootloader and get a restart.
Dropping latest uf2 file on it. Using Windows 10 the circuitpy drive never shows on my Win10 machine - but shows on a Linuxmint 18.3 machine. Thoughts?

Hey bsatrom,
When you look at the flashed and upgraded :wink: xenon on Windows 10 in device manager what do you see?
Can you share driver info and settings?


Hello Community,

i flashed die precompiled .hex with the particle debugger and after that, I copied the adafruit .U2F to the XENONBOOT drive.

Then, the CIRCUITPY drive appears.

Now the question: On the drive are only 1,2M of free space and 2,9M used. 1,2M is not enough to copy the full library bundle on it.

Did I make a mistake or is the free size correct?

Thanks a lot!