keybrd library is an open source library for creating custom-keyboard firmware.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

tutorial_4_split_keyboard_with_IOE.md 3.1KB

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 capacitor on the power pin smooths power to the I/O expander.

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 three hardware pins (AD0, AD1, AD2).

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

The split keyboard is built on the basic breadboard keyboard described in tutorial_1_breadboard_keyboard.md

Continuing from the basic breadboard keyboard instructions:

  1. Insert the I/O expander

  2. Install I/O expander power

  3. ground

  4. power

  5. capacitor

  6. Install I2C bus

  7. SCL

  8. SDA

  9. pull-up resistors on SCL and SDA

  10. configure I2C address

  11. Assemble key matrix as shown in the picture.

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