MFC-101 SysEx checksum help

Rich G.

Experienced
I'm doing some decoding of the MFC-101 SysEx file and having a bit of trouble determining how the Checksum is calculated. It doesn't appear to be the same as the AxeFx XOR calculation.

For example, the second message in a MFC-101 SysEx dump is:
F0 00 01 74 02 76 04 07 01 00 00 00 01 00 08 01 00 00 0C 06 F7

The last two bytes before the ending 0xF7 are the checksum. The value is probably 0x6C. I've tried every type of CRC-8 checksum calc HERE and none of them come up with that value (or 0xC6 for that matter). I've also tried XOR'ing the values and still no luck.

Any help with the MFC-101 sysex dump checksum calc would be much appreciated.
 
Last edited:
Sure there is a more eligant way but this is what i had used to calculate

Ignore the header and checksum...
F0 00 01 74 02 76 04 07 01 00 00 00 01 00 08 01 00 00 0C 06 F7

xor odd fields for first checksum value
xor even fields for second checksum value
04 07 01 00 00 00 01 00 08 01 00 00
4 ^1 ^0 ^1 ^8 ^0 = C
7 ^0 ^0 ^0 ^1 ^0 = 6

Cheers
 
Got it! That worked. Thank you SO much for the info. I was going batty trying to decode that checksum on my own. What made it even more interesting is that for some reason, every 0x76 message resulted in a checksum of 0x00 when XOR'ing the entire message from 0xF0 to 0xF7.

Are the MFC-101 messages documented anywhere? The AxeFX Sysex messages are pretty well documented HERE. I have the Presets I (0x67) [Name/PC/I-IA Sw/I-CC State/Custom Msg] message and the Presets II (0x70) [Switches & Exp Pedals] decoded, but I've yet to tackle the other ones which are:

0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x71, 0x74, 0x75, 0x76, 0x77

There are a few bytes in 0x67 & 0x70 that I'm unsure of as well. They don't seem to change.
 
Having trouble finding the spec doc I had put together for myself. Unfortunate as it covered firmwares 2.0 - 3.7, if I locate it will pass along... I'm only seeing my chicken scratch notes at the moment

68 = Instant Access Switches / Custom Messages
69 = Internal Control Change Settings
6A = Sets
6B = Songs
6C = RX Treansfer Maps
6D = Setup (axe fx mode, contrast, display offsets)
6E = ? Think this one is XP & Calibration
6F = Midi Channel, setups?
71 = TX Transfer Maps
74 = Firmware version
75 = Static start record
76 = Static Spacer between functions
77 = Static final record
 
Back
Top Bottom