Puck Maxi firmware update issue: mcumgr timeouts and serial recovery

Hello,

I’m working on upgrading the firmware on several Puck Maxi devices. I successfully updated one pre‑release unit, but I’m having trouble with the others (both pre‑release and production units). When I power on the device and try to enter serial recovery mode, the process gets stuck and eventually times out:

mcumgr-client 0.0.4, Copyright © 2024 Vouch.io LLC

00:06:54 [INFO] send image list request

No text is displayed on the terminal for one pre‑release device. I’ve tried the steps on both Windows and Linux.

Any suggestions?

There is a 5‑second window after power‑on to activate the firmware flashing process. Please make sure you run the mcumgr commands within that window. See the documentation here for more details: Notion

Thanks for your reply. Yes, I followed the instructions. I enter the commands in step 6 within the first 5 seconds, and the board hangs and eventually times out. On the board I successfully updated, I stayed in serial recovery mode and uploaded the firmware as directed. With a pre‑release device, nothing appears on the serial terminal and I can’t see which firmware version is installed. I’ve tried the steps on both Windows and Linux.

It sounds like some of the internal modules may not be programmed. To check, remove the top casing to view the module and power on the board. A red LED should turn on for 5 seconds. If you don’t see the LED, the board may be unprogrammed and will need to be flashed using a debugging probe. We can share instructions or perform an RMA for you.

If the red LED does turn on, what kind of USB‑to‑serial converters are you using? Using a 5 V TTL could damage the pins; ensure you’re using 3.3 V.

I removed the casing on two units and the red LED turns on for both. When I run mcumgr-client -d /dev/ttyUSB0 list, the LED stays on but the command times out. Running mcumgr-client -d /dev/ttyUSB0 upload app_dfu.bin also times out. Sometimes I get errors like:

[ERROR] Error: read error, expected: 9, read: 111

The expected/read values vary. I’m using a 3.3 V USB‑TTL interface. With the first two devices, I tried about 20 times (powering off/on) and it eventually worked, but this is not efficient and hasn’t worked on the other devices. Any advice is appreciated.

I believe I’ve solved the issue. mcumgr and minicom do not work well together. If I exit the serial terminal, I’m able to successfully send commands through mcumgr to update the firmware.

2 Likes