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
- Is this a known errata for early Gamma 601 boards / BM1370 serial comms?
- Is the uniform ~197x / ~2.3s repeat consistent with the result FIFO being re-read until the next result overwrites it (missing read-acknowledge)?
- 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.
Summary
On my Bitaxe Gamma 601, nearly every
asic_resultis 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: periodicChecksum failed on responseandPreamble mismatcherrors 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 reachmining.submitand produce massDuplicaterejects.Hardware / environment
Symptom 1 — duplicate ASIC results (~200x per unique result)
Example (v2.14.1, 490 MHz / 1.05 V):
Quantified across captured logs (each ~8–16 min):
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:
Note the repeated fragment
55 90 09within one response — byte-level stutter on the wire.Symptom 4 — power-correlated I2C failures (possibly related)
i2c_bitaxe: FATAL: [EMC2101] (0x4c) failed all 3 retries,EMC2101: Failed to read fan speed LSB: ESP_ERR_TIMEOUTTPS546: Could not read VIN+i2c_bitaxe: FATALThe 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
Ruled out
Questions
mining.submitas 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.