NerdMiner – Pool Connection Retries Exhausted
Warning — Should be addressed soon
Symptoms
- On-device `Valid Shares` counter stalls or advances slower than the pool's count of submitted shares
- Pool worker dashboard shows long zero-share gaps that don't correlate with any on-device fault display
- Serial console at `115200` baud shows `mining.submit dropped: queue full`, `pool retry exhausted`, `share queue overflow`, or `stratum send failed (-1)` lines
- WiFi LED / icon stays "connected" but `RSSI` reads worse than `-72 dBm` when problems occur
- On-device `Hashrate` reading is stable and healthy (`~50-78 kH/s` for v2 reference) — chip is fine, only delivery is broken
- Stalls correlate with high household WiFi load (evening streaming, video calls, IoT firmware updates running in parallel)
- Stalls correlate with neighbour APs on the same 2.4 GHz channel (`inSSIDer` shows 5+ networks on the same channel)
- Router logs show repeated DHCP renewals or short DEAUTH/REASSOC cycles for the NerdMiner's MAC address
- Stalls disappear when the NerdMiner is moved within 2 metres of the AP, line-of-sight
- Stalls disappear when the same firmware is run on a wired-Ethernet ESP32 variant
- Wall power draw is steady `~5 W` throughout the stall — chip hashing, network stack is the bottleneck
- Restarting the device gives a temporary 5-30 minute window of accepted shares before symptoms return
Step-by-Step Fix
Hard power-cycle the NerdMiner. Pull power for 30 seconds, plug back in. Watch the first 5 minutes of `Valid Shares` on the display. If shares resume immediately and stay clean for an hour, the queue had wedged on a stale TCP socket and the reconnect cleared it. If shares stall again within the hour, you have a chronic problem — proceed to step 2.
Move the NerdMiner closer to the AP — within 2 metres, line-of-sight, no walls. ESP32 2.4 GHz radios are weak. The display can show `4 bars` while losing 30% of stratum packets. Co-locate for one hour; if shares stabilize, the cause is range/interference. If not, it's something deeper. This is the cheapest possible diagnostic.
Reboot the home router/AP for 60 seconds. APs accumulate state — broken DHCP leases, exhausted NAT tables, deauth storms — that the NerdMiner's small TCP/IP stack can't recover from gracefully. A weekly automatic AP reboot prevents most chronic stalls in residential setups; most prosumer routers (Asus, Ubiquiti, OPNsense, MikroTik) support scheduled reboots.
Switch to a less-congested 2.4 GHz channel. Log into the AP. Move WiFi to channel `1`, `6`, or `11` (the only non-overlapping 2.4 GHz channels in North America), specifically the one with the fewest neighbour APs. Use `inSSIDer` (free) or your phone's `WiFiAnalyzer` app to pick. This single change fixes the majority of suburban-residential NerdMiner stalls.
Switch the pool to lower-rate Solo CKPool. In NerdMinerAP captive portal (`http://192.168.4.1` after holding `BOOT` while powering up), set `Pool URL` to `solo.ckpool.org` and `Pool Port` to `3333`. Leave the `bc1q...` BTC address unchanged. Password remains `x`. CKPool's fixed share-difficulty cuts NerdMiner submission rate to one-per-10-30-minutes — fewer outbound requests, fewer chances to overflow during a WiFi blip.
Capture serial logs to confirm the failure mode. USB-to-serial cable. PuTTY / `screen /dev/ttyUSB0 115200` / `minicom` at `115200` baud (`921600` for older WROOM). Capture 30 minutes through a known stall. Search for `queue full`, `retry exhausted`, `send failed`, `WiFi disconnect`, `LwIP: ENOMEM`. Their presence proves store-and-forward overflow; their absence redirects you to a different fault class.
Update `NerdMiner_v2` firmware to the latest release. Browse `https://github.com/BitMaker-hub/NerdMiner_v2/releases`. Identify your exact board variant from the boot screen (`LILYGO T-DISPLAY-S3`, `LILYGO T-DONGLE-S3`, `ESP32-S3`, `ESP32-WROOM-32`, etc.). Flashing the wrong variant bricks the display. Use the official web flasher at `https://bitmaker-hub.github.io/NerdMiner_v2_WebFlasher/` in Chrome or Edge (WebSerial). Newer builds raise queue depth and improve reconnect logic.
Add a 2.4 GHz range extender or repeater near the NerdMiner. A `$30` extender placed midway between AP and NerdMiner gives the device a stronger near-AP. On mesh systems (Eero, Deco, Orbi) disable band-steering for the NerdMiner's MAC if your mesh supports per-device exemption — band-steering breaks IoT clients that have no 5 GHz radio.
Reserve a static DHCP lease for the NerdMiner. In the AP/router admin, find the NerdMiner's MAC address (visible on the boot screen or in the AP's connected-devices list), assign a static-lease IP. Eliminates DHCP-renewal stalls — a renewal that races a `mining.submit` over a flaky link is one of the canonical queue-overflow triggers.
Run `ping <pool-host>` from a laptop on the same SSID. Sustained `>2%` packet loss = the network path is bad and any miner there will struggle. Sustained `<0.5%` = path is fine, problem is firmware/queue/pool side. This 60-second test isolates whether you're chasing a network problem or a firmware problem before committing to expensive fixes.
Migrate to a wired-Ethernet ESP32 board variant. LilyGO `T-ETH-Lite-S3` and W5500-piggyback ESP32 reference designs run the same `NerdMiner_v2` firmware over Ethernet instead of WiFi. ~`$25-40 CAD` for the bare board, plus a USB-C / barrel-jack PSU. Wired Ethernet eliminates 2.4 GHz packet loss as a failure mode entirely. For any NerdMiner you actually care about, this is the structural fix.
Run MoCA / Ethernet-over-coax to the NerdMiner location if WiFi range is the root cause and you can't reposition the AP. MoCA adapters use existing TV-coax wiring at gigabit speeds — `$80-150 CAD` for a pair. Plug NerdMiner-with-Ethernet at the far end. Combine with step 11. Canadian-basement-shop classic: MoCA from upstairs router to basement coax outlet, NerdMiner sits on rock-solid wired LAN.
Build `NerdMiner_v2` firmware from source with raised queue depth. Clone `BitMaker-hub/NerdMiner_v2`, open `src/stratum.cpp` and `src/mining.cpp` in PlatformIO, find the share-queue allocation (typically `xQueueCreate(SHARE_QUEUE_LEN, sizeof(share_t))`). Raise `SHARE_QUEUE_LEN` from `16` to `64` if you have RAM headroom — typical ESP32-S3 builds can absorb the extra ~12 kB. Test the build under simulated WiFi loss before deploying.
Self-host `benjamin-wilson/public-pool` on the LAN. Raspberry Pi 4 or small VPS, docker-compose deployment, expose `:3333` on the LAN. Point NerdMiners at `<your-host>:3333`. LAN-local stratum hops complete in `<5 ms` with effectively zero packet loss; queue-overflow becomes structurally impossible because every retry succeeds inside the firmware's TCP send timeout. The cleanest long-term answer for any fleet of NerdMiners on residential WiFi.
File or contribute upstream. If you find concrete misbehaviour — a non-recoverable LwIP error, a queue accounting bug, a missing exponential-backoff reconnect — submit a PR to `BitMaker-hub/NerdMiner_v2/pulls` with a serial log capture and a minimal patch. NerdMiner is open-source hardware and open-source firmware. The upstream maintainers welcome well-bounded fixes — exactly the pleb contribution the open-source mining ecosystem runs on.
Open a D-Central support ticket. You've moved the device next to the AP, captured serial logs showing `queue full` lines, switched to two different pools, updated to the latest firmware, run on a phone hotspot for an hour, and the symptom persists. Open a ticket at `https://d-central.tech/contact/` including: serial log capture (5+ minutes), board-variant exact name from the boot screen, firmware version, list of pools and networks tested, photo of NerdMinerAP config screen. Free with any Nerd-family device purchased from D-Central.
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.
