So it seems to think that pins 26 and 16 are continually connected.
I'd assume that was a hardware/soldering problem, except that everything works fine with the Arduino sketch that I got from the guy who designed the PCB.
I added debug_hex(cols); debug("\n");
to the matrix_scan after read_cols() and this shows up in QMK Toolbox:
*** Halfkay device disconnected
*** Lenovo - lenovo_t420 connected -- 0xFEED:0x0
> Keyboard start.
400
bounce!: 05
> 400
bounce!: 05
400
bounce!: 05
> 400
bounce!: 05
400
bounce!: 05
> 400
bounce!: 05
400
bounce!: 05
> 400
bounce!: 05
> 400
400
400
400
400
400
400
400
> 400
400
400
400
400
> 400
400
400
> 400
400
400
400
400
400
400
400
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 000Ad(5213)
KL: kc: 0, col: 10, row: 0, pressed: 1
ACTION: ACT_LMODS[0:00] layer_state: 00000000(0) default_layer_state: 00000000(0)
processed: 000Ad(5213):0
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 010Ad(5327)
KL: kc: 63, col: 10, row: 1, pressed: 1
ACTION: ACT_LMODS[0:3F] layer_state: 00000000(0) default_layer_state: 00000000(0)
keyboard_report: 00 00 3F 00 00 00 00 00
processed: 010Ad(5327):0
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 020Ad(5443)
KL: kc: 34, col: 10, row: 2, pressed: 1
ACTION: ACT_LMODS[0:22] layer_state: 00000000(0) default_layer_state: 00000000(0)
keyboard_report: 00 00 3F 22 00 00 00 00
processed: 020Ad(5443):0
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 030Ad(5559)
KL: kc: 21, col: 10, row: 3, pressed: 1
ACTION: ACT_LMODS[0:15] layer_state: 00000000(0) default_layer_state: 00000000(0)
keyboard_report: 00 00 3F 22 15 00 00 00
processed: 030Ad(5559):0
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 040Ad(5675)
KL: kc: 48, col: 10, row: 4, pressed: 1
ACTION: ACT_LMODS[0:30] layer_state: 00000000(0) default_layer_state: 00000000(0)
keyboard_report: 00 00 3F 22 15 30 00 00
processed: 040Ad(5675):0
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 050Ad(5791)
KL: kc: 14, col: 10, row: 5, pressed: 1
ACTION: ACT_LMODS[0:0E] layer_state: 00000000(0) default_layer_state: 00000000(0)
keyboard_report: 00 00 3F 22 15 30 0E 00
processed: 050Ad(5791):0
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 060Ad(5907)
KL: kc: 6, col: 10, row: 6, pressed: 1
ACTION: ACT_LMODS[0:06] layer_state: 00000000(0) default_layer_state: 00000000(0)
> keyboard_report: 00 00 3F 22 15 30 0E 06
processed: 060Ad(5907):0
> 400
400
400
400
400
400
400
400
>
r/c 0123456789ABCDEF
00:
01:
> 02:
03:
04:
05:
06:
07:
---- action_exec: start -----
EVENT: 070Ad(6025)
KL: kc: 4, col: 10, row: 7, pressed: 1
ACTION: ACT_LMODS[0:04] layer_state: 00000000(0) default_layer_state: 00000000(0)
keyboard_report: 00 00 3F 22 15 30 0E 06
processed: 070Ad(6025):0
> 400
400
400
400
400
400
400
400
> 400
400
400
400
400
400
400
400
> 400
400
400
400
400
400
400
400
> 400
400
400
It continues to print 400 until I unplug or reprogram it.