When you finish this tutorial you will be able to be able to modify a 2-matrix keybrd sketch to suite your own split keyboard design.
The breadboard in this picture models a split keyboard.
The breadboard’s four bus strips are used as rows. Two rows (blue bus strips) are connected to the microcontroller. Two rows (red bus strips) are connected to the shift registers.
The breadboard’s four bus strips are used as rows. Two rows connect to a microcontroller, and two rows connected to a I/O expander.
The I/O expander has a small notch on one end, which identifies pin 1. In the picture, pin 1 is on the right end.
The microcontroller and I/O expander are connected by 4 jumper wires:
A decoupling capacitor on the power pin dampens noise coming in through the power and ground wires.
The microcontroller and I/O expander communicate via I2C bus, which consists of two signals: SCL and SDA. Two resistors pull-up voltage on the SCL and SDA.
I/O expander I2C address is configured by hardware pins. The MCP23018 with all address pins grounded has an I2C address of ?? todo.
The I/O expander has two ports. Each port has eight pins. One port is connected to the matrix’s rows. The other port is connected to the matrix’s columns.
We will build a split keyboard adding parts to the basic breadboard keyboard described in tutorial_1_breadboard_keyboard.md
todo add schematic
Continuing from the basic breadboard keyboard instructions:
Insert the I/O expander
Install I/O expander power
Install I2C bus
configure I2C address
Assemble key matrix as shown in the picture.
Connect I/O expander ports to matrix rows and columns
The keybrd_4_split_with_IOE_annotated.ino sketch explains how the I/O Expander works on a keyboard.
keybrd tutorial by Wolfram Volpi is licensed under a Creative Commons Attribution 4.0 International License.
Permissions beyond the scope of this license may be available at https://github.com/wolfv6/keybrd/issues/new.