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.