AZIC Education

AT24C02 EEPROM — Board Identification Memory

AT24C02 EEPROM specifications, I2C interface, data layout, and troubleshooting for hash board identification and calibration storage in mining hardware.

Overview

The AT24C02 is a 2-Kilobit (256 bytes) I2C EEPROM manufactured by Microchip (Atmel). It is found on virtually every hash board in Antminer and many Whatsminer models, serving as the board's identity and calibration memory. The EEPROM stores critical information including the board serial number, hardware version, model identifier, and calibration data that the control board reads during initialization.

When the EEPROM data is corrupted, unreadable, or contains a mismatched serial number, the miner will refuse to recognize the hash board — reporting errors like "board not detected", "chain find 0 ASIC", or "EEPROM read error". This is one of the most common causes of a hash board being rejected by the control board despite being electrically functional.

Specifications

ParameterValue
ManufacturerMicrochip (Atmel)
Memory Size2 Kbit (256 bytes)
InterfaceI2C / Two-Wire
I2C Speed100kHz (standard), 400kHz (fast)
Supply Voltage1.8V to 5.5V
Write Time5ms per page
Page Size8 bytes
Endurance1,000,000 write cycles
Data Retention100 years
I2C Address0x50-0x57 (A0-A2 configurable)
PackageSOIC-8, SOT-23-5, DFN-8
Write ProtectWP pin (active HIGH disables writes)

I2C Address Configuration

The AT24C02 I2C address is formed from a fixed upper nibble (1010) and three configurable bits (A2, A1, A0):

A2A1A0I2C Address
GNDGNDGND0x50
GNDGNDVCC0x51
GNDVCCGND0x52
GNDVCCVCC0x53
VCCGNDGND0x54
VCCGNDVCC0x55
VCCVCCGND0x56
VCCVCCVCC0x57

In Antminer hash boards, the EEPROM is typically at 0x50 (all address pins grounded).

On Antminer hash boards, the EEPROM sits behind the PIC16F1704 I2C bridge. The PIC and EEPROM addresses shift together across resets — if the PIC is at 0x21, the EEPROM will be at 0x51 (offset +0x30). Always scan the full address range when searching for the EEPROM.

Memory Layout

The 256 bytes of EEPROM storage are organized into functional regions. The exact layout varies by manufacturer and model, but a typical Antminer hash board uses:

OffsetLengthDescription
0x00-0x034 bytesMagic header / board type identifier
0x04-0x0F12 bytesBoard serial number (ASCII)
0x10-0x134 bytesHardware version
0x14-0x174 bytesModel identifier
0x18-0x1F8 bytesManufacturing date
0x20-0x3F32 bytesVoltage calibration data per domain
0x40-0x5F32 bytesFrequency calibration data
0x60-0x7F32 bytesTemperature sensor offsets
0x80-0xEF112 bytesChip performance data / bad chip bitmap
0xF0-0xFE15 bytesReserved / manufacturer data
0xFF1 byteChecksum

The EEPROM layout is not standardized and varies between miner models and firmware versions. The table above is a general guide based on common Antminer configurations. Always dump and study the EEPROM contents before making modifications.

Reading and Writing

I2C Read Operation

To read a byte from the AT24C02:

# Sequential read from AT24C02 at 0x50
# Step 1: Send the memory address to read from
i2c_start()
i2c_write(0x50 << 1 | 0)  # Write mode, device address
i2c_write(0x00)             # Memory address (0x00 = first byte)

# Step 2: Read the data
i2c_start()                 # Repeated start
i2c_write(0x50 << 1 | 1)  # Read mode
data = i2c_read_nack()      # Read one byte, NACK to end
i2c_stop()

I2C Write Operation

Writing to the AT24C02 uses page write mode (up to 8 bytes at a time):

# Page write to AT24C02 at 0x50
i2c_start()
i2c_write(0x50 << 1 | 0)  # Write mode
i2c_write(0x00)             # Starting memory address
i2c_write(0x41)             # Data byte 1
i2c_write(0x5A)             # Data byte 2
# ... up to 8 bytes per page
i2c_stop()

# CRITICAL: Wait 5ms for the write cycle to complete
time.sleep(0.005)

Page boundary: The AT24C02 has 8-byte pages. If a write crosses a page boundary (e.g., writing 4 bytes starting at address 0x06), the address wraps around within the page — bytes 3 and 4 overwrite addresses 0x00 and 0x01 instead of 0x08 and 0x09. Always align multi-byte writes to page boundaries.

Reading via PIC Bridge (Antminer)

On Antminer boards, the EEPROM is accessed through the PIC16F1704 I2C bridge. The control board does not communicate with the EEPROM directly — it sends a sensor read command (CMD 0x3C) to the PIC, which performs the I2C transaction with the EEPROM.

Common Issues

1. Corrupted Data — "Board Not Detected"

Symptoms: The miner reports the hash board as not detected or shows "EEPROM error" in the log. The board is physically connected and powered.

Causes:

  • Power glitch during a firmware-initiated EEPROM write (calibration update)
  • Electrical noise on the I2C bus corrupting a write transaction
  • EEPROM reaching its write endurance limit (unlikely — 1 million cycles)

Fix: Re-program the EEPROM with correct data. This requires knowing the correct values for the board model. Some repair shops maintain EEPROM image databases. The firmware's "factory reset" function may also re-initialize the EEPROM.

2. Wrong Serial Number — "Hashboard Mismatch"

Symptoms: The miner detects the board but reports a serial number mismatch or refuses to start hashing. This commonly occurs when a hash board is moved from one miner to another.

Causes:

  • Some firmware versions bind hash boards to a specific control board by storing a pairing key in the EEPROM
  • Board was reprogrammed with generic data that does not match the control board's expected configuration

Fix: Re-pair the hash board to the control board using the miner's pairing function (available in some firmware versions), or reprogram the EEPROM with the expected pairing data.

3. EEPROM Not Responding

Symptoms: I2C scan shows no device at the expected EEPROM address.

Causes:

  • Failed EEPROM IC
  • Missing 3.3V power (check LDO regulator)
  • Broken SDA or SCL trace between connector and EEPROM
  • PIC bridge failure (Antminer — EEPROM may be fine but PIC is not forwarding I2C)
  • Write protect (WP) pin stuck HIGH (prevents writes, but reads should still work)

4. All Data Reads as 0xFF

Symptoms: EEPROM responds on I2C but all bytes read as 0xFF (erased state).

Causes:

  • EEPROM was accidentally erased (full-chip write of 0xFF)
  • New/replacement EEPROM was installed but not programmed
  • Data corruption that set all bits high

Fix: Reprogram the EEPROM with the correct board data.

Testing Procedures

I2C Bus Scan

Scan the I2C bus for devices in the 0x50-0x57 range:

  • On Antminer boards: scan through the PIC bridge, or access the hash board's internal I2C bus directly
  • Expected: One device responding at 0x50 (or 0x51-0x57 if address pins are configured)

Dump EEPROM Contents

Read all 256 bytes and examine:

  1. First few bytes: Should contain a recognizable magic header (not 0xFF or 0x00)
  2. Serial number region: Should contain printable ASCII characters
  3. Overall: Should not be all 0xFF (erased) or all 0x00 (zeroed)
# Example hex dump of a valid EEPROM (first 32 bytes)
# 00: 42 4D 31 33  53 31 39 58  50 30 31 32  33 34 35 00
# 10: 01 02 00 05  13 68 00 01  32 30 32 33  30 35 31 35

Verify Checksum

If the EEPROM format includes a checksum byte (typically the last byte at 0xFF):

  1. Calculate the expected checksum from the stored data
  2. Compare with the stored checksum value
  3. A mismatch indicates data corruption

Write Test

To verify the EEPROM is writable (use a non-critical address):

  1. Read a byte from a known unused location
  2. Write a test value
  3. Wait 5ms for the write cycle
  4. Read back and verify the test value was stored
  5. Restore the original value

Do not write to addresses containing board identification data unless you have a backup of the full EEPROM contents. Corrupting the serial number or calibration data will require reprogramming from a known-good source.

Replacement Notes

  • The AT24C02 in SOIC-8 is straightforward to replace with a soldering iron
  • SOT-23-5 packages require more precision but are still manageable
  • After replacement, the EEPROM must be programmed — a blank EEPROM will cause the miner to reject the board
  • If you have a copy of the original EEPROM data, write it to the replacement chip before or after installation
  • If the original data is lost, the board may need to be re-initialized through the miner's firmware diagnostic tools
  • Compatible alternatives: AT24C02D, AT24C02C, CAT24C02, M24C02 — any 2Kbit I2C EEPROM with the same pinout

Found In These Miners