Modding the firmware ... where to learn it?

Hello ! i’d like to ask you where i could learn how to mod a firmware, write/replace some code …
in this particular example, it would be about a midipal, but i guess it’s using the same principles as the shruti … ?

this was what i posted in the midipal section , to illustrate why i’d like to do some little mods in the code, if possible :

’ ( … ) when you record a sequence, it starts necessarly by a particular note. let’s say a “do” ( in french notation ) . when you play it back, whichever key you play, it’ll always start with a “do”, even if the key a “re” for example. i’d like to mode the code/firmware so when i play the sequence ( and then transpose it ) it would start from the key played, not the first note recorded. do you see what io mean ?

and the administrator directed me to this link but i realise it’s too hard for me to understand it and doing something about it.

thanks for your attention."


Do you have Basic programming skills? C++?
If you dont understand the Code in the GitHub Repository you probably not capable of programming?
If not its gonna be a long journey before you understand the Code whats the Stage before you can alter it…

  • first you should learn the Basics of C++
  • second you should be able to write your own programs with comparable complexitiy (Hello World wont be enough…) which means you will have to learn lots of programming concepts and how exactly MIDI works for working on the MIDIpal Firmware
  • then understand the Firmware code
  • and then after all this finally alter the Firmware.

wow … it would be too tough for me, for the benefit of just a little mod in it. too bad. i don’t know how to do then.

really C++? i thought C gives better access to the hardware i.e. pins?

C++ is (almost) a superset of C. Both have same capabilities when it comes to manipulating hardware, which is really just about writing values to some memory addresses that the chip interpret as I/O commands.

C++ has features that are convenient for organizing large project or things with many layers of abstraction - which can get in the way and cause code bloat/slowness if you abuse them - hence the bad name it got for embedded projects…

As always in programming: if you know what you are doing and how the compiler/interpreter works and reacts you can make good use of your hardware even with C++. Or Basic.

i don’t know how it works, i should give up unfortunately.

Negative. You should learn how to do it. Even if you finally will not be able to tweak the MIDIpals Firmware you can learn loads from it.

i agree but unfortunately i couldn’t have the time for this.

Yups. I havent time to program anything, too - but no excuses.

Try not. Do or do not. There is no Try.

yes, i realise can’t try, so i do not.
the administrator Olivier proposed to me to do this mod for me, for some money, i’m waiting for some news.

so the master can be bribed :wink:

I added new software features to my Shruthi-1, you just dig in, look through all the files, see how things are organized. It helps that the Shruthi-1 code is organized very logically and coded really well. It also helps that I have a software development background. :slight_smile: The hardest part was figuring out how to get it to compile and load into the processor. I struggled with using Mac and ended up using VMWare Windows XP on the Mac for coding and uploading. Once you have that figured out it’s the same every time you need to compile and load.