NerdMiner screen explained: what every number on a NerdMiner v2 means

Last reviewed

NerdMiner screen explained: the short answer

On a NerdMiner v2, KH/s is your miner's speed and BLOCK TEMPLATES counts the jobs your pool has sent. BEST DIFFICULTY is the hardest share the pool accepted, 32BITs SHARES counts accepted shares of difficulty 1 or more, and VALID BLOCKS is meant to count blocks found: 0 there is normal. The top button steps through a clock, network statistics and a price screen; below is every label, read from the firmware's source code, with what a healthy reading looks like.

Which firmware and board this describes

This guide reads release V1.8.3 of the official NerdMiner_v2 firmware, published on 13 September 2025 (commit a26865f). On 8 November 2026 it is still the latest release. The project's main branch has since moved on to commit e3a04b7 (15 June 2026). It adds boards and changes the factory pool port, but leaves every screen and counter below as they are.

The board is the LilyGO T-Display S3, the first board the project's README lists; its firmware build is called NerdminerV2. Its screens are drawn by tDisplayDriver.cpp, and the numbers are worked out in monitor.cpp and mining.cpp. The labels are not text in the code: they are painted into the background pictures in src/media/images_320_170.h, which were decoded for this guide to read them. Other boards differ; see the end of this page. What a NerdMiner is, and how to flash one, is on the NerdMiner hardware page.

To see your own version, watch the start-up screen: the firmware prints it in the bottom-left corner, for example V1.8.3.

The main screen, label by label

This is the screen the miner opens on after every restart. All of it is redrawn once a second.

On the screenWhat it meansWhat a normal reading looks like
KH/s (the big number)Your miner's speed, in thousands of hashes a second: the average of the last ten one-second readings.A steady number. The project's release notes last gave a figure for this board in release 1.6.1 (August 2023): up to 56 KH/s. SoloLuck's calculator uses 78 KH/s. The V1.8 releases added hashing on the chip's hardware SHA-256 unit and gave no new figure, so a different steady number is not a fault. 0.00 means no work is arriving.
MILLION HASHESAll the hashes done since the miner started, in millions. It is topped up each time the pool sends new work.It only goes up: about 281 million an hour at 78 KH/s.
BLOCK TEMPLATESThe jobs your pool has sent since start. Each stratum mining.notify message adds one.Keeps rising while the miner is connected. If no new job arrives for 10 minutes, the firmware drops the connection and reconnects.
BEST DIFFICULTYThe hardest share the pool has accepted from this miner since start, written as a difficulty. K means thousand, M million, G billion, T trillion.Jumps, then stands still for long spells. At 78 KH/s the typical best is about 2.3 after a day, 68 after 30 days and 830 after a year. On a pool that sets difficulty 1, it reads 0.0000 until the first accepted share.
32BITs SHARESAccepted shares whose hash starts with 32 zero bits, which means difficulty 1 or more. If your pool accepts easier shares, the miner sends those too, but this counter skips them.Slow. Such a share takes about 4.3 billion hashes on average, so about one every 15 hours at 78 KH/s. After a first day, anything from 0 to 3 is ordinary.
VALID BLOCKSMeant to count accepted shares that also met the whole network's target: blocks found.0. On V1.8.3 it cannot count a block at all; see the next section.
Alarm clock, then a number, d and hh:mm:ssHow long the miner has been mining: days, then hours, minutes and seconds.Counts up from zero after every restart, unless you save statistics (see the setup section).
Top bar: the first numberThe chip's own temperature in °C, from the processor's built-in sensor, not the room. The tiny 0 drawn just after it belongs to the temperature reading; it is not a separate number.The firmware only shows it. Nothing in the code slows or stops mining at any temperature.
Top bar: hh:mmThe time on a 24-hour clock, from an internet time server, shifted by your time-zone setting.Off by whole hours? The time zone is 2 (UTC+2) unless you change it in the setup page.
Pickaxe and Wi-Fi iconsPart of the background picture.Always there, connected or not. They are not a status light.

Typical here means half of all miners at that speed would show more and half less; the method is in Best Difficulty, explained. What a job and a share are is in what is stratum.

Valid blocks 0: what it means

By the odds, 0 is the reading to expect for the whole life of the device. SoloLuck's solo mining odds calculator uses the network difficulty of 148.36T on 8 November 2026. At that difficulty, one NerdMiner at 78 KH/s would find a block about once every 260 billion years on average: a 1 in 95 trillion chance on any given day. Even at four times that speed, the average wait is still about 67 billion years. The average is not a countdown. Every hash is a fresh draw, nothing is stored as progress, and a big BEST DIFFICULTY does not bring a block closer.

On V1.8.3 there is a second reason the counter stays at 0: it is broken. The check behind it is checkValid() in src/utils.cpp. It copies the wrong bytes as its target and loops on an unsigned 8-bit counter, so the only answer it can give is "not a block". Compiled on its own for this guide and handed an all-zero hash, the easiest winner there could be, it still said no. Two proposed fixes sit in the project's tracker, #832 and #840; neither was merged on 8 November 2026.

The fault is in the counter only. The miner sends each share to the pool whether or not this check passes, as fix #832 also points out. The miner never receives a block's transactions and has no link to the Bitcoin network, so publishing a found block is the pool's job. To know whether your miner ever found one, look at your pool's page for your address and at a block explorer, not at this box.

The other screens: press the top button

Hold the board with the USB-C port on the right. One click on the top button moves to the next screen, in this order: the main screen, CLOCK MINER, GLOBAL STATS, the price screen, then back to the start. The screens never change by themselves.

ScreenWhat it shows
CLOCK MINERA large clock (hh:mm). The Bitcoin price in US dollars beside the Bitcoin logo at the top. Your KH/s. CURRENT BLOCK: the height of the newest block.
GLOBAL STATSMEDIUM FEE: a fee rate in sat/vB, the value mempool.space's fee API calls halfHourFee. DIFFICULTY: the network difficulty, in trillions (T). GLOBAL HASHRATE, in EH/s: the whole network's estimated hashrate. CURRENT BLOCK. HALVING: a bar that fills toward the next halving, with the blocks still to go written on it. The price and the time sit at the top.
Price screen (NerdMiner logo on a field of coins)The Bitcoin price in US dollars, large. The time. Your KH/s. CURRENT BLOCK.

Apart from KH/s, nothing on these screens comes from your miner or your pool. The firmware downloads it while a screen that shows it is open. Block height, difficulty, network hashrate and fee come from mempool.space at most every 2 minutes, the price from CoinGecko at most once a minute, and the time from an internet time server. On 8 November 2026, for example, mempool.space gave block 975,042, a difficulty of 148.36T, about 1,007 EH/s and a half-hour fee of 1 sat/vB. The halving bar then stood at 64%, with 74,958 blocks to go until block 1,050,000; Bitcoin's block reward halves every 210,000 blocks (the halving, explained). Why fees move is in what is the mempool.

Two readings mean a download failed. CURRENT BLOCK 793261 is a number built into the firmware and shown until the first successful look-up, so seeing it means mempool.space could not be reached. A price of $0 means the price look-up has not worked yet.

Start-up, setup and no-work screens

Checking initial config and Connecting to Wifi make up the start-up screen. It shows the firmware version in the bottom-left corner and stays while the miner joins your Wi-Fi, which the firmware allows 40 seconds for.

WAITING CONFIG, USE THIS WIFI TO SETUP, WIFI SSID: NerdMinerAP and PASSWORD: MineYourCoins, next to a QR code, mean the miner has opened its own Wi-Fi network for setup. You see it on first start, after a settings reset, when you hold the top button while plugging the miner in, and when your saved Wi-Fi does not answer within 40 seconds. To get past it:

  1. On a phone or laptop, join the network NerdMinerAP with the password MineYourCoins.
  2. The setup page should open by itself. If it does not, open 192.168.4.1 in a browser.
  3. Pick your Wi-Fi, type its password, then fill in the pool and your own Bitcoin address. The values for SoloLuck are in the NerdMiner solo pool guide.
  4. Save. The miner stores the settings and goes on to connect.

Two fields on that page change what the screen shows. TimeZone fromUTC (-12/+12) sets the clock and is 2 unless you change it. Save mining statistics to flash memory is off by default. Tick it and BEST DIFFICULTY, MILLION HASHES, 32BITs SHARES, VALID BLOCKS, BLOCK TEMPLATES and the mining time survive a restart. They are saved at intervals that grow from 5 minutes to 12 hours, so a power cut can still lose the latest hours.

The setup network closes after 3 minutes without activity. If it opened because your saved Wi-Fi failed, the miner then restarts and tries again by itself; otherwise, unplug it and plug it back in. One catch: a web flasher can store a different name for the setup network. The firmware then uses that name, but the screen still says NerdMinerAP, because those words are part of the picture.

Main screen, but KH/s stays at 0.00 and BLOCK TEMPLATES does not move: Wi-Fi works, but no work is coming from the pool. The firmware keeps retrying, waiting a random 1 to 60 seconds between tries. Check the pool address and port. Check that your own Bitcoin address replaced the factory placeholder yourBtcAddress; the README says mining does not start without an address. Then see whether the pool is answering on the pool status page. If you kept the factory pool, check its port: V1.8.3 sets public-pool.io on port 21496. Public Pool's own site gives port 3333 (4333 for TLS), and the project's main branch moved its default to 3333 in June 2026.

A black screen may just be the backlight: one click on the bottom button turns it off and on, and the miner keeps mining while it is dark.

The buttons on a T-Display S3

With the USB-C port on the right, the project's README and the code agree on this. "Not assigned" means the firmware gives that action no job of its own.

ActionTop buttonBottom button
One clickNext screenScreen off or on; mining carries on
Double-clickNot assignedTurns the picture upside down
Hold 5 secondsErases your settings and statistics, then restarts into the setup screenNot assigned
Hold while plugging inOpens the setup screen with your current settings filled inStarts the board in boot mode, used for flashing firmware

So never hold the top button to change screens: a long press there erases your settings.

Other boards: what changes

The counters are the same on every board, because they come from the same code. What changes is the layout and how many screens a board has. From the V1.8.3 display drivers:

BoardScreens
LilyGO T-Display S3, LilyGO T-EmbedThe four screens described above.
LilyGO T-Display 1.14-inch (TTGO T-Display), Waveshare ESP32-S3-GEEK, M5StickC Plus2The same four screens and labels, laid out for a smaller 240 by 135 display.
ESP32-2432S028R 2.8-inch (also its two-USB version and the ESP32-2432S024), LilyGO T-HMIThe four screens plus a strip labelled Public-Pool.io with Best Difficulty, WORKERS and Total Hash Rate. The firmware downloads those from a pool's website: Public Pool's, unless your pool is one of the few it knows. On any other pool they say nothing about your mining there, and P and E mean the download failed. On the 2.8-inch board, tap the right half of the screen for the next screen and the left half for the previous one.
LilyGO T-Display S3 AMOLEDThree screens: the main screen, the clock screen and the global statistics screen; no price screen.
LilyGO T-QTTwo screens: the main screen and the clock screen.
LilyGO T-Dongle S3One screen: the time, KH/s and the same counters.
ESP32-C3 or ESP32-S3 with a 0.42-inch OLEDTwo tiny screens: KH/s, then the chip temperature.
Boards without a screen (ESP32 DevKit, ESP32-CAM, boards with only an RGB LED)No screen: the same counters are printed to the USB serial log.

Boards added to the main branch after V1.8.3 are not covered here. For any board, its display driver in src/drivers/displays/ is the final word.

Check that your miner is healthy

  1. KH/s holds a steady number above 0.00.
  2. BLOCK TEMPLATES goes up. Give it up to 10 minutes.
  3. CURRENT BLOCK, on the clock screen, matches the newest block on a block explorer such as mempool.space. The miner refreshes it at most every 2 minutes, so allow for a block that has just arrived.
  4. Within a day, 32BITs SHARES is usually above 0: at 78 KH/s on a pool working at difficulty 1, that happens on about four days in five.
  5. Your pool shows the miner. On SoloLuck, the public statistics page for your address is sololuck.io/users/ followed by the address.

If a step fails, the start-up, setup and no-work section above says where to look.

FAQ

What does Valid blocks 0 mean on a NerdMiner?

It means the miner has not counted a block, which is the expected reading. At 78 KH/s and the network difficulty of 148.36T on 8 November 2026, SoloLuck's odds calculator puts the average wait for one NerdMiner at about 260 billion years, a 1 in 95 trillion chance on any given day. On firmware V1.8.3 the counter also cannot go up at all, because the check behind it is broken (fixes are proposed in pull requests #832 and #840), so watch your pool's page instead.

Why is 32BITs SHARES still 0 on my NerdMiner?

A 32-bit share is a hash that starts with 32 zero bits, which takes about 4.3 billion hashes on average: roughly one every 15 hours at 78 KH/s, so a first day with none is ordinary. If it stays at 0 for several days, check that BLOCK TEMPLATES is rising and that your pool lets the miner work at difficulty 1; at a higher pool difficulty the counter rises far more slowly.

Why did my NerdMiner's numbers go back to zero?

The counters start again after every restart unless Save mining statistics to flash memory is ticked in the setup page, and it is off by default. Even then they are saved at intervals that grow to 12 hours, so a power cut can lose the latest hours. Holding the top button for 5 seconds erases your settings and your statistics.

What are block templates on a NerdMiner?

BLOCK TEMPLATES counts the jobs your pool has sent since the miner started: every stratum mining.notify message adds one. It should keep rising. If no new job arrives for 10 minutes, the firmware drops the pool connection and reconnects.

Why is the clock on my NerdMiner wrong?

The time comes from an internet time server, shifted by the TimeZone fromUTC (-12/+12) setting, which is 2 (UTC+2) unless you change it. Hold the top button while plugging the miner in to open the setup page with your current settings, correct the time zone and save.

Do the Wi-Fi and pickaxe icons mean my NerdMiner is connected?

No. On the T-Display S3 they are part of the background picture and show all the time. A steady KH/s and a rising BLOCK TEMPLATES count are the signs that work is arriving from your pool.

Ready to start solo mining?

Paste your address and copy the config from /setup, find your port and difficulty floor on /connect, watch the pool on /status, and check every claim on /verify. Mine to your own address — that is what makes it truly solo.

Start MiningCalculate Your Odds

Not ready to point a miner yet? Join Telegram for block & record alerts — no rig required.