Brit Tester v0.9.1 (beta)
The Brit Tester is a portable workbench for diagnosing and validating Antminer hashboards. Connect the hashboard, open the web interface, and run the tests. Results appear in real-time.
S19/T19 (BM1398P) • S19 Pro (BM1398P) • S19j / S19 / S19JPro (BM1362) • S19 XP / S19 JXP / S19JPro++ / S19k Pro (BM1366) • S21 / T21 / S19XP+ (BM1368) • S19i (BM1360)
Not every test is available on every model yet. ChainCheck (chain validation) works on all supported models. CoreCheck and FullLoad are fully available on BM1398P and BM1362 boards; they are still in development for BM1366, BM1368 and BM1360. See the full table below.
| Machine | ASIC | LiveScan | ChainCheck | CoreCheck | FullLoad |
|---|---|---|---|---|---|
| S19 / T19 | BM1398P | Yes | Yes | Yes | Yes |
| S19 Pro | BM1398P | Yes | Yes | Yes | Yes |
| S19j / S19 / S19JPro | BM1362 | Yes | Yes | Yes | Yes |
| S19 XP / S19 JXP | BM1366 | Yes | Yes | In development | In development |
| S19JPro++ / S19k Pro | BM1366 | Yes | Yes | In development | In development |
| S21 | BM1368 | Yes | Yes | In development | In development |
| T21 | BM1368 | Yes | Yes | In development | In development |
| S19XP+ | BM1368 | Yes | Yes | In development | In development |
| S19i | BM1360 | Yes | Yes | In development | In development |
Connect: GND → +V → signals. Disconnect in reverse order: signals → +V → GND. Failing to follow this order may damage the hashboard's level shifters.
On first use (without configured network), the tester creates its own Wi-Fi network:
| Parameter | Value |
|---|---|
| SSID | BRIT_TESTER |
| Password | asichelp19 |
| URL | http://192.168.4.1 |
Connect your phone or PC to this network and open the address in your browser. If already connected to your local network, use the IP displayed on the OLED screen.
When the tester is connected to your local Wi-Fi network (STA mode), besides the IP it also answers on a fixed .local hostname, generated from the last 3 bytes of the tester's eFuse MAC:
This address does not change even if DHCP reassigns the tester's IP after a reboot — useful on benches with multiple testers, since each one gets a unique hostname. When connecting the tester to a Wi-Fi network (Config tab → Wi-Fi), the overlay shown before the AP turns off displays both the new IP and the matching .local URL.
.local depends on mDNS/multicast support on the network — it may not work on restrictive corporate networks, separate VLANs, or "guest" Wi-Fi with client isolation. If .local doesn't open, use the IP shown on the OLED or serial log instead — it always works.
If the equipment is not provisioned, a block page will appear with the tester's eFuse MAC. Send the MAC to support for provisioning.
Upon connecting the hashboard, the tester reads the EEPROM and selects the model automatically in ~2.6 seconds. If not recognized, select it manually in the dropdown.
| Board Code | Tester Model | ASIC |
|---|---|---|
| NBS1902 | S19/T19 76C | BM1398P |
| NBP1901 | S19Pro 114C | BM1398P |
| BHB42601/42603/42621/42631/42632/42641/42651/42841 | S19JPro 126C | BM1362 |
| BHB42611/42612 | S19JPro 120C | BM1362 |
| BHB42701 | S19j 108C | BM1362 |
| BHB42801/42811/42821/42831 | S19 88C | BM1362 |
| BHB42803 | S19 84C | BM1362 |
| BHB56601 | S19 XP 99C | BM1366 |
| BHB56701 | S19 XP 70C | BM1366 |
| BHB56801/56802 | S19 XP 110C | BM1366 |
| BHB56901 | S19JPro++ 77C | BM1366 |
| BHB56902/56903/56906/56907 | S19kPro 77C | BM1366 |
| BHB56804/56807/56814 | S19 JXP 110C | BM1366 |
| BHB68601/68603/68606 | S21 108C | BM1368 |
| BHB68701/68703/68705/68709 | T21 108C | BM1368 |
| BHB68707 | S19XP+ 108C | BM1368 |
| NBS2003 | S19i 80C | BM1360 |
[+] Legacy EEPROM
NBS1902, NBP1901 and NBS2003 use Bitmain's Legacy format. The NBS1902 is detected automatically. If it appears as LEGACY011, select manually.
Left side panel with visual indicators of physical signals during testing. All signals use a 1.2V LDO.
| Signal | ASIC Name | Direction | Idle | Operation |
|---|---|---|---|---|
| TX | CI (Command In) | Chip 1 → N | 0V | 1.2V |
| BI | BO (Broadcast Out) | Chip 1 → N | 0V | 0V (always) |
| RST | Reset | Chip 1 → N | 0V | 1.2V (pulse) |
| CLK | XIN (Clock) | Chip 1 → N | — | 0.5–0.6V |
| RX | RI/RO (Response) | Chip N → 1 | 0.3V | 1.2V |
Click any signal to see a wave flowing through the chips on the grid. Use the Signals button on the topbar to show/hide the panel.
Hover over a chip to see: number, domain, nonces/ACKs, and failures. The map updates automatically after each test without reloading the page.
Each subsequent test assumes the previous one passed. Use LiveScan only for quick visual diagnostics before starting formal tests. CoreCheck and FullLoad may not be available depending on the detected model — see the availability table at the top of this manual.
| Result | Recommended action |
|---|---|
| ChainCheck FAIL | Check physically — soldering, continuity, power |
| CoreCheck FAIL | Chip works at basic level but is unstable under load — board potentially marginal |
| FullLoad FAIL | Chip(s) do not sustain continuous operation — board has a functional defect |
Continuous reading of the chain in near real-time. Does not execute load patterns — only light read-id/ping. Sensors are read at start and updated periodically.
LiveScan does not replace formal tests for board approval.
Chain test: turns on the PIC (when present), resets the hashboard, reads the EEPROM, detects chips, prepares the chain, and runs 8 verification patterns. Each chip must deliver at least 6 valid responses within the 24-second test window.
Chips that failed appear in red on the map.
| Parameter | Value |
|---|---|
| Patterns per cycle | 8 |
| Collection window per pattern | 3 seconds |
| Total duration | 24 seconds |
| Minimum responses per chip | 6 |
| Required OK chips | 99.5% of total |
In development for S19 XP, S19 JXP, S19JPro++, S19k Pro, S21, T21, S19XP+ and S19i — the CoreCheck button does not appear for these models.
Rigorous core test. Runs 3 independent load-pattern cycles. Each cycle is evaluated separately — a chip that fails in any cycle fails the whole test. Detects chips that pass ChainCheck but are unstable under sustained load.
Confirm the fans are on before starting. The warning modal opens automatically.
The chip map shows the accumulated response count across the 3 cycles. A chip with 8+10+0 shows "18" and turns red (failed cycle 3 with 0 responses).
| Parameter | Value |
|---|---|
| Independent levels (cycles) | 3 |
| Patterns per cycle | 8 |
| Collection window per pattern | 3 seconds |
| Total duration | 72 seconds (~1 minute 12 seconds) |
| Minimum responses per chip per cycle | 12 (BM1398P/BM1360) |
| Minimum responses per chip per cycle | 1 ACK (BM1362 — chain ACK mode) |
| Required OK chips | 99.5% of total |
[+] BM1362 ACK mode: for JPro/BM1362 hashboards, CoreCheck counts reception acknowledgements (ACKs) instead of SHA256 nonces. A chip that ACKs in all 3 cycles is healthy. The criterion looks simple (1 ACK), but the 3 independent cycles catch chips that only respond intermittently — something a single 24s cycle would not detect.
[+] Temperature: sensors are read on every pattern with a lightweight protocol. The test aborts automatically if temperature exceeds 70°C.
In development for S19 XP, S19 JXP, S19JPro++, S19k Pro, S21, T21, S19XP+ and S19i — the FullLoad button does not appear for these models.
Full-load validation at the chip's operating frequency (read from EEPROM when available; otherwise falls back to the profile default). Requires all chips on the board to respond in each cycle. The test repeats job cycles for the number selected in the modal.
Confirm fans are on. Select the number of cycles in the modal before starting.
| Field | Description |
|---|---|
| Theoretical TH | Theoretical capacity (freq x cores x OK chips) |
| Nonces/s | Actual rate of nonces delivered in the current cycle |
| OK Chips | Chips with at least 3 valid nonces |
| Errors | Chips that haven't reached the minimum yet |
| Freq | Frequency applied to the PLL (EEPROM or profile default) |
[+] Tip: Closing the modal does not stop the test. To reopen, click the FullLoad button (orange) again in the topbar while the test is running. Use Stop inside the modal or in the topbar to cancel.
| Parameter | Value |
|---|---|
| Minimum valid nonces per chip | 3 per cycle |
| Required OK chips | 100% — no failures tolerated per cycle |
| Example 126 chips | 126/126 required |
| Example 76 chips | 76/76 required |
| ASIC | Validation method |
|---|---|
| BM1362 | 8-midstate jobs; chip confirms with a chain ACK. Validates that the chip is hashing at the correct frequency. |
| BM1398P / BM1360 | Jobs with pre-computed 4-midstate vectors; chip returns real SHA256 nonces. |
[+] FullLoad for BM1362 uses the same ACK mechanism as CoreCheck, but at the EEPROM operating frequency and requiring 100% of chips. It is the final proof that every chip in the chain is functional at that frequency.
| Nonces in cycle | Interpretation |
|---|---|
| ≥ 5 | Normal — healthy chip |
| 3 – 4 | Borderline — potentially marginal chip |
| 1 – 2 | Below minimum — failed |
| 0 | Dead or disconnected chip |
| Panel | Sensor | Position |
|---|---|---|
| Top right | 0x48 | Air exhaust — top |
| Bottom right | 0x49 | Air exhaust — bottom |
| Top left | 0x4A | Air intake — top |
| Bottom left | 0x4B | Air intake — bottom |
Normal ranges: intake 30–50°C, exhaust 60–85°C. -- = sensor did not respond.
Click Stop on the topbar at any time. The state of the chips up to that point is preserved on the map.
Click the EEPROM button on the topbar to access the editor.
| Field | Editable | Description |
|---|---|---|
| Serial | Yes | Serial number (up to 18 characters) |
| Board | No | Board code (e.g., BHB42601) |
| ASIC | No | Chip model (e.g., BM1362) |
| Freq (MHz) | Yes | Programmed operating frequency |
| Volt (mV) | Yes | Programmed operating voltage |
| CRC Pt1/Pt2 | No | stored = calculated = OK. Mismatch = Corrupted EEPROM |
| Button | Function |
|---|---|
| Export EEPROM | Downloads a .bin file (256 bytes) with the connected EEPROM's current content to your computer |
| Restore backup | Opens the restore-from-computer modal to load a .bin file and restore fields to the connected EEPROM |
| Read to clone / Write clone | Clones EEPROM between two hashboards |
Check this option to overwrite ALL 256 bytes of the connected EEPROM with the loaded backup — byte for byte, with no field selection (disables the Serial choice, since everything is replaced). The connected board will fully identify itself as the backup's source board, including chip count and algorithm. Use only for full cloning between boards of different families — not reversible without another backup.
Always save a backup before editing. Never alter unknown calibration settings blindly.
.bin file: update_vX_Y.bin (full bundle, firmware + interface) or firmware.bin (firmware only). Type is auto-detectedShows the active plan and which features are enabled: basic tests, EEPROM read/editor, advanced tests, FullLoad, firmware updates, and PDF report. To install a license, select the .britlic file issued by the management portal and click Install license.
| Feature | Basic | Elite |
|---|---|---|
| Basic tests (LiveScan and ChainCheck) | Yes | Yes |
| EEPROM read | Yes | Yes |
| EEPROM editor | No | Yes |
| Advanced tests (CoreCheck) | No | Yes |
| FullLoad | No | Yes |
| Firmware update | Yes | Yes |
| PDF report | Yes | Yes |
Without a valid license, protected buttons remain hidden or locked. The license is bound to the tester's eFuse MAC.
| Bracket | Type |
|---|---|
| [INFO] | Information |
| [OK] | Success |
| [WARN] | Warning |
| [ERR] | Error |
| Symptom | What to check |
|---|---|
| Model not detected | EEPROM didn't respond — select manually |
| 0 chips detected | Boost (20V), domain voltage (0.32V/chip), PIC, level shifters |
| Temperature shows -- | Hashboard powered? PIC initialized? |
| All chips fail | Correct model? Power, RST, and UART OK? |
| ChainCheck fails immediately | Correct ASIC model? PIC/EEPROM responding? |
| FullLoad stuck at 0% | Hashboard must pass ChainCheck first |
| CoreCheck / FullLoad with raw_bytes=0 | Insufficient amperage — SHA256 requires at least 60A from the PSU |
| CRC Pt1/Pt2 mismatch | Corrupted EEPROM — do not write without investigating |
| "Unauthorized hardware" appears | Send the displayed eFuse MAC to support for provisioning |
| Abnormal Signal | Probable Cause |
|---|---|
| CLK < 0.5V | Damaged crystal oscillator or broken chip |
| RST doesn't rise to 1.2V | Level shifters (U1/U3/U4) or short circuit |
| TX (CI) missing | Damaged level shifter or stuck chip |
| RX (RO) missing | Chip at the end not responding; check R232/R233 (S19 Pro) or R8/R9 (S19) |
| BI (BO) not 0V | Chip with a short on the broadcast signal |
[+] Dichotomic Method
Divide the chain in half and measure RO/1.2V at the midpoint to isolate which half has the problem. Repeat until you find the chip.