There are currently two versions of the software in the download: one that connects to the keyboard directly via GPIO pins and targets an Arduino Uno, and one that connects via an MCP23017 I/O expander and targets an ESP8622 board. Both versions take the form of a single source code file.
To make things more flexible, I'm in the process of converting the software to a set of Arduino libraries. There will be one library for the hardware independent code and libraries for each interfacing method (direct GPIO, I/O expender, whatever else).
Once I have converted the code, the steps needed to use it will be as follows:
- Add the relevant hardware specific library to your project. Ideally, I would like this to automatically add the hardware independent one too, but if that's not achievable it will need to be manually added.
- Define the keyboard configuration in your code. This is the number of rows and columns, the pins to use for each row and column, and the key mappings and the timings for polling, debouncing and key repeat.
- Call the initialisation function, passing your configuration, to set everything up.
- Call functions to update the keyboard state and read key events as needed.
I've also finished tweaking the layout spreadsheet, at least for now, however I've not uploaded the new version yet. I'll add that update when I've finished the software changes.