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_4b_split_keyboard_with_shift_registers.md 4.2KB

keybrd Tutorial 4b - split keyboard with shift registers

When you finish this tutorial you will be able to be able to modify a split keybrd sketch with 10 to 24 keys on the shift registers.

Overview of split keyboard with shift registers

The breadboard in the following picture models a split keyboard. The green rectangle on the left is a Teensy LC micro controller. The black rectangles in the middle are two SN74HC165N shift registers daisy chained together. The micro controller and shift registers are connected via 5 jumper wires.

Only the right matrix is shown. The left matrix is not needed for this demonstration and was omitted to reduce clutter.

The right-matrix layout has 2 rows and 7 columns. Electronically, there is only one row of keys. Diodes are not needed because there is only one row.

breadboard keyboard with shift_registers

Building a split breadboard keyboard with shift registers

Add components to the breadboard as shown in the picture. Refer to the SN74HC165N datasheet to locate its pins.

In the picture, SN74HC165N pin 1s are on the left end, towards the controller. Shift registers are chained together by colored wires that lay flat on the breadboard.

Each shift register has 8 parallel input pins, 4 on each side. 14 input pins and their keys are connected to 10k pull-down resistor which are grounded (blue bus). 2 input pins are not used, they are grounded (blue bus).

Switches are connected to power (red bus) and shift register input pins (jumpers).

This table lists what gets connected to the 74HC165 pins:

74HC165 left (lower half of breadboard)
NAME    PIN# DESCRIPTION         TO TEENSY LC PIN#  CHAIN
SH/LD   1    shift or load input CS0   10           green wire
CLK     2    clock input         SCK0  13           yellow wire
 D4     3    parallel input
 D5     4    parallel input
 D6     5    parallel input
 D7     6    parallel input
/QH     7    ~serial output
GND     8    ground              gnd                blue bus

74HC165 right (upper half of breadboard)
NAME    PIN# DESCRIPTION         TO TEENSY LC PIN#  CHAIN
VCC     16   power pin           3.3V               red wire
CLK INH 15   clock inhibit                          blue bus
 D3     14   parallel input
 D2     13   parallel input
 D1     12   parallel input
 D0     11   parallel input
SER     10   serial input                           blue wire to next QH
 QH      9   serial output       MISO0 12           blue wire to previous SER

breadboard keyboard with shift_registers

breadboard keyboard with shift_registers

A decoupling capacitor between the power and ground wires suppresses noise.

I apologize for not providing a schematic.

Sketch for split keyboard with shift registers

keybrd_4b_split_keyboard_with_shift_registers.ino is a simple sketch with two shift registers. It will run on the above breadboard keyboard.

Exercises

  1. Guess what happens if an unused input pin is not grounded? Try it.


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.