Archived
1
0
This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
keybrd/tutorials/tutorial_4_split_keyboard_with_IOE.md
2016-05-11 12:46:53 -06:00

3.3 KiB

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

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 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

todo add schematic

Continuing from the basic breadboard keyboard instructions:

  1. Insert the I/O expander

  2. Install I/O expander power

  • ground
  • power
  • capacitor
  1. Install I2C bus
  • SCL
  • SDA
  • pull-up resistors on SCL and SDA
  1. configure I2C address

  2. Assemble key matrix as shown in the picture.

  3. 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 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.