Why Won't My Board Show Up in COM Ports?

If your Arduino or ESP32 isn't showing up in the port list, here's the simple way to fix it:

  • Try a different USB cable first. Most problems are just a bad or power-only cable.
  • Install drivers if you're using a compatible board (CH340/CP2102).
  • Check Device Manager (Windows) or System Information (Mac) to see if the board appears at all.
  • If it still doesn't show up, try another computer or check for hardware issues.

1. Check the USB cable (the #1 culprit)

Most "board not showing up" problems are the cable.

Many USB cables are charge-only with no data lines. They'll power the board (LED lights up) but your computer won't see it.

How to test

  • Try a different USB cable - preferably one you know works for data
  • Try the cable with another device (phone, external drive) - does your computer see it?
  • Look for "USB 2.0" or "Data" markings on the cable packaging

If a different cable works, problem solved. If not, keep reading.

2. Driver issues

Compatible boards often use CH340 or CP2102 USB chips that need drivers. Official Arduino boards vs compatible boards have different USB chips - official boards usually work instantly, compatible boards may need these drivers. (See the complete installation guide: how do i install Arduino IDE and drivers.)

Windows

  1. Open Device Manager (Win + X → Device Manager)
  2. Look under "Ports (COM & LPT)" - do you see your board?
  3. Yellow triangle or "Unknown Device"? Driver problem
  4. Download CH340 drivers from WCH Official
  5. Install and restart

Mac

  1. Open Terminal and type: ls /dev/cu.*
  2. Plug in board and run command again
  3. New entry like /dev/cu.usbserial or /dev/cu.wchusbserial? Driver works
  4. Nothing new? Install CH340 driver from WCH Official
  5. System Preferences → Security & Privacy → allow the driver
  6. Restart your Mac

Linux

  1. Check if you're in the dialout group: groups
  2. If "dialout" isn't listed: sudo usermod -a -G dialout $USER
  3. Log out and back in (important!)
  4. Check for device: ls /dev/ttyUSB* or ls /dev/ttyACM*
  5. Still nothing? Try dmesg | tail after plugging in - shows USB errors

3. Try different USB ports

  • USB 3.0 (blue) ports sometimes have issues - try USB 2.0 (black)
  • USB hubs can cause problems - plug directly into computer
  • Front panel USB ports on desktops are often poorly wired - try rear ports
  • On Mac, some USB-C adapters are flaky - try a different one

4. Board might be dead

Less common, but possible:

Signs of hardware failure

  • No lights at all when plugged in (power LED should light up)
  • Burning smell or visible damage to components
  • Very hot to touch immediately after plugging in
  • USB chip hot (the big square chip near USB port)
  • Shorted pins - accidentally connected 5V to GND

If you fried the board, it happens. That's why cheap compatible boards exist - so you can learn without crying over a $25 mistake.

5. Bootloader might be corrupted

If the board shows up but won't accept uploads, the bootloader might be toast. You'll need:

  • Another Arduino to act as ISP programmer
  • 6 jumper wires
  • The "Arduino as ISP" sketch

This is advanced, but Arduino's official guide walks through it.

Quick diagnostic checklist

  1. ✓ Power LED lights up when plugged in?
  2. ✓ Tried a different (known good data) USB cable?
  3. ✓ Tried different USB ports directly on computer?
  4. ✓ Drivers installed for CH340/CP2102 chips?
  5. ✓ Device shows up in Device Manager/System Info?
  6. ✓ Selected correct board type in Arduino IDE?
  7. ✓ No visible damage or burning smell?
Bottom line

Most issues start with a bad USB cable, then missing drivers. Try a known good data cable and install CH340/CP2102 drivers before assuming hardware failure.

Related: Why can't I upload code? · Official Arduino vs compatible boards · How do I install Arduino IDE and drivers?