Sources for pinouts and extra info can be found in the Sources segment.
Requires:
- probe-rs (or any other tool that can program an STM32 MCU)
- cargo (best if installed through rustup)
- an ST-Link USB probe
- an STM32F4 dev board (I used the Black Pill V3, it costs like 8 bucks)
- a Palm® Portable Keyboard (duh)
Connect the ST-Link to your STM32's SWD port without connecting the 3.3V pin
and a USB cable to your dev board's USB port and run
cargo run --release --features=defmt
B8 -> VCC pin
GND -> GND pin
B4 -> DCD/HotSync pin
B3 -> RTS pin
A3 -> RXD pin
The signal from the keyboard's RXD pin requires a 100k pull-up resistor and MUST then be passed through a NOT gate, since the STM32F411CEUx I used doesn't support the inverted USART signal that is given out by the keyboard
TO-DO :P
Some keys have alternate functions that are triggered by pressing them along with
Fn
- TO-DO
-
Info on pinouts, protocols and the matrix layout used by the keyboard were referenced from here 1
-
JSON-formatted HID codes acquired from this gist 2
2. "Keyboard International4" was accidentally labeled as "Keyboard International5" and was fixed in this repo