Skip to main content

Troubleshooting

Start with the symptom you can observe. Apply one change at a time, then retry the smallest Quick Start example.

Connection and upload​

The board does not show up as a port

Some USB cables only carry power. Try a cable you know transfers data, and plug it straight into the computer rather than through a hub. The board's USB-C connector goes through a CH340K USB-to-serial chip, and some computers need a CH340 driver before the port appears. If yours shows no port, install the CH340 driver for your operating system, then plug the board in again.

The upload fails or cannot connect

Check that Tools > Board is set to Soldered NULA Dual ESP32C5 and that the board's port is selected. Close anything else that has the port open (Serial Monitor, a MicroPython terminal or idf.py monitor), because only one program can use it at a time.

Uploads normally need no buttons, because the automatic reset circuit puts the board into download mode by itself. If the upload still fails, put the board into download mode by hand and upload again: hold the user button (the one on IO28), press and release the reset button, then release the user button.

Serial output​

Serial Monitor shows random characters

The baud rate in Serial Monitor does not match the one in the sketch. Set the dropdown in the corner of Serial Monitor to the value in Serial.begin().

Serial Monitor stays empty

Press the board's reset button with Serial Monitor open: the sketch may have printed before the monitor connected. Serial on this board goes through the CH340K to the RX and TX pins, so it works with USB CDC On Boot left at its default, Disabled.

The MicroPython REPL does not respond

Press Ctrl-C to stop a running program, then Ctrl-D for a soft reset. If there is still no >>> prompt, check that the terminal is set to 115200 baud, close other programs using the port, and check that you flashed the ESP32_GENERIC_C5 firmware, the one for this board's chip.

Power and voltage​

The board resets on its own, often when Wi-Fi starts

The supply cannot keep up with the current peaks, and the chip restarts when the voltage dips (on an ESP32 the log says the brownout detector was triggered). Use a USB port on the computer itself or a powered hub, a shorter cable, or a charged battery.

A connected sensor or module does not work

The GPIO (general-purpose input/output) pins use 3.3 V logic. A 5 V signal on a GPIO pin can damage the board, so connect 5 V parts through a level shifter, and power each part from the voltage its own documentation asks for.

Nothing lights up, or the board gets warm

Unplug it straight away and disconnect everything wired to it. Look for a short between power and ground, then reconnect one part at a time. If a battery is connected, check that its plug is wired the way the board's battery connector expects before you plug it in again: battery plugs from different makers are not all wired the same way.

First program​

The upload worked but the LED does not blink

The RGB LED (one LED with red, green and blue channels) is an addressable WS2812B on IO8, not a plain LED, so it needs data rather than a steady level. In the Arduino IDE, check that the board is set to Soldered NULA Dual ESP32C5: its board definition is what makes LED_BUILTIN drive the RGB LED. In MicroPython, use the neopixel module on pin 8 as in the Quick Start. In ESP-IDF, check the GPIO number and the LED type in the Example Configuration menu: the blink example needs LED strip and GPIO 8 on this board.

Board-specific issues​

The board does not run your program after a reset

IO28 is one of the chip's boot pins. If it is low when the board comes out of reset, while GPIO27 (another boot pin, held high by a pull-up on the board) is high, the chip starts in download mode and waits for an upload instead of running your program. Release the user button before you press reset, and check that nothing wired to IO28 on the header pulls it low at startup.

Still blocked?​