Skip to content

ASIC results duplicated ~200x each (~11ms apart); #1820

Description

@mtmorandba-code

Summary

On my Bitaxe Gamma 601, nearly every asic_result is re-reported ~195–207 times at ~11ms intervals (a ~2.3s burst per unique result), across two firmware versions and three frequency/voltage profiles. Accompanying this: periodic Checksum failed on response and Preamble mismatch errors whose raw bytes contain repeated byte fragments within a single response, suggesting a serial-integrity issue on the ESP32↔BM1370 link. On pools with low share difficulty, the duplicates reach mining.submit and produce mass Duplicate rejects.

Hardware / environment

  • Device: Bitaxe Gamma, board version 601, BM1370 (purchased at BTC Prague, June 2026)
  • Firmware: reproduced identically on v2.4.0 and v2.14.1 (OTA-updated; System page confirms both FW and AxeOS at v2.14.1; ESP-IDF v5.5.3)
  • Pool: DATUM Gateway v0.4.x on LAN (OCEAN), pool min diff 131072; also reproduced against solo.ckpool.org (fallback)
  • PSU: ABT ABT060050H, 5.0V / 6.0A / 30W (certified, barrel connector) — ample headroom for ~22W peak
  • WiFi RSSI: −35 dBm (excellent)

Symptom 1 — duplicate ASIC results (~200x per unique result)

Example (v2.14.1, 490 MHz / 1.05 V):

I (34337020) asic_result: ID: 6a5aa37d8ac05703, ASIC nr: 0, Core: 79/11, ver: 20016000 Nonce 4810D39E diff 310.4 of 131072.
I (34337023) asic_result: ID: 6a5aa37d8ac05703, ASIC nr: 0, Core: 79/11, ver: 20016000 Nonce 4810D39E diff 310.4 of 131072.
I (34337034) asic_result: ID: 6a5aa37d8ac05703, ASIC nr: 0, Core: 79/11, ver: 20016000 Nonce 4810D39E diff 310.4 of 131072.
I (34337046) asic_result: ID: 6a5aa37d8ac05703, ASIC nr: 0, Core: 79/11, ver: 20016000 Nonce 4810D39E diff 310.4 of 131072.
... (continues ~197 times total, ~11ms apart)

Quantified across captured logs (each ~8–16 min):

Log window Firmware Freq/Volt asic_result lines Unique results Typical repeat count
A v2.4.0 400 MHz / 1.00 V ~3,480 ~304 ~197x
B v2.14.1 525 MHz / 1.15 V ~3,168 ~292 ~197x
C v2.14.1 400 MHz / 1.00 V ~3,006 ~318 ~197x
D v2.14.1 490 MHz / 1.05 V ~3,441 ~453 ~197x

The repeat count is strikingly uniform (~195–207) regardless of settings, and each burst lasts ~2.3s — it looks deterministic (result buffer re-read until overwritten?) rather than random noise.

Symptom 2 — duplicates reach mining.submit on low-diff pools

At pool difficulty 131072 (DATUM/OCEAN), sub-target duplicates are discarded locally and only occasionally duplicate an actual share: DATUM client stats showed e.g. 40 accepted / 302 rejected and 47 accepted / 70 rejected (rejects in exact multiples of 131072 — i.e., duplicate submissions of valid shares). When the device failed over to solo.ckpool (low vardiff), each valid share was followed by ~200 identical submits, each rejected Duplicate — effectively spamming the pool.

Symptom 3 — serial checksum/preamble errors with stuttered bytes

Roughly 8–11 per 10-minute window, all settings:

E (34186656) common: Checksum failed on response
I (34186662) common: aa 55 90 09 55 90 09 7b 93 02 fe

Note the repeated fragment 55 90 09 within one response — byte-level stutter on the wire.

E (34268550) common: Preamble mismatch: got 0x559f, expected 0xaa55
E (34506204) common: Preamble mismatch: got 0xaa8f, expected 0xaa55

Symptom 4 — power-correlated I2C failures (possibly related)

  • At 525 MHz / 1.15 V: repeated i2c_bitaxe: FATAL: [EMC2101] (0x4c) failed all 3 retries, EMC2101: Failed to read fan speed LSB: ESP_ERR_TIMEOUT
  • At 490 MHz / 1.05 V: intermittent TPS546: Could not read VIN + i2c_bitaxe: FATAL
  • At 400 MHz / 1.00 V: no I2C errors observed

The UART duplication/checksum issue however is identical at all three profiles, so it does not appear power-marginal in the same way.

Side effects observed

  • Dashboard hashrate wildly inflated shortly after boot (e.g., 298 TH/s displayed, 21% "error" rate) — consistent with duplicated results being counted
  • Log spam makes real events hard to see
  • Duplicate-submit behaviour risks pool-side throttling/bans on low-diff pools

Ruled out

  • Firmware version (identical on v2.4.0 and v2.14.1, OTA)
  • Frequency/voltage (400/1.00, 490/1.05, 525/1.15 — duplication unchanged)
  • Cold power cycles (full unplug) — no change
  • Settings reset (post-OTA defaults) — no change
  • PSU rating (certified 5V/6A/30W unit; connector seated; no brownouts/restarts)
  • WiFi (−35 dBm; issue is on the ASIC serial side, pre-network)

Questions

  1. Is this a known errata for early Gamma 601 boards / BM1370 serial comms?
  2. Is the uniform ~197x / ~2.3s repeat consistent with the result FIFO being re-read until the next result overwrites it (missing read-acknowledge)?
  3. Should duplicate nonces be filtered before mining.submit as a mitigation, to protect pools from duplicate spam when share diff is low?

Full log captures (8 windows across all the above configurations) available on request — happy to run any diagnostics or test builds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions