Okay, I’ve created a test that shows at least some of the issues.
Here’s the code: Test.java (5.4 KB)
Each test colors in all the buttons, both the “pads” (the center 8x16) and the surrounding buttons. The test has two parameters, the “delay” (milliseconds), which I wait after every single button is illuminated, and the “start delay”, which is a longer pause before I do a full round of coloring. Both can make a difference. Each pair of tests with the same delay is preceded by an initialize() (turn off all buttons) and a 1sec pause.
Each test run consists of 8 tests, with delay of [0, 0, 5, 5, 10, 10, 15, 15]. I do a test run with a start delay of 0, and a start delay of 1000. so it’s easier to see what’s going on, the tests are colored, in order: red, orange, yellow, green, blue, magenta, white, gray.
In the code, the setButton() and setPad() function calls just send the appropriate MIDI notes to the controller. Log.delay() is just a call to Thread.sleep(); if delay=0, sleep isn’t called at all.
Here’s a video:
On the first set, with start delay=0, we don’t even see the first 4 tests (red, orange, yellow, green; delay=0 and delay=5) at all. The first thing we see is blue. The last 4 (blue, magenta, white, gray) all work fine, with a few stuck buttons.
In the second set, we do see red and yellow, but no orange or green. Red and yellow are not fully cleared. The rest work fine, with some stuck buttons.
There are some other combos to test, but this is a start. If you want me to compile a copy so you can run it yourself, I can do that, but we’ll need to adapt it for whatever device you’ll run against.