Passer au contenu

Nous améliorons nos opérations pour mieux vous servir. Les commandes sont expédiées normalement depuis Laval, QC. Questions? Contactez-nous

Bitcoin accepté au paiement  |  Expédié depuis Laval, QC, Canada  |  Soutien expert depuis 2016

NERDQAXE_FLASH_COM Warning

NerdQAxe – Web Flasher COM Port Not Detected

NerdQAxe web flasher (esp-web-tools / esptool-js, hosted at shufps.github.io/qaxe or bitmaker-mining.github.io/NerdQAxePlus) cannot detect the COM/serial port of a NerdQAxe or NerdQAxe+ over USB. Chromium WebSerial returns an empty port picker or 'No compatible devices found'. Cause is at one of four layers: (1) charge-only USB cable lacking D+/D- data lines, (2) missing CH343 / CP2102 bridge driver on Windows/macOS (ESP32-S3 native USB-CDC works driverless on Win10 1909+, macOS 11+, Linux ≥ 5.7), (3) wrong browser - Firefox/Safari do not implement WebSerial; Brave/Arc/Opera disable it by default, (4) Linux user not in dialout/uucp group, ModemManager holding the port, or another process (Arduino IDE, screen, PuTTY) holding the serial node. Recovery: data cable + Chrome/Edge + driver + BOOT-hold mask-ROM + esptool.py CLI fallback. Hardware almost always healthy.

Warning — Should be addressed soon

Affected Models: NerdQAxe (4x BM1368, ESP32-S3 host) - NerdQAxe+ (4x BM1368, ESP32-S3 host) - both shufps/qaxe upstream and bitmaker-mining/NerdQAxePlus fork variants

Symptoms

  • Chrome or Edge opens the WebSerial port picker but the picker is empty - no entries at all
  • Picker shows entries (Bluetooth, motherboard debug serial) but no `USB JTAG/serial debug unit`, `USB Serial Device`, `wch.cn`, or `CP210x` entry that matches the NerdQAxe
  • Browser toast reads `No compatible devices found`, `Failed to open serial port`, or `NetworkError: Failed to execute 'requestPort' on 'Serial'`
  • Windows Device Manager shows yellow exclamation under Other devices labelled `USB JTAG/serial debug unit`, `USB Serial`, or `CH343` without a working driver
  • Linux `lsusb` lists `303a:1001` (ESP32-S3 native), `1a86:55d3` (CH343), or `10c4:ea60` (CP2102) but no `/dev/ttyACM*` or `/dev/ttyUSB*` node appears
  • macOS `ioreg -p IOUSB` lists the device but `ls /dev/cu.usbmodem* /dev/cu.SLAB*` returns nothing
  • NerdQAxe powers on (fan spins, status LED on, AxeOS banner on LCD if present) - so this is not a power problem
  • Same cable that ships with most phones - short, beige/white, marked `charge only` or unmarked
  • User is on Firefox, Safari, default-Brave, default-Opera, or Arc - none ship WebSerial enabled
  • On Linux, user account is not in the `dialout` (Debian/Ubuntu) or `uucp` (Arch/Fedora) group, so port exists but is not openable
  • Holding BOOT while plugging in does not change anything - device still does not enumerate
  • `chrome://device-log` shows no `USB device add` event when cable is plugged in

Step-by-Step Fix

1

Swap the USB cable for a known-good data cable. Test by transferring a file from a USB drive or phone with the same cable - if file copy works, the cable is fine. If it fails, the cable is charge-only and must be replaced with a USB-A-to-USB-C data cable from a name brand (Anker, Belkin). 90% of `COM port not detected` tickets stop here.

2

Switch to Chrome or Edge, current version. Type `chrome://version` in the address bar and confirm version 89 or higher. WebSerial is a Chromium-only API - Firefox, Safari, default Brave, default Opera, Arc, and Vivaldi will not work for the NerdQAxe web flasher.

3

Try a different USB port on the host machine. Avoid front-panel headers and passive USB hubs. Plug directly into a back-panel motherboard USB port. Avoid USB 3.x SuperSpeed-only ports - USB 2.0 is more reliable for low-speed CDC traffic.

4

Close every other process that might be holding the serial port - Arduino IDE Serial Monitor, PlatformIO, Tera Term, PuTTY, screen, minicom, any other Chrome tab from a previous flash attempt. Then unplug and replug the NerdQAxe cable to clear any stale handles before retrying.

5

Visit `chrome://device-log` (or `edge://device-log`) and unplug-replug the cable. If you see `USB device added` and `USB device removed` events with the right vendor/product ID, the OS sees the device and the issue is browser-side. If you see nothing at all, the OS does not see the device and the issue is cable, port, or driver.

6

Windows: open Device Manager (Win+X). Look under Other devices for a yellow `!` entry. Right-click - Properties - Details tab - Hardware Ids. If `USBVID_1A86&PID_55D3` install WCH CH343SER from wch-ic.com. If `USBVID_10C4&PID_EA60` install Silicon Labs CP210x VCP. If `USBVID_303A&PID_1001` or `PID_0002` Windows 10 1909+ has it built in - force a reinstall via Update driver. Reboot after install.

7

macOS: install the WCH CH343 macOS driver if needed. After install go to System Settings - Privacy and Security and approve the system extension, then reboot. This approval step is the single most common reason `I installed the driver but it does not work` complaints appear. ESP32-S3 native USB-CDC needs no driver on macOS 11 Big Sur+.

8

Linux: run `groups $USER`. If `dialout` (Debian/Ubuntu) or `uucp` (Arch/Fedora) is missing, run `sudo usermod -aG dialout $USER` (or `uucp`) and then log out and log back in. The group membership only takes effect on a new login session - `su - $USER` does not propagate to the browser. Confirm with `groups` after re-login.

9

Linux: stop ModemManager, which probes new serial devices for AT commands and can briefly hold or confuse `/dev/ttyACM0`. Run `sudo systemctl stop ModemManager`, or `sudo systemctl mask ModemManager` if you do not use a cellular modem. This is the #1 fix on stock Ubuntu, Pop!_OS, and Mint installs.

10

Verify the device shows up at the OS level. Windows: Device Manager - Ports (COM and LPT) should list a numbered COM port. macOS: `ls /dev/cu.usbmodem* /dev/cu.SLAB*` after plug. Linux: `ls /dev/ttyACM* /dev/ttyUSB*` after plug. If the OS lists the port but the browser cannot see it, move to Tier 3.

11

BOOT-hold mask-ROM recovery. Power off the NerdQAxe completely. Hold the BOOT button (silkscreen often labels it `IO0`). Plug USB in while holding BOOT. Release BOOT after 1 second. The chip is now in ESP32-S3 mask-ROM bootloader mode, which is hardwired and always available regardless of what firmware is in flash. Re-run the web flasher in this state - it will detect the chip and let you flash a recovery image.

12

Drop to esptool.py - the CLI fallback always works when the chip is reachable. `pip install esptool` (Python 3.8+). Confirm hardware: `esptool.py --chip esp32s3 --port <your-port> chip_id`. Expected output: chip type, MAC address, crystal frequency. If this works, hardware is fully alive. Flash directly: `esptool.py --chip esp32s3 --port <your-port> --baud 460800 write_flash 0x0 firmware.bin`. Pre-built artifacts on the project's GitHub releases page.

13

Try a different host machine - ideally a different OS. If the port shows up there but not on your primary machine, the issue is local: corrupted USB driver stack, USB controller fault, or aggressive endpoint security software. On Windows, `pnputil /enum-drivers | findstr usbser` lists installed serial drivers. A corrupted entry can be uninstalled and reinstalled.

14

Check for soft-bricked eFuses (rare). Run `espefuse.py --chip esp32s3 --port <your-port> summary`. Look at `USB_PHY_SEL`, `DIS_USB_JTAG`, `DIS_USB_SERIAL_JTAG`, `HARD_DIS_JTAG`, `SOFT_DIS_JTAG`. If any are set non-default, a previous bad firmware burned a USB-disabling eFuse. eFuses are one-way. Recovery requires UART pins on the board (TX/RX/EN/IO0 headers) wired to an external USB-to-UART adapter (CP2102, CH340, or FTDI).

15

Replace cable + port + hub stack as a unit. Try a different cable plus a different host port plus no hub at all. Front-panel USB headers on desktop motherboards are notoriously unreliable for serial work - back-panel ports wired directly to the chipset are more reliable. If this combination works, you have isolated which component was at fault.

16

Stop DIY when you have burned through Tiers 1-3, two different cables, two different host machines, and esptool.py cannot see the chip even with BOOT held during plug. Possibilities: dead USB controller in the ESP32-S3 module (rare ESD damage), damaged USB connector (mechanical), or bridge IC failure (CH343/CP2102 dead). Book a D-Central repair slot.

17

D-Central bench process: visual + microscope inspection of the USB connector and PCB traces, continuity check D+/D-/VBUS/GND from connector to ESP32-S3 GPIO19/GPIO20 (S3 native) or to bridge IC RXD/TXD pins. If the connector failed - reflow or replace the USB-C jack. If the bridge IC is dead - replace with salvaged or new-stock CH343/CP2102. If the ESP32-S3 USB controller itself is dead - module-level swap. Post-repair: 2-hour bench-flash burn-in via web flasher and esptool, both confirmed working.

18

Ship safely. Anti-static bag the NerdQAxe (a clean ziplock works if you have nothing better - far better than nothing). Pad with at least 5 cm of foam on every side, double-box. Include a note: which OS and browser you tried, what symptoms appeared (port not enumerating vs enumerating but invisible to browser), what cables and hosts you have already tested, and the firmware version installed before the problem began. This saves the bench 30 minutes of diagnostic time, which translates directly into faster turnaround for you.

When to Seek Professional Repair

If the steps above do not resolve the issue, or if you are not comfortable performing these repairs yourself, professional service is recommended. Attempting advanced repairs without proper equipment can cause further damage.

Related Error Codes

Still Having Issues?

Our team of Bitcoin Mining Hackers has been repairing ASIC miners since 2016. We have seen it all and fixed it all. Get a professional diagnosis.