Most recent project has been an midi foot controller based around an Arduino/PJRC Teensy and a companion windows application to configure it.
Details and source over at github


Sysex Format
The sysex format is in this format.
====================================================
System Exclusive Configuration Messages
=====================================================
Configuration of the project is by Midi System Exclusive MEssages, the format of which are now described
The midi header counting from byte 0
0 0xF0 Start of sysex
1 0x7D indicating research/school/not a manufacturer
2 0xNN 4 Character key , the same in the arduino application
3 0xNN
4 0xNN
5 0xNN
6 0xMM A device ID, you choose identify your arduino project
7 0xMM A Command
.
. Variable number of bytes depending on message
.
. 0xF7 End of SysEx marker
The 4 character code is set in the arduino source and can be configured in the windows pedal manager (see its documentaion )
=====================================================
Request arduino send out its current configuration
=====================================================
0 0xF0 Start of sysex
1 0x7D indicating research/school/not a manufacturer
2 0xNN 4 Character key , the same in the arduino application
3 0xNN
4 0xNN
5 0xNN
6 0xMM A device ID, you choose identify your arduino project
7 0x02 Command 0x01 is send config
8 0xf0 End of SysEx marker
On receipt of correctly formatted message the Arduino should reply
0 0xF0 Start of sysex
1 0x7D indicating research/school/not a manufacturer
2 0xNN 4 Character key , the same as in the arduino application
3 0xNN
4 0xNN
5 0xNN
6 0xMM A device ID, you choose to identify your arduino project
7 0x02 indicates this is response to a "give me your configuration" request