Skip to the content
2 layers50 × 50 mmOctochat, the printed circuit board in 3D

Circuit board and circuitpython code for a foot-keyboard of arbitrary size

Size
50 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
17
Pads
118
Tracks, vias
189, 50
Pours
4
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
3 Dec 2022
Updated
4 Dec 2022

Overview

Octochat is an open-source printed circuit board by accelerando-consulting, from the accelerando-consulting/aio-octochat repository on GitHub. It is a 2-layer board of 50 × 50 mm with 29 parts on 17 nets, routed with 189 tracks and 50 vias.

It is built around the PCF8574T. Its parts include 9 connectors, 4 resistors, 1 IC, 1 diode and 1 switch. It belongs with the keyboards and input boards of this library.

Main components

1

README

README.md

OctoChat - a tileable foot keyboard for people or pets

This project is a circuit board that allows one to construct a mechanical keyboard as large or as small as you like. From a single key, to potentially 64 keys.

The keyboard connects via I2C - it can connect direct to a raspberry pi, or to a small microcontroller. ESP32, ESP8266 and Nordic NRF52 are good choices.

If you have a board that runs circuitpython such as the Adafruit feather or one of Accelerando's Redsoil or Hailstone boards you can create a USB or Bluetooth keyboard with the included CircuitPython code.

Accelerando's Stacx project (for the Ardiuino framework) also supports these keys.

How it works

The PCF8574 IO expander is used. This chip has 8 pins, each key uses two pins. A four key board can be made with one octochat fitted with a PCF8574 and three more octochats with no chip. Each active octochat can control three other passive octochats. Connections can be chained, so you can add another active octochat into your board. The PCF8574 supports 16 addresses, so you can have up to 16 active keys, plus up to 48 passive keys.

Each key has one keyswith and one LED. Program the IO Expander's register with bit pattern 0xFF. When a key is pressed, that bit will read zero. To light a LED, program the corresponding bit to a zero.

The outputs of the PCF8574 are arranged thusly

  • D0 - the key on this module (pulled high, low when pressed)
  • D1 - the LED on this module (sink mode, program output low to light the LED)
  • D2 - the key on passive module 2
  • D3 - the LED on passive module 2
  • D4 - the key on passive module 3
  • D5 - the LED on passive module 3
  • D6 - the key on passive module 4
  • D7 - the LED on passive module 4

Each module has two connectors for each passive module, one at 90 degrees and one at 45 degrees. You should use one or the other, not both. All the ribbon connectors also relay the I2C SCL and SDA lines, so you can site a new active module anywhere you choose.

What can I do with it

Make a soundboard for your cat, or dog.

Add foot controls to your PC.

Create assistive tech for the disabled.

Control machinery (I use one to control vacuum pickup and fume extraction at my soldering station).

Parts

29
QtyValueFootprintReferences
8MountingHoleMountingHole:MountingHole_2.1mmH1, H2, H3, H4, H5, H6, H7, H8
23k3Resistor_SMD:R_0805_2012MetricR3, R4
2LOGOLOGOG***, G***
1100kResistor_SMD:R_0805_2012MetricR1
11206LED_SMD:LED_1206_3216MetricD1
1220RResistor_SMD:R_0805_2012MetricR2
1A0Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP1
1A1Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP2
1A2Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP3
1Cherry MXKailh:SW_MXSW1
1IN_AConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ1
1IN_BConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ2
1OUT_1AConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ3
1OUT_1BConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ4
1OUT_2AConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ5
1OUT_2BConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ6
1OUT_3AConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ7
1OUT_3BConnector_FFC-FPC:Molex_200528-0060_1x06-1MP_P1.00mm_HorizontalJ8
1PCF8574Package_SO:SOIC-16W_7.5x10.3mm_P1.27mmU1
1QWIICConnector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_HorizontalJ9

Similar boards

  • 2 layers82.6 × 79.5 mmSdr controller, the printed circuit board in 3D

    Sdr controller

    CyZooNiC/cyberdeck

    31 parts138AGPL-3.0
  • 2 layers100 × 100 mmMain board V2, the printed circuit board in 3D

    Main board V2

    Resaj/cyclops-project

    Robot de carreras open source con cámara

    31 parts53
  • 2 layers100 × 45 mmTranspOtterNG, the printed circuit board in 3D

    TranspOtterNG

    Jana-Marie/transpOtterNG

    Next Generation of TranspOtter.

    63 parts51
  • 2 layers148.6 × 192.2 mmBadge, the printed circuit board in 3D

    Badge

    NuttyShell/NuttyBadge

    NuttyBadge: A NuttyShell crafted multi-tool. Opensourced Hardawre and Software

    169 parts31GPL-3.0
  • 2 layers139.7 × 88.9 mmCharge Controller, the printed circuit board in 3D

    Charge Controller

    jharvey/Charge_Controller

    MPPT hardware which uses FUGU firmware

    163 parts24
  • 2 layers83 × 35 mmCard dealer secondary, the printed circuit board in 3D

    Card dealer secondary

    Adam-Simon1/Automatic-Card-Dealer

    DIY Automatic Card Dealer

    12 parts21
  • 2 layers45.7 × 67.3 mmLAMEBOY, the printed circuit board in 3D

    LAMEBOY

    davedarko/LAMEBOY

    https://hackaday.io/project/26823-lameboy-another-esp12-handheld

    71 parts20
  • 2 layers65 × 120 mmNomad, the printed circuit board in 3D

    Nomad

    0Zane/Nomad

    One Adventure - One device,Nomad is a custom outdoor mobile device built around the ESP32-S3. It is designed for explorers, researchers, and outdoor enthusiasts who need reliable positioning, long-range communication…

    81 parts17MIT

Questions

How big is the Octochat PCB?

It measures 50 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Octochat use?

29 parts, built around the PCF8574T. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Octochat KiCad files?

From the accelerando-consulting/aio-octochat repository on GitHub, at the commit this page was made from: the board is octochat.kicad_pcb and its schematic octochat.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Octochat design in my own project?

Its repository states no licence, so its author keeps all rights: ask accelerando-consulting before reusing the design.