Thank you very much for the videos @theelectricyouth , this is quite bizarre. Moving this discussion over here since this seems like a broader Ansible problem rather than being Kria specific. I’m combing over the code today to try and spot anything that could account for this. I have uploaded a new version 141ab03 which contains probably just a couple minor bug fixes from the version you’re on, but the nature of weird glitches like this on firmware is often that they’re caused or exacerbated by unrelated changes, and I have yet to encounter this behavior.
Looking for previous reports of crashes I found this post, which sounds like possibly something similar occurring in 1.6.1? Since you’ve hit this 3 times while beta testing and not before it kinda seems like something has made it happen more often, I’ll be paying special attention to all changes from 1.6.1 to the present. I’m also going to try using ANS.G ops to simulate a bunch of random grid interactions looking for crashes, though it sounds like this actually typically occurs on its own, so the glitch must be something the app causes on its own when just operating normally.
- It seems you get no response to grid keys at all, for any app, but the grid is still refreshing LEDs. After you re-plugged the grid, your video shows no keys lighting, but the app is still running – you get pitches changing, just no gates. You said that after 20-30 seconds the grid display appears again? After that, do the keys respond like normal? Or is the grid still just showing the display without accepting any input? All this seems to me to speak to something going haywire with Ansible/Grid communication, like polling for key presses is not working.
- In the videos where you change apps, it looks like changing to Meadowphysics changes the trigger outputs, but they’re still not firing when they should, is that correct? And that you only tap the mode key once to cycle Kria -> MP or MP -> ES, but you tap it 3 times to cycle ES -> Kria? Of course none of these should change apps, you should need a long-press for that, so this seems like something going wrong with the timer for the front key.
- That clock display is wild! I can’t see how the clock position in the top row would run backwards like that, the counter for that only ever increases. This seems like it has to mean the clock handler is getting called way more frequently than it ever should be, like faster than the LED refresh handler for the grid. But the grid display and the CV outputs seem to be advancing normally, and those should be driven by this clock timer as well.
All taken together this seems to me like it indicates something going wrong with the software timers. Like their state suddenly gets corrupted during normal operation.
- The clock timer is possibly misbehaving, causing backwards/random looking clock positions on the clock page. However the clock does appear to be running based on the behavior of Kria and Meadowphysics.
- The mode key long-press timer is misbehaving, so you always get a long press, but from Earthsea this is not registering – possibly because Earthsea uses more timers for managing pattern playback etc.
- The DAC update timer and Grid refresh timer seem to be working correctly, since the CV outputs are changing and the grid is being redrawn.
- The Grid input polling timer is possibly misbehaving, or possibly has been disabled entirely, since all apps appear to be unresponsive to grid input.
- The auxiliary timers may be misbehaving, because Kria does not turn off notes. It appears that the timer used to blink the bottom-left track select keys when a trigger fires is also not working.
Here’s a video of the random Grid interactions because I think it’s cool:
The Teletype script here is:
# M
L 1 3: $ I
# I
M 500
# 1
I RRAND 0 15; J RRAND 0 7
ANS.G I J 1
K % + I RRAND 0 15 16
DEL 1000: ANS.G.P K J
# 2
I RRAND 0 15; J RRAND 0 7
ANS.G.P I J
# 3
EVERY 2: BREAK
I RRAND 0 15; J RRAND 0 7
ANS.G I J 1
K % + I RRAND 0 15 16
DEL 1000: ANS.G.P K J
So just doing a bunch of random button presses and 2-key gestures anywhere on the grid with some staggered timing.
Update – I ran this for a couple hours, played with it while it was doing this, cranked up the metro rate, read the code a bunch. I did see one complete freeze of both Ansible and TT when I cranked the metro rate up further (~100 I think?) which I’m inclined to guess was I2C flooding, it didn’t look at all like the videos but more like what you’ll see when running TT remote ops with a bad I2C bus connection. I have read a couple times over everything I could think of timer related and have seen nothing wrong, I’m about to start directly corrupting timer memory to see if it acts like this, but I had a thought – are you powering the Grid directly from Ansible? I have always powered the Grid with an Offworld-1 and an (allegedly) 2A USB power adapter. If you are powering the Grid off Ansible directly, what is the power budget of your rack like? Seems like a long shot, and this still smells like a software issue to me, I’m just trying to figure out any setup differences that could make this more likely to appear. I’ll retry some experiments where I power the Grid off Ansible, might have to unrack some other stuff.