Connect a board over USB

Connect over serial to read running firmware. On a supported Nucleo, ST-Link installs firmware through the same cable. USB DFU is also available.

Use a data cable

Many USB cables carry power and nothing else. A charge-only cable powers the board, lights its LED, and never appears in the port chooser. If the board is plainly on and the chooser is empty, change the cable first — it is the most common cause and the fastest to rule out.

Pick the board in the chooser

Pressing Connect board opens your browser's own port chooser. Pick the board, then press the chooser's Connect. Two presses, because the browser will not let a page open a port you did not choose.

Connecting may restart the board. On most development boards the USB control lines pulse the reset pin when a port is opened. Nothing is installed and nothing is erased by connecting.

The serial monitor, under the setup card

Read the board's serial output here. Setup pauses monitoring while it uses the USB port.

Nothing in the chooser

  • No driver for the board's USB bridge. Most boards talk to the computer through a separate chip: CP210x (Silicon Labs), CH340, CH341 or CH9102 (WCH). Without its driver the computer sees an unknown device instead of a port. Install the chip vendor's driver, replug the board, and try again.
  • Another program has the port. A serial monitor, an IDE, a previous browser tab or a flashing tool holds the port exclusively while it is open. Close it and try again.
  • The browser cannot reach serial ports at all. This needs desktop Chrome or Edge. Opera and Brave work too. Firefox and Safari have not shipped it, and no mobile browser has.

The board is there and says nothing

Setup asks the board what it is and waits about fifteen seconds. A board that has just been powered up can spend twelve of those joining Wi-Fi before it answers, so the wait is deliberate.

Silence is not proof the board is blank. It can mean firmware that does not answer the handshake, firmware that has crashed, or a board that is simply busy. When nothing answers, setup asks the chip itself what part it is and says only that.

ESP32: BOOT / RESET help

Try connecting normally first. Most ESP32 development boards enter the bootloader automatically.

For a classic ESP32 board with BOOT and EN or RESET buttons:

  1. Press and hold BOOT.
  2. While holding BOOT, press and release EN or RESET.
  3. Keep holding BOOT and click Connect board, Read chip again or Install again.
  4. Release BOOT when the chip is identified or installation progress begins.

After the operation finishes, release BOOT before pressing EN or RESET if the firmware has not restarted.

Boards with native USB may use a different sequence or USB connector. Follow your board’s bootloader instructions. If a new port appears, choose that port when reconnecting.

STM32

On NUCLEO-WBA65RI, connect a data cable to ST-Link USB (CN15). Choose STM32, Install firmware, then Connect ST-Link. Select a demo or your own application image and review the settings. Installation restarts the board automatically; you do not need to enter its bootloader.

After installation, connect the setup serial port on the same cable. The browser may ask for separate permission. ST-Link preserves the last flash page used for device settings; it does not change protection or boot options.

USB bootloader fallback

Open USB bootloader fallback under Install firmware. Choose the board model, then follow the board's bootloader instructions.

DFU installs the image. Sending setup afterwards requires a serial console provided by the running firmware.

NUCLEO-WBA65RI connections

CN15 carries power, SWD debugging and the ST-LINK serial console. CN9 connects to the chip's USB interface.

Both Warblet Nucleo demos accept CHIRP~ dfu on the ST-LINK console at 115200 baud, 8N1. The HTTP demo also enters DFU when B1 is held for three seconds.

For DFU on a blank board, this Nucleo has no BOOT button. Jumper BOOT0 (CN1 pin 9 or CN3 pin 7) to 3V3 (CN3 pin 16), then press reset. This route depends on the board’s boot settings. Board manual opens in a new tab

If neither way works, use STM32CubeProgrammer through ST-LINK. Record the option bytes before changing the boot selection.

Recovery for this demo's non-secure configuration. Check that TZEN (FLASH_OPTR bit 31) is 0 and BOOT_LOCK is 0 first, and that NSBOOTADD1 is still 0x17F200. A board that has been through an ST OEMiROT provisioning script may have neither, and these demos are plain non-secure images.

:: 1. record the current option bytes before touching anything
STM32_Programmer_CLI.exe -c port=SWD mode=UR -ob displ

:: 2. BOOT0 from the option bit, and that bit says "system memory"
STM32_Programmer_CLI.exe -c port=SWD mode=UR -ob nSWBOOT0=0 nBOOT0=0

:: 3. sanity: NSBOOTADD1 must still be 0x17F200  (0x17F200 << 7 = 0x0BF90000)
STM32_Programmer_CLI.exe -c port=SWD mode=UR -ob displ

:: 4. power-cycle -> the board boots the ROM every time.
:: 5. hand it back to the application when done:
STM32_Programmer_CLI.exe -c port=SWD mode=UR -ob nSWBOOT0=1 nBOOT0=1

After installation, remove the BOOT0 jumper and restore the recorded normal-boot settings. Reset the board to start the firmware. This page does not change option bytes.

Windows USB driver

ST-Link needs its debug interface available to the browser. Close CubeIDE or CubeProgrammer first; keep the serial drivers unchanged.

Browser DFU needs WinUSB for STM32 BOOTLOADER (0483:df11). If Windows has bound another driver, use Zadig to select that device and install WinUSB.

Leave the ST-LINK serial port's driver unchanged. Close STM32CubeProgrammer before retrying in the browser.

If the board answers but never sends anything afterwards, that is a different problem: see No data yet. To add USB setup to your firmware, read the USB setup protocol. Write firmware that supports USB setup covers installing a .bin of your own.