Hello PCW,
I would like to ask for guidance regarding a firmware issue with a Mesa 7i92 + 7i76 system, and clarify the exact sequence of events.
LinuxCNC reported the following warning:
hm2/hm2_7i92.0: Warning: sserial remote device 7i76 channel 0 has old firmware that should be updated
Based on this warning, I attempted to update the Smart-Serial firmware.
At that time, I assumed that 7I76U.BIN could be used as a compatible replacement and used it to update the 7i76. This was a deliberate decision made in response to the hm2 warning, not an accidental flash.
After this, the system no longer behaves as expected.
Current status:
7i92 Ethernet communication works normally.
The Smart-Serial port responds and reports SSLBP version, channel count, and baud rate.
I reflashed with 7i92_7i76x1D.bit, followed by a full power cycle.
The W3 jumper on the 7i76 has been changed as recommended.
Attempting to rewrite 7I76R14.BIN via mesaflash produces no errors, however there is no explicit indication that a firmware rewrite actually occurred, and the observable behavior of the board does not change.
Is there any supported recovery method for a 7i76 in this condition, assuming access to a working Smart-Serial master (7i92)?
cnc@cnc:~/Desktop/UP FW7i77/sserial/utils/linuxcnc$ cd "/home/cnc/Desktop/UP FW7i77/sserial/utils/linuxcnc"
halrun -f update7i76u-eth.hal
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: 10.10.10.10: INFO: Hardware address (MAC): 00:60:1b:13:05:8a
hm2_eth: discovered 7I92
hm2/hm2_7i92.0: Low Level init 0.15
hm2/hm2_7i92.0: Smart Serial Firmware Version 43
hm2/hm2_7i92.0: num_channels = 4
hm2/hm2_7i92.0: Chan 0 baudrate = 2500000
hm2/hm2_7i92.0: Chan 0. Baudrate set to 115200
hm2/hm2_7i92.0: Chan 1 baudrate = 2500000
hm2/hm2_7i92.0: Chan 1. Baudrate set to 115200
hm2/hm2_7i92.0: Chan 2 baudrate = 2500000
hm2/hm2_7i92.0: Chan 2. Baudrate set to 115200
hm2/hm2_7i92.0: Chan 3 baudrate = 2500000
hm2/hm2_7i92.0: Chan 3. Baudrate set to 115200
Setup mode
found a 7I76
Setup mode
Looking for 8i20s, crc_addr = 192
found a
Setup mode
Looking for 8i20s, crc_addr = 242
found a
Setup mode
Looking for 8i20s, crc_addr = 292
found a
hm2/hm2_7i92.0: 34 I/O Pins used:
hm2/hm2_7i92.0: IO Pin 000 (P2-01): StepGen #0, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 001 (P2-14): StepGen #0, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 002 (P2-02): StepGen #1, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 003 (P2-15): StepGen #1, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 004 (P2-03): StepGen #2, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 005 (P2-16): StepGen #2, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 006 (P2-04): StepGen #3, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 007 (P2-17): StepGen #3, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 008 (P2-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 009 (P2-06): StepGen #4, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 010 (P2-07): Smart Serial Interface #0, pin tx0 (Output)
hm2/hm2_7i92.0: IO Pin 011 (P2-08): Smart Serial Interface #0, pin rx0 (Input)
hm2/hm2_7i92.0: IO Pin 012 (P2-09): Smart Serial Interface #0, pin tx1 (Output)
hm2/hm2_7i92.0: IO Pin 013 (P2-10): Smart Serial Interface #0, pin rx1 (Input)
hm2/hm2_7i92.0: IO Pin 014 (P2-11): Encoder #0, pin Index (Input)
hm2/hm2_7i92.0: IO Pin 015 (P2-12): Encoder #0, pin B (Input)
hm2/hm2_7i92.0: IO Pin 016 (P2-13): Encoder #0, pin A (Input)
hm2/hm2_7i92.0: IO Pin 017 (P1-01): StepGen #5, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 018 (P1-14): StepGen #5, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 019 (P1-02): StepGen #6, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 020 (P1-15): StepGen #6, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 021 (P1-03): StepGen #7, pin Direction (Output)
hm2/hm2_7i92.0: IO Pin 022 (P1-16): StepGen #7, pin Step (Output)
hm2/hm2_7i92.0: IO Pin 023 (P1-04): PWMGen #0, pin Out1 (Dir or Down) (Output)
hm2/hm2_7i92.0: IO Pin 024 (P1-17): PWMGen #0, pin Out0 (PWM or Up) (Output)
hm2/hm2_7i92.0: IO Pin 025 (P1-05): PWMGen #1, pin Out1 (Dir or Down) (Output)
hm2/hm2_7i92.0: IO Pin 026 (P1-06): PWMGen #1, pin Out0 (PWM or Up) (Output)
hm2/hm2_7i92.0: IO Pin 027 (P1-07): Smart Serial Interface #0, pin tx2 (Output)
hm2/hm2_7i92.0: IO Pin 028 (P1-08): Smart Serial Interface #0, pin rx2 (Input)
hm2/hm2_7i92.0: IO Pin 029 (P1-09): Smart Serial Interface #0, pin tx3 (Output)
hm2/hm2_7i92.0: IO Pin 030 (P1-10): Smart Serial Interface #0, pin rx3 (Input)
hm2/hm2_7i92.0: IO Pin 031 (P1-11): Encoder #1, pin Index (Input)
hm2/hm2_7i92.0: IO Pin 032 (P1-12): Encoder #1, pin B (Input)
hm2/hm2_7i92.0: IO Pin 033 (P1-13): Encoder #1, pin A (Input)
hm2/hm2_7i92.0: registered
flash command
Firmware size 0x953c
setup start: data_reg readback = 0
hm2/hm2_7i92.0: Write Size = 100, Erase Size = 800
hm2/hm2_7i92.0: Skipped Block 1
hm2/hm2_7i92.0: Skipped Block 2
hm2/hm2_7i92.0: Skipped Block 3
hm2/hm2_7i92.0: Skipped Block 4
hm2/hm2_7i92.0: Skipped Block 5
hm2/hm2_7i92.0: Skipped Block 6
hm2/hm2_7i92.0: Skipped Block 7
hm2/hm2_7i92.0: Erased block 8
hm2/hm2_7i92.0: Wrote block 8
hm2/hm2_7i92.0: Skipped Block 9
hm2/hm2_7i92.0: Erased block 10
hm2/hm2_7i92.0: Wrote block 10
hm2/hm2_7i92.0: Erased block 11
hm2/hm2_7i92.0: Wrote block 11
hm2/hm2_7i92.0: Erased block 12
hm2/hm2_7i92.0: Wrote block 12
hm2/hm2_7i92.0: Erased block 13
hm2/hm2_7i92.0: Wrote block 13
hm2/hm2_7i92.0: Erased block 14
hm2/hm2_7i92.0: Wrote block 14
hm2/hm2_7i92.0: Erased block 15
hm2/hm2_7i92.0: Wrote block 15
Error flag set after CMD Clear 00000001
hm2/hm2_7i92.0: Error in sslbp_write_byte, trying to abort
Error flag set after CMD Clear 00000001
hm2/hm2_7i92.0: Error in sslbp_read_cookie, trying to abort
hm2/hm2_7i92.0: Synch failed during block erase: aborting
Error flag set after CMD Clear 00000001
Firmware Flash Failed
setsserial: rtapi_app_main: Operation not permitted (-1)
setsserial: not loaded
<commandline>:0: exit value: 255
<commandline>:0: rmmod failed, returned -1
hm2_eth: in hm2_eth_reset
hm2_eth: HostMot2 ethernet driver unloaded
hm2: unloading
<commandline>:0: unloadrt failed
Note: Using POSIX realtime
cnc@cnc:~/Desktop/UP FW7i77/sserial/utils/linuxcnc$