ZMK-ThinkPad - Part 2: Revision A

Summary
Rev A PCB has arrived, and after a gruesome 8-hour long PCB soldering - my skills have deteriorated - a PCB is finally done!
The first target for a ThinkPad T430 keyboard due to:
- I haven’t found a TrackPoint connector yet. The 14-pin 1mm pitch connector hasn’t arrived.
- My T430 keyboard has a backlight that I could test first with.
Code repository: https://github.com/rampadc/zmk-thinkpad
Schematics: http://congx.dev/zmk-thinkpad/reference/hardware-files#t430-revision-a
What worked
- Keyboard matrix scanning
- TrackPoint pointer
- Logitech-Switch support: https://www.logitech.com/en-au/discover/a/easy-switch-technology
- UF2 bootloader: after initial flashing with SWD, I can use the USB-C connection develop.
- Mute, MicMute, Power LEDs
What didn’t
- TrackPoint buttons - but T60 keyboard’s TrackPoint buttons work.
- Battery measurement: need to add a fuel gauge in Rev B.
- Backlight: power circuitry brown out the moment backlight is routed. +5V by itself is stable but loading the T430 keyboard brown out the circuit. Most likely a T430 keyboard fault.
- Lots of components to manually place
I am thankful that I have a few spare T60 keyboards and 1x T480 with backlight keyboard lying around. Without them, I would not have been able to verify that the backlight mechanism on a different dev board or that the TrackPoint buttons on the T430 were defective.
The First Flash

The BLE SOM is a Holyiot 18010. Its pins are large enough that soldering LGA (under pad pins) doesn’t quite give me the scare as yet.
The first flash to program the bootloader needs SWD. I designed the board to use a TagConnect TC2050. Little did I planned, the debug connector from a nRF52840 DK are “mini” in size, i.e., 1.27mm vs 2.54mm for the tagconnect IDC female header. Luckily, I have a few STM32 devbo lying around. Quick work with OpenOCD and the boards are flashed with UF2 bootloader.
Docs: https://congx.dev/zmk-thinkpad/engineering/architecture/programming/revision-a-programming
The first-time programming is likely to remain the same in Rev B.
One annoying thing is that the ST programming headers only has VTref, which detects the presense of VCC on the other side, i.e., we need Rev A board powered with USB-C.
After that, updates are via USB. Open the serial port at 1200 baud, copy a .uf2. Bluetooth bonds survive. SWD is for when that stops working. The code repository has the procedures an AI agent can make quick work of.
ZMK runs. USB HID, serial, BLE pairing, reconnection, profile switching. The T430 matrix, Fn, and power button scan. The TrackPoint moves. Profile, power, mute, and mic-mute LEDs work.
Next board
Revision B will still a Holyiot. There will be a lot more test points, shunts, and separation between the connector and the core board, so this will support all T60, T430, T480 keyboards, and more to come.