It seems like a good idea!
You have a lot of buttons, so you might not be able to use 8 banks, but 4 should fit with no problem, depending on how much data you add with your settings.
ahahha it’s like the first times that you burn your fingers soldering something or the first time you pop a polarized capacitor
When something like this happens you can use a DIN5 midi cable making a loopback connecting the MIDI IN and MIDI OUT ports.
TROUBLESHOOTING
If by any chance, after a firmware update you don’t see your controller listed as a USB device anymore, we set a hard entry to the bootloader.
For this you’ll need a MIDI cable. Hopefully, you have one of those, and if you don’t, there is still a way to make it work:
Steps for this are:
- Unplug USB.
- Plug the MIDI OUT port to the MIDI IN port with a DIN5 MIDI cable. If you don’t have a MIDI DIN5 cable, it’ll be a little harder, but it can be done. You’d need to wire like in this picture, both pins 4 and 5 on the MIDI OUT connector to its matching pin on the MIDI IN connector.
- Plug the USB, and you should see that the status LED cycles through different colors. This indicates bootloader mode is active.
- You should see the green “KilomuxBOOT” label in the firmware loader app.
- Send the firmware to the controller.
From Kilowhat you can disable the rainbow animation.
There is a back and forth on the setup with the AUX microcontroller, in which the MAIN reports if to the AUX if the animation is ON or OFF.
Then the MAIN waits until the AUX reports the end of the animation.
If this communication doesn’t happen, then the MAIN will wait forever and ever (unless you comment the line that waits)
This all happens in the following lines in the setup:
// SERIALPRINTLN("Waiting for rainbow...");
// Initialize brigthness and power configuration
feedbackHw.InitFb();
// Wait for rainbow animation to end
while(waitingForRainbow){
delay(1);
}
And you could place your animation right after this code and use the following config check to know if rainbow is ON or OFF:
if ( config->board.rainbowOn == false ) {
// YOUR ANIMATION CODE
}
Where did you call the function?
I’d call it right before these lines almost at the end of the setup()
function:
// Print valid message
SERIALPRINTLN(F("YTX VALID CONFIG FOUND"));
SetStatusLED(STATUS_BLINK, 2, STATUS_FB_INIT);