I’ve been developing on the adafruit feather nrf52840 express for several months now. I have 3 different boards. One of them suddenly stopped showing up as a serial port after I finished uploading my code. That board had been working perfectly fine all day long (tests, firmware upload, etc…)
The code built and uploaded fine (via USB as I had been doing several dozen times), after which I did a
pio device monitor, which showed me:
$ pio device monitor Error: Traceback (most recent call last): File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/platformio/__main__.py", line 102, in main cli() # pylint: disable=no-value-for-parameter File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/platformio/cli.py", line 71, in invoke return super().invoke(ctx) File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/platformio/device/monitor/command.py", line 127, in device_monitor_cmd options["port"] = SerialPortFinder( File "/home/ludozb/.platformio/penv/lib/python3.10/site-packages/platformio/device/finder.py", line 156, in find return best_port or port UnboundLocalError: local variable 'port' referenced before assignment ============================================================ An unexpected error occurred. Further steps: * Verify that you have the latest version of PlatformIO using `pip install -U platformio` command * Try to find answer in FAQ Troubleshooting section https://docs.platformio.org/page/faq/index.html * Report this problem to the developers https://github.com/platformio/platformio-core/issues ============================================================
Does platformIO always throw this message when it can’t find a serial port?
From then on, the board will only appear as a serial port if I double press the reset button to enter into bootloader. In bootloader I can program the board (upload some firmware), but after power cycle the board, it will not appear anymore on my computer’s serial port.
I have tried:
- to burn the latest bootloader using a blackmagic probe: bootloader does get burnt fine, but board remains in the same state of not showing its serial port unless in bootloader mode
- to use the ARduino IDE: same phenomena: no serial port appears, but if I am in the bootloader I can upload any sketch (blink, …).
- to upload a slightly modified blink (including some serial data to show on/off at the same pace as the blinking LED) using the blackmagic probe, no change: the code uploads, the LED blinks but then no serial port after power cycle.
- to use a different usb cable (I knew the one I was using was fine since I had uploaded code successfully few minutes before the board stops showing as serial port)
- install CircuitPython on my board (reference), test the IMU connected to my board with some sample code, see it serial works: it does. Then uninstall CircuitPython to revert to uploading with ARduino or PlatformIO: back to the same, no more serial port
pio --version: PlatformIO Core, version 6.1.4
I have read this related information: Add notes for USB Serial · Issue #119 · platformio/platform-nordicnrf52 · GitHub (I’m the one to have made the comment that there’s no need for
lib_archive = no in that issue), but have had no issue whatsoever since the time of my comment.
It is the second time I have this issue (same board reference feather nrf52840, different board), reported here on adafruit forum (solution proposed tried, didn’t work).
Why would the board behave this way? It may not be a platformIO related issue after all, but the long error message above looked a bit suspicious.