Hello there,
I’m trying to reconstruct the firmware that runs on a digitakt from it’s .syx update file.
The update file seems to follow the sysex format as described here and there (Thanks for the authors and their amazing work + kudos for writing documentation !)
A few fields seems to mismatch from what is described above. Most notably the 4 bytes before the End Of Message byte (0xF7) doesn’t seem to match LENGTH followed by CRC.
The message header seems to match fairly well with what was previously reverse engineered : Model ID for the digitakt is 0x0A.
The last byte in the header seem to be a counter, maybe indications of a “fragmentation index” i.e just saying that current block is n°98 and that it should thus be placed inbetween 97 and 99.
So far I’ve tried to decode each block, using the code from the digitools library and concatenate them to see if I can extract any meaningfull.
It seems to be the right way since I can see meaningfull strings apearing and having them not necessarilly all cut up and everything.
The issue I’m facing though is that this doesn’t seem to be enough to get everything. When I try to disassemble code in the binary produced I can clearly see that the extraction isn’t fully working (cut up functions, meaningless operations etc).
Does anyone around here know wether someone attempted this before ? Or does anyone have any resources / code / projects that could be usefull for this task ?
Cheers
Also related links for anyone comming by this thread and want’s to read