Interestingly I thought I had messed this up because suddenly all my ANS.G.LED reads were coming back 27, but turns out I had a different Ansible firmware image loaded. This is maybe straying into a development question for another thread, but what’s odd is that I do initialize this value before the reads:
d[0] = 0;
tele_ii_rx(II_KR_ADDR, d, 1);
tele_ii_rx(II_MP_ADDR, d, 1);
tele_ii_rx(ES, d, 1);
cs_push(cs, d[0]);
So what I don’t quite understand is why tele_ii_rx is reading 0x1b from one or more of these addresses when nothing there should be responding to the message I sent. The command bytes I chose but might not be the best long-term are:
#define II_GRID_KEY 16
#define II_GRID_LED 17
#define II_ARC_ENC 24
#define II_ARC_LED 25
so I don’t think there should be any collisions. Not clear to me if this is at the protocol level, a quirk of the driver stack, or something else I’m missing.
Unrelated: should Arc rings be numbered 1-4 for ANS.A ops instead of 0-3? Not sure what’s conventional with Arc – Grid ops are zero-indexed so I stuck with that, but TT/Telex (and Lua
) start at 1.