==Cutter -==
Yay. Cutter was much more useful for what I wanted. Lots of functions were discovered and named with the help of LLMs. (as such, we can't take them as absolutely true, though they are likely to be mostly correct). Things discovered:
=== Diagnostic Mode - ===
Firmware checks for input (button push) in early boot. This branches into and launches diagnostic (Monitor) mode. Run Commands not yet discovered.
=== DFU Routine - ===
DFU routine and bytes compared to trigger DFU over midi. Firmware is checking for a series of bytes sent from a different machine - these are user operations not part of diagnostic branch. '''''DFU mode trigger (multi-byte pattern): AE E8 6A F7'''''
=== Show Version Routine - ===
Show version routine. Again a user operation via a different machine. The User sets a byte sequence using a button combo on a Roland mixer. It sends the bytes to the DIF-AT, and it responds by printing the DIF-AT Version number over midi, on the mixer display screen.
These operations are described below. I found them on Roland's site, and then looked for the relevant part of the firmware which checks for these bytes. '''''Send single byte 0x06 from host to device. That causes the device to: enter Show-Version handler run fcn.ShowVersionSequence() transmit the version bytes to host. return to idle mode'''''
{| class="wikitable"
|+
!Updating the DIF-AT from Standard MIDI Files
DIF-AT system software is supplied as 4 files in Standard MIDI File (SMF) format.
Tools required:
<nowiki>*</nowiki> A product with MIDI In and R-BUS connection, such as the VM-3100Pro (used in this example)
<nowiki>*</nowiki> MIDI Sequencer capable of reading and transmitting SMFs with System Exclusive messages
<nowiki>*</nowiki> MIDI Cable
<nowiki>*</nowiki> R-BUS Cable
<nowiki>*</nowiki> System Update files
HOW TO UPDATE THE SYSTEM
1) Using R-BUS cable, connect R-BUS terminal of DIF-AT to R-BUS terminal of VM-3100Pro.
2) Using MIDI cable, connect the MIDI OUT of the sequencer to the MIDI IN of the VM-3100Pro.
3) Power on the VM-3100Pro while holding the Channels 6 and 9/10 SELECT buttons.
4) CURSOR to "03:DIF-AT Update," and press ENTER.
5) Load and play the update files from the MIDI Sequencer in order.
6) The ADAT and TASCAM leds will light when the update procedure is completed.
7) Power off and on the VM-3100Pro and the DIF-AT.
VERSION CONFIRMATION
1) Using R-BUS cable, connect R-BUS terminal of DIF-AT to R-BUS terminal of VM-3100Pro.
2) Power on the VM-3100Pro while holding the Channels 6 and 9/10 SELECT buttons.
3) CURSOR to "02:DIF-AT Check," and press ENTER.
4) Press F4 to display the system version.
5) Power off and on the VM-3100Pro and the DIF-AT.
(c)1999 Roland Corporation U.S.
!
!
!
|-
|
|
|
|
|-
|
|
|
|
|-
|
|
|
|
|}
=== Firmware Update Files - ===
Also the firmware itself is still available from Roland, as midi update files. These files are sent to the DIF-AT over its RBUS midi port, from an RBUS capable device. (Although classic Roland it seems to be only ''one'' digital mixer that has the correct button sequence to do the update / show version) However they are correct in that a user would need an RBUS port to send the midi files, as the DIFAT midi port is two pins on the RBUS connector.
https://www.roland.com/us/support/by_product/dif-at/updates_drivers/ac2a8693-f923-4894-9d8d-da20af3b75ef/ (mac, sea.hqx)
https://www.roland.com/us/support/by_product/dif-at/updates_drivers/86187843-8227-4307-b9f5-246ffcc7e27f/ (windows)
I have not yet performed a Diff of my firmware and the midi updates. I would have to reconstruct them first into a full image. I think my firmware is not corrupted though at this point. I will try and send the DFU command and the payload using a python script instead:
=== DFU Python Script ===
With more help from LLM I made a DFU Update python script which first sends the (probable) DFU command, and then sends sequentially all midi files. I compared the received payload to the sent, and it is correct. I have yet to test on the device.