It's my second time flashing bitaxe-raw, the first time I had an issue with the app descriptor not found running the main branch but an LLM helped me workaround it by creating a C file and making some changes to the code which I unfortunately discarded. That version is working well on my first BitAxe, but I got a new BitAxe and I can't get it to work with bitaxe-raw.
▪ RUST_LOG=mujina_miner=trace cargo run
Compiling mujina-miner v0.1.0 (<path to>/mujina/mujina-miner)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.55s
Running `target/debug/mujina-minerd`
16:42:07 INFO daemon: Using dummy job source (set MUJINA_POOL_URL to use Stratum v1)
16:42:07 INFO daemon: Started.
16:42:07 INFO daemon: For debugging, set RUST_LOG=mujina_miner=debug or trace.
16:42:07 DEBUG job_source::dummy: Emitting initial job
job_id=dummy-0
16:42:07 DEBUG scheduler: Source registered
source_id=DefaultKey(1v1), name=dummy
16:42:07 DEBUG scheduler: UpdateJob received
source=dummy, job_id=dummy-0
16:42:07 DEBUG scheduler: No threads yet, job cached for later
source=dummy
16:42:07 INFO api::server: API server listening.
url=http://127.0.0.1:7785
16:42:07 INFO backplane: Hash board connected via USB.
board=Bitaxe Gamma, vid=c0de, pid=cafe, manufacturer=OSMU, product=Bitaxe, serial=819c1976
16:42:07 DEBUG board::bitaxe: Opening Bitaxe Gamma serial ports
serial=819c1976, control=/dev/ttyACM0, data=/dev/ttyACM1
16:42:07 TRACE board::bitaxe: Holding ASIC in reset during power initialization
16:42:07 DEBUG mgmt_protocol::bitaxe_raw::gpio: GPIO write
pin=0, value=Low
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=0, page=GPIO, cmd=0x00, data=00, frame=07 00 00 00 06 00 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=0, status=OK, data=00, frame=01 00 00 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=1, page=I2C, cmd=0x10, data=a0 86 01 00, frame=0a 00 01 00 05 10 a0 86 01 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=1, status=OK, data=a0 86 01 00, frame=04 00 01 a0 86 01 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=2, page=I2C, cmd=0x40, data=4c fe 01, frame=09 00 02 00 05 40 4c fe 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=2, status=OK, data=5d, frame=01 00 02 5d
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=3, page=I2C, cmd=0x40, data=4c fd 01, frame=09 00 03 00 05 40 4c fd 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=3, status=OK, data=28, frame=01 00 03 28
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=4, page=I2C, cmd=0x40, data=4c ff 01, frame=09 00 04 00 05 40 4c ff 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=4, status=OK, data=01, frame=01 00 04 01
16:42:07 DEBUG peripheral::emc2101: Detected EMC2101 variant
mfg_id=0x5d, product_id=0x28, revision=0x01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=5, page=I2C, cmd=0x40, data=4c 03 01, frame=09 00 05 00 05 40 4c 03 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=5, status=OK, data=00, frame=01 00 05 00
16:42:07 TRACE peripheral::emc2101: Current CONFIG register: 0x00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=6, page=I2C, cmd=0x20, data=4c 03 04, frame=09 00 06 00 05 20 4c 03 04
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=6, status=OK, data=02, frame=01 00 06 02
16:42:07 TRACE peripheral::emc2101: Updated CONFIG register to: 0x04
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=7, page=I2C, cmd=0x20, data=4c 4a 23, frame=09 00 07 00 05 20 4c 4a 23
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=7, status=OK, data=02, frame=01 00 07 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=8, page=I2C, cmd=0x20, data=4c 4c 3f, frame=09 00 08 00 05 20 4c 4c 3f
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=8, status=OK, data=02, frame=01 00 08 02
16:42:07 DEBUG board::bitaxe: Fan speed set to 100%
16:42:07 DEBUG peripheral::tps546: Initializing TPS546D24A power regulator
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=9, page=I2C, cmd=0x40, data=24 ad 07, frame=09 00 09 00 05 40 24 ad 07
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=9, status=OK, data=06 54 49 54 6d 24 62, frame=07 00 09 06 54 49 54 6d 24 62
16:42:07 DEBUG peripheral::tps546: Device ID: 54 49 54 6D 24 62
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=10, page=I2C, cmd=0x20, data=24 01 00, frame=09 00 0a 00 05 20 24 01 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=10, status=OK, data=02, frame=01 00 0a 02
16:42:07 DEBUG peripheral::tps546: Power output turned off
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=11, page=I2C, cmd=0x20, data=24 02 1f, frame=09 00 0b 00 05 20 24 02 1f
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=11, status=OK, data=02, frame=01 00 0b 02
16:42:07 DEBUG peripheral::tps546: ON_OFF_CONFIG set to 0x1F (PowerUp from CONTROL, OPERATION cmd enabled, CONTROL pin present, Active high, Turn-off delay enabled)
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=12, page=I2C, cmd=0x40, data=24 20 01, frame=09 00 0c 00 05 40 24 20 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=12, status=OK, data=97, frame=01 00 0c 97
16:42:07 DEBUG peripheral::tps546: VOUT_MODE: 0x97
16:42:07 TRACE peripheral::tps546: ---Writing new config values to TPS546---
16:42:07 TRACE peripheral::tps546: Setting PHASE: 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=13, page=I2C, cmd=0x20, data=24 04 00, frame=09 00 0d 00 05 20 24 04 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=13, status=OK, data=02, frame=01 00 0d 02
16:42:07 TRACE peripheral::tps546: Setting FREQUENCY: 650kHz
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=14, page=I2C, cmd=0x20, data=24 33 8a 02, frame=0a 00 0e 00 05 20 24 33 8a 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=14, status=OK, data=03, frame=01 00 0e 03
16:42:07 TRACE peripheral::tps546: Setting VIN_ON: 4.80V
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=15, page=I2C, cmd=0x20, data=24 35 66 ca, frame=0a 00 0f 00 05 20 24 35 66 ca
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=15, status=OK, data=03, frame=01 00 0f 03
16:42:07 TRACE peripheral::tps546: Setting VIN_OFF: 4.50V
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=16, page=I2C, cmd=0x20, data=24 36 40 ca, frame=0a 00 10 00 05 20 24 36 40 ca
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=16, status=OK, data=03, frame=01 00 10 03
16:42:07 TRACE peripheral::tps546: Setting VIN_OV_FAULT_LIMIT: 6.50V
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=17, page=I2C, cmd=0x20, data=24 55 40 cb, frame=0a 00 11 00 05 20 24 55 40 cb
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=17, status=OK, data=03, frame=01 00 11 03
16:42:07 TRACE peripheral::tps546: Setting VIN_OV_FAULT_RESPONSE: 0xB7
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=18, page=I2C, cmd=0x20, data=24 56 b7, frame=09 00 12 00 05 20 24 56 b7
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=18, status=OK, data=02, frame=01 00 12 02
16:42:07 TRACE peripheral::tps546: Setting VOUT SCALE: 0.25
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=19, page=I2C, cmd=0x20, data=24 29 00 aa, frame=0a 00 13 00 05 20 24 29 00 aa
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=19, status=OK, data=03, frame=01 00 13 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_COMMAND: 1.15V
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=20, page=I2C, cmd=0x40, data=24 20 01, frame=09 00 14 00 05 40 24 20 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=20, status=OK, data=97, frame=01 00 14 97
16:42:07 DEBUG peripheral::tps546: Cached VOUT_MODE: 0x97
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=21, page=I2C, cmd=0x20, data=24 21 4d 02, frame=0a 00 15 00 05 20 24 21 4d 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=21, status=OK, data=03, frame=01 00 15 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_MAX: 2.00V
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=22, page=I2C, cmd=0x20, data=24 24 00 04, frame=0a 00 16 00 05 20 24 24 00 04
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=22, status=OK, data=03, frame=01 00 16 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_MIN: 1.00V
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=23, page=I2C, cmd=0x20, data=24 2b 00 02, frame=0a 00 17 00 05 20 24 2b 00 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=23, status=OK, data=03, frame=01 00 17 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_OV_FAULT_LIMIT: 1.25
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=24, page=I2C, cmd=0x20, data=24 40 80 02, frame=0a 00 18 00 05 20 24 40 80 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=24, status=OK, data=03, frame=01 00 18 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_OV_WARN_LIMIT: 1.16
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=25, page=I2C, cmd=0x20, data=24 42 52 02, frame=0a 00 19 00 05 20 24 42 52 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=25, status=OK, data=03, frame=01 00 19 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_MARGIN_HIGH: 1.10
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=26, page=I2C, cmd=0x20, data=24 25 33 02, frame=0a 00 1a 00 05 20 24 25 33 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=26, status=OK, data=03, frame=01 00 1a 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_MARGIN_LOW: 0.90
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=27, page=I2C, cmd=0x20, data=24 26 cd 01, frame=0a 00 1b 00 05 20 24 26 cd 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=27, status=OK, data=03, frame=01 00 1b 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_UV_WARN_LIMIT: 0.90
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=28, page=I2C, cmd=0x20, data=24 43 cd 01, frame=0a 00 1c 00 05 20 24 43 cd 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=28, status=OK, data=03, frame=01 00 1c 03
16:42:07 TRACE peripheral::tps546: Setting VOUT_UV_FAULT_LIMIT: 0.75
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=29, page=I2C, cmd=0x20, data=24 44 80 01, frame=0a 00 1d 00 05 20 24 44 80 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=29, status=OK, data=03, frame=01 00 1d 03
16:42:07 TRACE peripheral::tps546: ----- IOUT
16:42:07 TRACE peripheral::tps546: Setting IOUT_OC_WARN_LIMIT: 25.00A
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=30, page=I2C, cmd=0x20, data=24 4a 20 db, frame=0a 00 1e 00 05 20 24 4a 20 db
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=30, status=OK, data=03, frame=01 00 1e 03
16:42:07 TRACE peripheral::tps546: Setting IOUT_OC_FAULT_LIMIT: 30.00A
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=31, page=I2C, cmd=0x20, data=24 46 c0 db, frame=0a 00 1f 00 05 20 24 46 c0 db
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=31, status=OK, data=03, frame=01 00 1f 03
16:42:07 TRACE peripheral::tps546: Setting IOUT_OC_FAULT_RESPONSE: 0xC0
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=32, page=I2C, cmd=0x20, data=24 47 c0, frame=09 00 20 00 05 20 24 47 c0
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=32, status=OK, data=02, frame=01 00 20 02
16:42:07 TRACE peripheral::tps546: ----- TEMPERATURE
16:42:07 TRACE peripheral::tps546: Setting OT_WARN_LIMIT: 105 degC
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=33, page=I2C, cmd=0x20, data=24 51 48 eb, frame=0a 00 21 00 05 20 24 51 48 eb
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=33, status=OK, data=03, frame=01 00 21 03
16:42:07 TRACE peripheral::tps546: Setting OT_FAULT_LIMIT: 145 degC
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=34, page=I2C, cmd=0x20, data=24 4f 44 f2, frame=0a 00 22 00 05 20 24 4f 44 f2
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=34, status=OK, data=03, frame=01 00 22 03
16:42:07 TRACE peripheral::tps546: Setting OT_FAULT_RESPONSE: 0xFF
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=35, page=I2C, cmd=0x20, data=24 50 ff, frame=09 00 23 00 05 20 24 50 ff
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=35, status=OK, data=02, frame=01 00 23 02
16:42:07 TRACE peripheral::tps546: ----- TIMING
16:42:07 TRACE peripheral::tps546: Setting TON_DELAY: 0ms
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=36, page=I2C, cmd=0x20, data=24 60 00 00, frame=0a 00 24 00 05 20 24 60 00 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=36, status=OK, data=03, frame=01 00 24 03
16:42:07 TRACE peripheral::tps546: Setting TON_RISE: 3ms
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=37, page=I2C, cmd=0x20, data=24 61 00 c3, frame=0a 00 25 00 05 20 24 61 00 c3
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=37, status=OK, data=03, frame=01 00 25 03
16:42:07 TRACE peripheral::tps546: Setting TON_MAX_FAULT_LIMIT: 0ms
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=38, page=I2C, cmd=0x20, data=24 62 00 00, frame=0a 00 26 00 05 20 24 62 00 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=38, status=OK, data=03, frame=01 00 26 03
16:42:07 TRACE peripheral::tps546: Setting TON_MAX_FAULT_RESPONSE: 0x3B
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=39, page=I2C, cmd=0x20, data=24 63 3b, frame=09 00 27 00 05 20 24 63 3b
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=39, status=OK, data=02, frame=01 00 27 02
16:42:07 TRACE peripheral::tps546: Setting TOFF_DELAY: 0ms
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=40, page=I2C, cmd=0x20, data=24 64 00 00, frame=0a 00 28 00 05 20 24 64 00 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=40, status=OK, data=03, frame=01 00 28 03
16:42:07 TRACE peripheral::tps546: Setting TOFF_FALL: 0ms
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=41, page=I2C, cmd=0x20, data=24 65 00 00, frame=0a 00 29 00 05 20 24 65 00 00
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=41, status=OK, data=03, frame=01 00 29 03
16:42:07 TRACE peripheral::tps546: Setting PIN_DETECT_OVERRIDE: 0xFFFF
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=42, page=I2C, cmd=0x20, data=24 ee ff ff, frame=0a 00 2a 00 05 20 24 ee ff ff
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=42, status=OK, data=03, frame=01 00 2a 03
16:42:07 DEBUG peripheral::tps546: TPS546 configuration written successfully
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=43, page=I2C, cmd=0x40, data=24 79 02, frame=09 00 2b 00 05 40 24 79 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=43, status=OK, data=40 08, frame=02 00 2b 40 08
16:42:07 DEBUG peripheral::tps546: STATUS_WORD after config: 0x0840 (PGOOD, OFF)
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=44, page=I2C, cmd=0x20, data=24 21 4d 02, frame=0a 00 2c 00 05 20 24 21 4d 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=44, status=OK, data=03, frame=01 00 2c 03
16:42:07 DEBUG peripheral::tps546: Output voltage set to 1.15V
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=45, page=I2C, cmd=0x20, data=24 03, frame=08 00 2d 00 05 20 24 03
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=45, status=OK, data=01, frame=01 00 2d 01
16:42:07 DEBUG peripheral::tps546: Cleared faults before turn-on
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=46, page=I2C, cmd=0x20, data=24 01 80, frame=09 00 2e 00 05 20 24 01 80
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=46, status=OK, data=02, frame=01 00 2e 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=47, page=I2C, cmd=0x40, data=24 01 01, frame=09 00 2f 00 05 40 24 01 01
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=47, status=OK, data=80, frame=01 00 2f 80
16:42:07 DEBUG peripheral::tps546: Power turned ON successfully, OPERATION = 0x80
16:42:07 TRACE mgmt_protocol::bitaxe_raw: TX control
id=48, page=I2C, cmd=0x40, data=24 79 02, frame=09 00 30 00 05 40 24 79 02
16:42:07 TRACE mgmt_protocol::bitaxe_raw: RX control
id=48, status=OK, data=00 08, frame=02 00 30 00 08
16:42:07 DEBUG peripheral::tps546: Power is ON, STATUS_WORD = 0x0800
16:42:07 DEBUG board::bitaxe: Core voltage set to 1.15V
16:42:08 TRACE mgmt_protocol::bitaxe_raw: TX control
id=49, page=I2C, cmd=0x40, data=24 8b 02, frame=09 00 31 00 05 40 24 8b 02
16:42:09 WARN board::bitaxe: Failed to read core voltage: I2C error: I2C error: WriteRead failed: Control command timeout
16:42:09 DEBUG peripheral::tps546: === TPS546D24A Configuration Dump ===
16:42:09 DEBUG peripheral::tps546: --- Voltage Configuration ---
16:42:09 TRACE mgmt_protocol::bitaxe_raw: TX control
id=50, page=I2C, cmd=0x40, data=24 35 02, frame=09 00 32 00 05 40 24 35 02
16:42:09 WARN board::bitaxe: Failed to dump TPS546 configuration: I2C error: I2C error: WriteRead failed: Unknown error code: 0x49
16:42:09 DEBUG board::bitaxe: Releasing ASIC from reset for discovery
16:42:09 DEBUG board::bitaxe: De-asserting ASIC nRST (GPIO 0 = high)
16:42:09 DEBUG mgmt_protocol::bitaxe_raw::gpio: GPIO write
pin=0, value=High
16:42:09 TRACE mgmt_protocol::bitaxe_raw: TX control
id=51, page=GPIO, cmd=0x00, data=01, frame=07 00 33 00 06 00 01
16:42:09 ERROR backplane: Failed to create board
board=Bitaxe Gamma, error=Hardware error: Failed to initialize board: Hardware control error: Failed to de-assert reset: I/O error: Control stream closed
A different error on the second execution. In some of my attempts with different branches, downgraded espflash, cargo flash, and trying to manually introduce the app descriptor on the main branch, it resulted in failure to flash due to app descriptor missing or it succeeded and resulted in the errors above. In one attempt I also saw a "packet too large" along the "control stream closed".
If anyone knows a deterministic path to building and flashing this so I can run Mujina with the BitAxe please share.
Hi!
It's my second time flashing bitaxe-raw, the first time I had an issue with the app descriptor not found running the main branch but an LLM helped me workaround it by creating a C file and making some changes to the code which I unfortunately discarded. That version is working well on my first BitAxe, but I got a new BitAxe and I can't get it to work with bitaxe-raw.
I'm running branch
esp-hal-updatewhich doesn't fail with the app descriptor missing.Tooling
cargo & rustc 1.92.0-nightlyespflash 4.3.0Flashing
Then I check the serial ports, press and release RESET on the BitAxe:
Looks promising, proceed to run Mujina:
Something is definitely wrong, run again:
▪ RUST_LOG=mujina_miner=trace cargo run Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s Running `target/debug/mujina-minerd` 16:42:59 INFO daemon: Using dummy job source (set MUJINA_POOL_URL to use Stratum v1) 16:42:59 INFO daemon: Started. 16:42:59 INFO daemon: For debugging, set RUST_LOG=mujina_miner=debug or trace. 16:42:59 DEBUG job_source::dummy: Emitting initial job job_id=dummy-0 16:42:59 DEBUG scheduler: Source registered source_id=DefaultKey(1v1), name=dummy 16:42:59 DEBUG scheduler: UpdateJob received source=dummy, job_id=dummy-0 16:42:59 DEBUG scheduler: No threads yet, job cached for later source=dummy 16:42:59 INFO api::server: API server listening. url=http://127.0.0.1:7785 16:42:59 INFO backplane: Hash board connected via USB. board=Bitaxe Gamma, vid=c0de, pid=cafe, manufacturer=OSMU, product=Bitaxe, serial=819c1976 16:42:59 DEBUG board::bitaxe: Opening Bitaxe Gamma serial ports serial=819c1976, control=/dev/ttyACM0, data=/dev/ttyACM1 16:42:59 TRACE board::bitaxe: Holding ASIC in reset during power initialization 16:42:59 DEBUG mgmt_protocol::bitaxe_raw::gpio: GPIO write pin=0, value=Low 16:42:59 TRACE mgmt_protocol::bitaxe_raw: TX control id=0, page=GPIO, cmd=0x00, data=00, frame=07 00 00 00 06 00 00 16:42:59 TRACE mgmt_protocol::bitaxe_raw: RX control id=0, status=OK, data=00, frame=01 00 00 00 16:42:59 TRACE mgmt_protocol::bitaxe_raw: TX control id=1, page=I2C, cmd=0x10, data=a0 86 01 00, frame=0a 00 01 00 05 10 a0 86 01 00 16:42:59 TRACE mgmt_protocol::bitaxe_raw: RX control id=1, status=OK, data=a0 86 01 00, frame=04 00 01 a0 86 01 00 16:42:59 TRACE mgmt_protocol::bitaxe_raw: TX control id=2, page=I2C, cmd=0x40, data=4c fe 01, frame=09 00 02 00 05 40 4c fe 01 16:43:00 WARN board::bitaxe: Failed to initialize EMC2101 fan controller: I2C error: I2C error: WriteRead failed: Control command timeout 16:43:00 DEBUG peripheral::tps546: Initializing TPS546D24A power regulator 16:43:00 TRACE mgmt_protocol::bitaxe_raw: TX control id=3, page=I2C, cmd=0x40, data=24 ad 07, frame=09 00 03 00 05 40 24 ad 07 16:43:00 ERROR board::bitaxe: Failed to initialize TPS546D24A power controller: I2C error: I2C error: WriteRead failed: Unknown error code: 0x49 16:43:00 ERROR backplane: Failed to create board board=Bitaxe Gamma, error=Hardware error: Failed to initialize board: Board initialization failed: Power controller init failed: I2C error: I2C error: WriteRead failed: Unknown error code: 0x49A different error on the second execution. In some of my attempts with different branches, downgraded espflash, cargo flash, and trying to manually introduce the app descriptor on the main branch, it resulted in failure to flash due to app descriptor missing or it succeeded and resulted in the errors above. In one attempt I also saw a "packet too large" along the "control stream closed".
If anyone knows a deterministic path to building and flashing this so I can run Mujina with the BitAxe please share.