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

NERDMINER_DST Info

NerdMiner – NTP Time Wrong / Daylight Saving

NerdMiner v2 OLED / TFT clock reads exactly one hour off local wall-clock time after a Daylight Saving Time changeover (second Sunday of March / first Sunday of November in US/CA; last Sunday of March / last Sunday of October in EU/UK; equivalent dates in Australia, NZ, Chile). NTP itself is working correctly — UTC sync from `pool.ntp.org` is fine, block-height widget updates fine, hashrate is unaffected. Root cause is that the firmware applies a fixed integer hour offset from UTC with no DST awareness, no zoneinfo / `tzdata` lookup, and no rule-based logic. Documented upstream as Issue #220 on `BitMaker-hub/NerdMiner_v2`. Fix path: re-enter the offset via AP-mode wizard or `config.json` on SD card every DST changeover, OR set timezone to `0` (UTC) permanently — the upstream maintainer's recommended workaround — OR flash a community fork that has implemented Tasmota-style POSIX TZ rule strings. Mining is completely unaffected; clock widget is decorative.

Informational — Monitor and address as needed

Affected Models: NerdMiner v2 — all variants. LILYGO TTGO T-Display (ESP32 + ST7789), LILYGO T-Display-S3 (ESP32-S3 + ST7789), ESP32-2432S028R Cheap Yellow Display (CYD, ILI9341), ESP32-2432S024C (ST7789), ESP32-2432S022 non-touch, IdeaSpark ESP32 1.14" / 1.9" ST7789 variants, hand-wired NerdMiner v2 custom builds. Same firmware-level root cause applies to NerdAxe, NerdNOS, and NerdQAxe builds inheriting the upstream `BitMaker-hub/NerdMiner_v2` clock widget logic.

Symptoms

  • OLED / TFT clock widget reads exactly one hour off local wall-clock time
  • Error appeared the morning after a Daylight Saving Time changeover (March / November in US/CA, March / October in EU/UK, equivalent dates in AU/NZ/Chile)
  • Date on screen is correct (today's date), only the hour is wrong
  • Hashes/sec counter 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` is reachable and shows healthy hashes
  • Pool worker on `public-pool.io` or `solo.ckpool.org` is online and submitting accepted shares
  • Block-height widget on screen is updating correctly (HTTPS / DNS / network are healthy)
  • Symptom did NOT start after a firmware flash — appeared on a known-good firmware that worked yesterday
  • Multiple NerdMiners on the same network all show the same wrong time simultaneously
  • Setting timezone offset to `0` (UTC) makes the clock show consistent UTC time year-round
  • Operator is in a region observing DST: most of US/CA, EU/UK, Mexico (partial), Australia (most states), NZ, Chile, parts of Brazil
  • Timezone configured via AP-mode wizard at first boot or via `Timezone` integer in `config.json` on SD card

Step-by-Step Fix

1

Re-enter the timezone offset via AP-mode wizard. Power off the NerdMiner, then power on while holding the `BOOT` button (or the firmware's documented recovery sequence per board variant). The miner boots into AP mode advertising an SSID like `MineYourCoins` (default). Connect your phone or laptop to that SSID. Browse to `http://192.168.4.1`. The captive-portal wizard shows your existing config and the **Timezone** integer. Update Timezone to your current civil offset (e.g. `-4` for EDT in summer, `-5` for EST in winter on North American Eastern). Save. The miner reboots and re-syncs NTP within `30-120 s`. Watch the OLED — clock jumps to correct local time on the next NTP poll.

2

Set a recurring calendar reminder for the next DST changeover. The fix is semi-annual. Add a Google / Apple / Outlook calendar event: 'Update NerdMiner timezone — second Sunday of March, first Sunday of November' for US/CA, or your region's equivalent dates. Two minutes per device, twice a year. Attach the AP-mode SSID, your worker config notes, and your standard / daylight offsets to the calendar event so future-you doesn't have to dig.

3

Switch to UTC permanently if you don't need wall-clock display. Same AP-mode wizard, set Timezone to `0`. The OLED clock now shows UTC year-round — no DST drift, ever. This is the upstream maintainer's recommended workaround on Issue #220 and the convention for any system that runs unattended for years across timezone changes. Mining is completely unaffected. The 'loss' is that the screen no longer shows local time; for most home miners and especially fleet operators this is a fair trade for 'always correct.'

4

Document the offset on the case. Stick a piece of masking tape on the NerdMiner and write your standard-time and daylight-time offsets (e.g. '`STD -5 EST · DST -4 EDT`'). Saves a Google search next changeover. For fleet operators, maintain a clipboard or text file mapping each device's hostname to its configured offset and next changeover date — pays back the first time you have to flip the fleet.

5

Reboot to confirm the fix sticks. After re-entering the offset, hard power-cycle the device once to confirm the value persisted to NVS / flash. Some early NerdMiner builds had bugs where the offset reverted after reboot; if yours does, flash the latest stable from the official web installer at `https://bitmaker-hub.github.io/NerdMiner_v2/`.

6

Configure timezone via `config.json` on SD card (for boards with SD slots — CYD, certain T-Display variants). Format an SD card FAT32. Create `config.json` with at minimum: `{ "Timezone": -4, "WiFiSSID": "...", "WiFiPass": "...", "PoolURL": "public-pool.io", "PoolPort": 21496, "BTCAddress": "bc1q...", "WorkerName": "nerdminer-01" }`. Power down, insert SD card, hold reset while powering on, release after `5-10 s`. Firmware loads `config.json` into NVS. Power down, remove the SD, power back up. The new offset is in effect. This method scales for fleet provisioning — same templated `config.json` per device.

7

Flash latest stable `BitMaker-hub/NerdMiner_v2` 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. Pick your board from the dropdown matching your PCB silkscreen. Note pool URL, worker name, payout address, and current Timezone offset before flashing — NVS may wipe. Latest builds may include improved DST handling or bug fixes; check the changelog and Issue #220 for the current state.

8

Standardize the fleet on UTC. If you operate 3+ NerdMiners, the operational cost of remembering to flip every device twice a year exceeds the value of local-time display. Set them all to Timezone `0` once. UTC also matches your pool dashboard, `mempool.space`, your Bitcoin Core node logs, and almost every server log file you'll ever pull. Fleet operators converge on this fast.

9

Use a separate display for local time if needed. If you really want local time on a glance-able screen near the rig, mount a $5 standalone clock or run a small e-paper / OLED on a dedicated ESP8266 / ESP32 with proper DST support (Tasmota, ESPHome, or a 5-line custom sketch using `tzset()` and a POSIX TZ string). Keeps the NerdMiner on UTC for stability while a separate device shows local time. Cleaner separation of concerns.

10

Verify NTP is actually reaching `pool.ntp.org`. From your laptop on the same network, run `nslookup pool.ntp.org` — healthy result returns multiple A records. UDP port `123` outbound must be open for NTP packets to flow. If your router blocks UDP `123` or your ISP filters it, NerdMiner has no time source and the clock will be stuck or wildly wrong. Fix: open UDP `123` outbound at the router, or override the NTP server in firmware (Tier 3) to a reachable internal NTP source.

11

Flash a community fork with DST support. Browse the `BitMaker-hub/NerdMiner_v2` issue tracker and Issue #220 for linked PRs and forks. Some forks have implemented Tasmota-style timezone rule strings that accept input like `EST5EDT,M3.2.0,M11.1.0` (Eastern US/CA) or `CET-1CEST,M3.5.0,M10.5.0/3` (Europe Central) and auto-switch DST per the rules. Audit fork commits before flashing — confirm the maintainer, recent activity, and that the rest of firmware still works. Build with PlatformIO or use the fork's own web installer if provided.

12

Rebuild from source with a hardcoded POSIX TZ string. `git clone https://github.com/BitMaker-hub/NerdMiner_v2`, install PlatformIO. In `src/` find the time-handling code (search for `configTime`, `gmtOffset`, `daylightOffset`, `setenv("TZ"`). Replace integer offset logic with `setenv("TZ", "EST5EDT,M3.2.0,M11.1.0", 1); tzset();` for your region. Build and flash via PlatformIO Upload. Adds maybe `1-2 KB` of flash. ESP32 newlib supports POSIX TZ natively — the firmware just isn't using it.

13

Replace the hardcoded NTP server with one you control. If you run a self-hosted NTP server on your home network (`chrony` on a Pi, your router's built-in NTP, an Umbrel time service, or a dedicated GPS-disciplined oscillator like `gpsd`), edit firmware source to point at your local NTP. Search for `pool.ntp.org` references and replace with `192.168.x.y` or `nerdminer-ntp.local`. Sovereignty-grade fix — your miner gets time from your network, not the public NTP pool.

14

For half-hour and unusual timezones, accept UTC permanent display or rebuild from source. India (`+5:30`), Newfoundland (`-3:30`), Nepal (`+5:45`), Adelaide (`+9:30`), Chatham Islands (`+12:45`), Samoa (`+13`), and Kiribati (`+14`) cannot be represented in NerdMiner's integer-hour offset model on stock firmware. Either flash a fork with floating offset support, rebuild from source with a POSIX TZ string, or run UTC permanently. For most operators, UTC permanent is the five-minute answer.

15

Multi-device cross-check. If you operate more than one NerdMiner, all on the same firmware should show the same wrong time after a DST changeover (because they share the firmware limitation). If only one is wrong and others are right, you have a firmware version mismatch — check versions across devices. Reflash the outlier to match the fleet. Either re-enter the new offset on all devices simultaneously, or convert the whole fleet to UTC permanently in one session.

16

Stop DIY and ship to D-Central only when: time issue is paired with crash loops / `Guru Meditation` in serial referencing a time-related code path; OR OLED shows garbage characters in time field rather than wrong-but-formatted time; OR clock is wrong even when set to UTC (NTP-level failure with healthy network); OR multiple NerdMiners on identical firmware show different wrong times; OR visible physical damage (scorch, bulged caps, discoloured 3.3V LDO, burnt-resistor smell, cracked OLED ribbon). At that point you are past timezone configuration and into deeper firmware or hardware territory. D-Central's open-source bench handles ESP32 reflow, USB UART rework, OLED panel replacement, and ESP-IDF build forensics — same silicon family as the full Bitaxe / NerdAxe / NerdQAxe service queue.

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.