Hi TK,
This is two independent issues I’m having, but there may be a single solution for the two of them.
The first is that when I was designing the LED displays for my front panel, I misinterpreted the config file for the 7-segment displays example (code and diagram) and thought the “sel” DOUT shift register was connected to segments a-g, and the “r” (which evidently stands for “red”, not “row”) shift register to select which digit. So that’s how I wired it, and obviously I’m getting all messed-up characters on the displays. It doesn’t look like there would be an easy, existing software solution to this, but maybe there could be some way to swap the handling of rows and columns when writing to the LED matrix driving the digits.
The second is that the way I have the buttons connected, I use “sel” wires as a lower-level than “r”/“din” wires–that is, for instance, softkeys 1-8 are all hooked to a single DIN pin but each to the eight different DOUT selection drivers. When I use button_id_emu_offset or led_id_emu_offset to convert them into individual button or LED handlers, those softkeys appear as buttons 1001, 1009, 1017, 1025, etc. instead of 1001, 1002, 1003, 1004, etc., because it’s going through all the “r”/“din” wires for one “sel” wire first and then moving to the next “sel” wire (which makes sense on a hardware level). I know this is not a major deal and just means that my config files will not have all the buttons in a nice neat order, but again if there was some optional way to reverse the handling of rows and columns, it would make this easier.
I’m thinking something like a “swap_rows_columns=<1|0>” parameter for DOUT_MATRIX and DIN_MATRIX definitions that would work like this. The hardware would still be configured as the sr_dout_sel* and sr_din* and sr_rgb statements in the definition suggested, this new parameter would not change that at all. However, if it was 1, any time any function wrote to (DOUT) or read from (DIN) an element in the matrix, the row and column indices given would be swapped before reading/writing. Might this be easy to add? If you want me to try adding it myself, I can try, I’ve already been fooling with adding a “type=MBFM MBFM=…”, but other users might also be able to benefit from this ability to swap rows and columns.
Thanks,
Sauraen