keybrd Tutorial 4 - split keyboard with I/O Expander ==================================================== 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. ## Overview of split keyboard with I/O Expander The breadboard in this picture models a split keyboard. ![breadboard keyboard with 2 rows and 4 columns of keys](images/breadboard_keyboard_2x5_labeled.jpg "2x5 breadboard keyboard") There is a total of 4 matrix rows, each on a breadboard power rail. The right matrix is connected to a microcontroller. The left matrix is connected to a I/O expander. The I/O expander has a small notch on one end, which identifies the end with pin 1. In the picture, pin 1 is on the right end. The microcontroller and I/O expander are connected by 4 jumper wires: * ground * power * Serial CLock signal (SCL) * Serial DAta signal (SDA) A decoupling capacitor on the power pin dampens noise coming in through the power wire. The microcontroller and I/O expander communicate via [I2C](http://en.wikipedia.org/wiki/I%C2%B2C) 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. ## Building a split keyboard with I/O Expander We will build a split keyboard adding parts to the basic breadboard keyboard described in [tutorial_1_breadboard_keyboard.md](tutorial_1_breadboard_keyboard.md) todo add schematic Continuing from the basic breadboard keyboard instructions: 4. Insert the I/O expander 5. Install I/O expander power * ground * power * capacitor 6. Install I2C bus * SCL * SDA * pull-up resistors on SCL and SDA 7. configure I2C address 8. Assemble key matrix as shown in the picture. 9. Connect I/O expander ports to matrix rows and columns ## Sketch for split keyboard with I/O Expander The [keybrd_4_split_with_IOE_annotated.ino](keybrd_4_split_with_IOE_annotated/keybrd_4_split_with_IOE_annotated.ino) sketch explains how the I/O Expander works on a keyboard. Creative Commons License
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.