Can't send firmware update to MidiPal using .syx file
  • As I’m able to compile the firmware for the MidiPal I’m trying to update it using Elektrons C6.

    The MidiPal I have is an already assembled device from the actual run.
    I have a HEX file which i converted to a syx file by:

    python tools\hex2sysex\hex2sysex.py build\midipal\midipal.hex —syx —device_id 3 —output_file build\MidiPal_FW_new.syx

    So i already took into account the ID 3 for the MidiPal which is different than the one for the Shruthi-1. Anyway, I’m not able to convince the MidiPal to accept that file. I configured C6 in the way it has been described (250 ms delay), set the ports, loaded the file, switched on the MP with a pressed button, LEDs started blinking, red LED stayed on and then I transmitted the file in C6.
    No blinking LED, file was transmitted but nothing happens on the MidiPal.
    The first few bytes of every block in the .syx file look like:
    F0 00 21 02 00 03 7E 00
    For me that looks fine (even if I’m note sure if 7E is the correct command but I think so as it has been generated by the converter).

    Is there anybody who already has updated one of the new, assembled units? Does anybody know what am I doing wrong here?

  • What is the value of the page_size argument?

  • It’s the default size, set by the python script: 128. I did not explicitly define it in the command line. Should I? Or do i have to use a different value?

  • Yes you should, each device/chip needs a specific buffer size which corresponds to the size of flash pages on the MCU – see how it is done in the makefile.

  • O.K., of course you are right. Should have looked at it first. The size has to be 64, not 128. So i changed it but unfortunately did not have any success.
    After half an hour i found out it’s related to my crappy ESI MIDI cable interface driver:
    So, finally i made it! Thanks a lot for your help!!