Der Tipp ist schon sehr gut.
Allerdings werden die Sysex Daten für meinen Bootloader anders aufbereitet.
Es werden dort nur Nibbles ( 4Bit ) übertragen.
Das von Dir vorgeschlagene Programm schiebt die empfangenen Bytes je um ein Bit weiter.
Da ich den Bootloader im Controller ja weiter benutzen möchte funktioniert das so nicht.
OK, Ich hab mal versucht nachzuvollziehen, was da gemacht wird.
Der Intel Hex Code wird in 2 Nibbles zerpflückt und dann als 256 Bytes übertragen.
Wobei nur das Low Byte relevant ist.
Also 128 Bytes des Hex Codes.
0xF0 ist das Midi Start of sysex Byte.
Als Header wird jedem Paket 0xF0 0x29 0x47 0x41 0x4C 0x00 0x00 0x7E 0x00 vorangestellt.
Am Ende eines Pakets kommt eine 2 Byte mit wieder nur den Low Nibbles Prüfsumme und dann das MiDi End of Sysex Byte 0xF7.
Lesezeichen