For the software use the MocoLufa boot loader and you are able to program the Arduino again without needing to flash the boot loader. This is what the ON/OFF switch is for. READ THE MocoLUFA instructions on the link. And as a bonus the Arduino shows up and work as a normal Native USB MIDI device without the need for a emulator such as hairless MIDI etc:
Linux and macOS:
https://moco-lufa-web-client.herokuapp.com/
https://github.com/qmk/qmk_toolbox/releases
Windows:
https://moco-lufa-web-client.herokuapp.com/
https://github.com/qmk/qmk_toolbox/releases
https://github.com/tttapa/Control-Surface/releases
https://github.com/arduino-libraries/MIDIUSB/releases
Thanks to the following people who have contributed to this project:
If you want to contact me you can reach me at vuha.hau@hyper.vn.