I tried to follow the u-blox guide on YouTube to update firmware. The guide was created for the u-blox EVK-X20P evaluation kit, so I tried to follow it the best I could. I can’t get it to work.
I connected the USB-C port on the pHat to a USB-A port on my laptop running Windows 11. I can receive satellites. When I try to update firmware, I get a warning after a few seconds that COM5 is disconnected. I see more error messages, and then an traceback for an uncaught JavaScript exception. The only way I can reconnect is to power down the Pi completely and restart.
The ZED-X20P can only be updated via UART1. Sadly, it is not possible to update via its built-in USB port. This is a quirk of the X20P, other u-blox modules can be updated via USB.
The easiest solution is to buy the new Flex Breakout - at the link below - transfer your ZED-X20P Flex module to that and update using the “UART” USB connection. Channel A of the CH342 provides direct access to the ZED UART1.
It is possible to update the X20P while it is mounted on the pHAT, but it is much more involved:
Remove the pHAT from the Raspberry Pi
Connect pHAT USB-C to a power source (computer port, wall wart or battery pack)
Use a male-male jumper wire to link the 2x20-way GPIO header Pin 2 (5V) to Pin 1 (normally 3.3V)
This enables the main 3.3V regulator on the pHAT, providing 3.3V power to the ZED
Don’t connect anything to Pin 17 (normally 3.3V) as this will now be 5V
Use a 3.3V FTDI USB-UART cable or breakout and jumper wires to interface to:
GPIO Pin 8 (normally GPIO14/TXD) : this is connected to ZED RXD1
GPIO Pin 10 (normally GPIO15/RXD) : this is connected to ZED TXD1
GPIO Pin 6 : GND
Sorry for the inconvenience. Let me know if you need more help - or diagrams.