Got new Argon One V3 - do I have to update firmware?

Greetings, I just got my new Argon One V3 NVMe case. I know that I can update the internal firmware of the case by using a USB adapter. But do I have to? Is there a list of revisions / release dates, maybe my case already up to date?

I´m asking because I have just set up everything and now I would have to disassemble everything to gain access to the USB port :grinning: Also, in the future it would be nice to know if there is a new firmware update you should use, or if I can just leave everything running as is.

Personally, I’d love to update my firmware, but some monster decided that the port on the board should be a male usb-c. MALE. So I would need to source a usb-c extension cable just to hook it up? That’s some next-level trolling, there. I’m pretty techy, but that is simply not a cable I have in my arsenal. I’d buy one, but I can pretty much guarantee it would only ever be used once.

Are you sure your V3 case has a USB-C male connector? I have three V3 cases and they are all female.

I do wish Argon40 identified version numbers and provided release notes/version history. Having a link to a single, statically named, firmware file provides no help in trying to determine if one needs to disassemble their case to perform a firmware update.

If you go to the effort of opening up your case and program the single available firmware file, you still don’t know if you’ve upgraded, downgraded or ended up with the same firmware installed.

The mass storage device mode exposes two files: INDEX.HTM, which includes a link to Raspberry Pi’s Microcontroller documentation and INFO_UF2.TXT, which contains the following.

UF2 Bootloader v3.0
Model: Raspberry Pi RP2
Board-ID: RPI-RP2

This appears to be bootloader and hardware information. Nothing about what version of application firmware is loaded.

1 Like

Actually, I thought the same: it appeared as if there was a male USB-C connector on the board for firmware updates. I actually went and sourced a cable so that I could plug it in, but it wouldn’t fit! Turns out it IS a female socket, so any regular male to male USB-C data cable will work.

Followed the instructions, got it into mass storage mode, accessed the two text files there.

regarding firmware releases/versions: until the Argon40 folks are more forthcoming with this information, I made due with the following (verifying I have the latest firmware).

First, I downloaded the ArgonOne.uf2 file as indicated in the manual. MD5 sum as of 20240614 is 928a7cc22eba8f07500f02f269e5fac3.

Poking around with xxd and then just strings, I found a singular date in plain text:

strings ArgonOne.uf2 | grep 2024
Jan 26 2024

Going by this, the latest firmware is Jan 26 2024.

I bought my ArgonOne V3 case end of May/start of June, so then the question is: does it have this latest firmware?

For this next trick, I needed something called picotool, which let me dump the image off the pico back onto my computer.

While there are some efforts out there to extract individual sections of data, I just ran strings again:

sudo picotool save -p installed_firmware.bin
strings ./installed_firmware.bin | grep 2024
Jan 26 2024

NOTE: the -p option (also the default) to picotool produces a 26K file. The ArgonOne.uf2 file is 53K. A rough xxd comparison shows the program code missing some initial header data, and whatever the other ~26K is (supporting library object code?). If you desire the ENTIRE 2MB storage, replace -p with -a.

Assuming this isn’t some general pico related date (the pico SDK 1.5.1 appears to have been used, and they seem to have started with a demo/example), and without further extracting individual elements of the firmware, perhaps a way of roughly getting the firmware versions (both what is available as latest, and what is currently installed).

FOLLOW UP: Just to double check that I’m on the right track, I applied the latest firmware, as downloaded from the ArgonOne site, then re-extracted the firmware and did some comparisons:

md5 *.bin
MD5 (everything.bin) = f5ec9806829be243c20c2b4a8b85fc07
MD5 (everything2.bin) = f5ec9806829be243c20c2b4a8b85fc07
MD5 (firmware.bin) = 93d7168ecfe932a06c6e75bb80ecf203
MD5 (firmware2.bin) = 93d7168ecfe932a06c6e75bb80ecf203

“everything.bin” is the entire 2MB data off the pico
“firmware.bin” is JUST the program section off the pico

The #2 variants are the same extractions, but after I applied the ArgonOne.uf2 file.

So, it appears I am definitely running the latest firmware.

What I can do for the future, now that I have that date, is occasionally check their available image and see if the date has changed.