This project is C code for Arduino (or potentially other micro; the code is rather general) for interfacing to a PC-style (PS2 or AT) serial keyboard. It has features:
- Can use any two IO pins for polled clock and data signals; does not require interrupts.
- Keeps the keyboard "flow controlled" when not being read, so that keystrokes will be buffered.
- Supports writing to the keyboard as well as reading, for setting LEDs and etc.
- Compresses extended keycodes into a single response.
- Returns information about key release events as well as keypress events.
- Includes code to translate key events to ascii.