NerdMiner – Block Height and BTC Price Not Updating
Informational — Monitor and address as needed
Symptoms
- OLED / TFT block-height widget shows a number hours or days behind live tip on `mempool.space`
- BTC price on screen frozen at a value visibly behind current spot price
- Time / clock on screen still updates normally — only block height + price are frozen
- Hashes/sec counter is climbing normally (`~55-70 kH/s` per ESP32 board, varies by variant)
- Web UI at `http://nerdminer.local/` or AP IP `192.168.4.1` reachable, shows healthy hashes
- Pool worker on `public-pool.io` or `solo.ckpool.org` is online and submitting accepted shares
- Serial console at `115200 baud` shows `getaddrinfo failed` / `connection refused` / `timeout`
- Serial console shows `SSL handshake failed` or TLS-related warnings
- Serial console shows `HTTP code: 429` (rate-limited) or `HTTP code: -1` (generic HTTPClient fail)
- Symptom started after router firmware update, ISP change, or new Wi-Fi network setup
- Multiple NerdMiners on the same network all show stale data simultaneously (network-side issue)
- Symptom started after flashing a non-stock firmware fork or enabling a feature toggle
Step-by-Step Fix
Hard power-cycle the NerdMiner. Unplug USB or barrel jack, wait 10 seconds, plug back in. This clears ESP32 heap fragmentation, forces a fresh DNS lookup, and triggers an immediate API fetch on the next poll cycle (typically within `30-90 s` after reconnect). Watch the OLED — block height and BTC price should refresh on the next poll tick. Most stale-OLED cases on a healthy network resolve at this single step.
Browse `https://mempool.space/` from your phone or laptop on the same Wi-Fi as the NerdMiner. If the page loads with current block height visible, your network reaches mempool.space and the issue is device-side — skip to Tier 2. If the page times out or fails, your network is the problem — go to Step 3 (DNS) or Step 4 (router reboot). This single test bisects device-side from network-side problems instantly.
Switch your phone to mobile data and retry `https://mempool.space/`. If it loads on mobile data but failed on Wi-Fi, your home network has a routing or DNS problem (not a global outage). Reboot the router, then retest. If still broken, change DNS to `1.1.1.1` (Cloudflare) at the router level and reboot both router and NerdMiner. ISP-default DNS is the single most common silent failure for NerdMiner API fetches.
Reboot your router. Many ISP-provided routers accumulate DNS cache poisoning, dead TCP connections, or ARP table issues over weeks of uptime. A 30-second power-cycle clears all of it. Wait `2-3 minutes` for full reconnect, then hard-reboot the NerdMiner so it pulls fresh DHCP + DNS. This pair-reboot fixes a meaningful percentage of stale-OLED cases that look device-side but are actually router-side.
Verify NerdMiner Wi-Fi signal is healthy. On the OLED, the Wi-Fi icon should be solid, not flickering. In the web UI at `http://nerdminer.local/` you should see RSSI; healthy is `> -70 dBm`. If RSSI is `-80 dBm` or worse, intermittent drops cause every other API fetch to fail silently. Move the NerdMiner closer to the router or add a Wi-Fi extender — marginal Wi-Fi looks like working Wi-Fi but kills HTTPS handshakes specifically because they need multiple round-trips.
Flash latest stable `BitMaker-hub/NerdMiner_v2` firmware via the official web installer at `https://bitmaker-hub.github.io/NerdMiner_v2/`. Open in Chrome / Edge / Brave (WebSerial doesn't work in Firefox or Safari). Connect USB. Click Install, pick your exact board from the dropdown matching your PCB silkscreen. Note pool URL, worker name, and Bitcoin payout address before flashing — NVS may wipe. Latest builds ship with current ESP-IDF root-CA bundle and any heap-leak / API-endpoint fixes that have shipped upstream.
Change router DNS to Cloudflare `1.1.1.1` (primary) and Quad9 `9.9.9.9` (secondary). Log into router admin (typically `192.168.0.1` or `192.168.1.1`). DNS settings live under WAN, DHCP Server, or Internet Setup. Save and reboot router. Hard-reboot NerdMiner so it pulls fresh DHCP. ISP DNS is a frequent silent failure point — this single change fixes a meaningful slice of `getaddrinfo failed` errors network-wide, not just NerdMiner.
Connect a USB-serial terminal at `115200 baud` to capture the actual error string. Use PuTTY (Windows), `screen /dev/ttyUSB0 115200` (Linux), or Arduino IDE Serial Monitor. Reset the NerdMiner and capture at least the first `2 minutes` of output to catch the first API poll cycle. The exact error (`getaddrinfo failed`, `SSL handshake`, `HTTP code: 429`, `HTTP code: -1`) tells you which sub-failure you're hitting and which Tier 3 fix applies. Without serial capture, you're guessing.
Test API endpoints directly from a laptop on the same Wi-Fi. Run `curl https://mempool.space/api/blocks/tip/height` and `curl https://api.coinbase.com/v2/prices/BTC-USD/spot`. Both should return data. If either fails on the laptop, fix the network first — the NerdMiner has no chance. If both succeed on the laptop, the NerdMiner has a device-side problem (firmware, RAM, TLS) — proceed to Tier 3.
Stagger NerdMiner reboots if you run multiple devices. After a power outage, simultaneous reboots have all devices hit the API at the same instant and risk tripping rate-limits. Power them on one at a time, `30 s` apart. This applies to anyone running 3+ NerdMiners on a single residential connection. Eliminates `HTTP 429` cluster events.
Rebuild `BitMaker-hub/NerdMiner_v2` from source with adjusted poll intervals. `git clone https://github.com/BitMaker-hub/NerdMiner_v2`, install PlatformIO. Search source for `BLOCK_POLL_INTERVAL` / `PRICE_POLL_INTERVAL` / `mempool.space` / `coinbase.com`. Set polling to `60000` ms minimum, ideally `120000` ms. Reduces rate-limit pressure for fleet deployments and gives heap more time to recover between requests. Build and flash via PlatformIO. Verify in serial logs that the new interval is in effect.
Switch from `api.coinbase.com` to mempool.space's own price feed. Newer NerdMiner builds use `https://mempool.space/api/v1/prices` to consolidate to a single host (one DNS lookup, one TLS handshake, less heap pressure). If your fork still hits Coinbase directly, edit source to point at the mempool.space price endpoint. JSON shape differs — reference upstream `BitMaker-hub/NerdMiner_v2` for parse code. This is a meaningful reliability upgrade because it removes one whole HTTPS dependency.
Self-host `mempool.space` on Umbrel / Start9 / Citadel. Install the mempool.space app on your home node — it serves the full mempool.space API on your LAN. Edit NerdMiner firmware source to point at `http://your-node.local:3006/api/blocks/tip/height` instead of `https://mempool.space/...`. No more third-party DNS dependency, no TLS overhead, no rate-limits. The Mining-Hacker / cypherpunk move — your miner gets blockchain truth from your node, not from a SaaS.
Add static DNS entries on your router for `mempool.space` and `api.coinbase.com` if your ISP DNS is unreliable but you don't want to change router-wide DNS. Most home routers support local DNS overrides. Resolve the API hosts on a working DNS once (`nslookup mempool.space 1.1.1.1`), add static entries with those IPs. Caveat: cloud-hosted services rotate IPs, so this can break later — re-check every `90 days`. Better long-term solution is changing DNS provider entirely.
Disable strict TLS validation as a diagnostic-only confirmation of stale-CA issues. Modify firmware source to use `WiFiClientSecure::setInsecure()`, rebuild, flash, observe. If the OLED comes back to life, your firmware's CA bundle is stale relative to current API certs. The right fix is to update to a fresh `BitMaker-hub/NerdMiner_v2` build with current ESP-IDF root CAs — do NOT leave `setInsecure()` enabled long-term, it disables HTTPS certificate validation.
Stop DIY when: confirmed-correct firmware + healthy network + working DNS still leaves the OLED stale across multiple reboots; OR serial shows `Guru Meditation` / repeated `abort()` / reboot loops; OR ESP32 doesn't enumerate over USB even with forced-bootloader sequence; OR there is visible physical damage. At that point you are past firmware/network diagnostics and into hardware territory. D-Central's open-source bench handles ESP32 reflow, USB UART rework, OLED panel replacement, and ESP-IDF build forensics on hand-wired custom NerdMiner builds — same silicon family as Bitaxe / NerdAxe / NerdQAxe.
D-Central bench process: silkscreen ID, firmware audit, serial-console capture, heap analysis, USB enumeration check, flash forensics. If failure is firmware-only, recovery is a clean reflash with a vetted `.bin`. If failure is hardware (panel ribbon, ESP32 die failure, LDO on the `3.3V` rail), the bench has the rework tools — same tooling we use on the Bitaxe / NerdAxe / NerdQAxe service queue. We pioneered the Bitaxe Mesh Stand and the first heatsinks for Bitaxe and Bitaxe Hex, and we've been in the Bitaxe ecosystem since the very beginning.
Ship to D-Central in anti-static bag, double-boxed with at least 5 cm of foam on every side. Include a note with: silkscreen part number, firmware version, exact symptoms (e.g. OLED says block height `XXXXXX` from approximate time `YYYY-MM-DD`, current real height is `ZZZZZZ`), serial-console capture if available, what diagnostic steps you've already tried. This skips bench-side diagnostic time and saves you money. Canada-wide shipping; US / international welcomed. Turnaround `5-10` business days.
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.
