Skip to the content
PCBKitNew board
2 layers175.8 × 89.4 mmBinary keyboard, the printed circuit board in 3D

Why do you need 40-50 keys when you know binary? Just type whatever your imagination holds one byte at a time :)

Size
175.8 × 89.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
24
Nets
53
Pads
165
Tracks, vias
203, 22
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
12 May 2026
Updated
7 Jun 2026

Overview

Binary keyboard is an open-source printed circuit board by PotatoPerchance, from the PotatoPerchance/binary_keyboard repository on GitHub. It is a 2-layer board of 175.8 × 89.4 mm with 24 parts on 53 nets, routed with 203 tracks and 22 vias.

Its parts include 12 switches, 5 resistors, 2 ICs, 2 diodes and 2 connectors. It belongs with the keyboards and input boards and the nRF52 and nRF5x boards of this library.

README

README.md

Binary Keyboard

img

This is wacky, silly project where you can type your keyboard inputs in binary and send it to a connected device. You can enter the byte values (8 switches represent 8 bits in a byte) which represents a character. Then you confirm your input with the enter switch to covert that binary byte to a character to send to your device (wired or wireless!). Basically a keyboard but you type in binary because why not! It uses the SuperMini nRF52840 mcu ( a nice!nano clone) which supports bluetooth connectivity for you to send your inputs wirelessly.

Motivation

I build the binary keyboard just for the sake of learning. No other motives. Its just a very stupid and fun idea which struck me and there I went building :)

PCB

Schematic PCB

PCB3d PCB3d

3D case

Case Case

Project Structure

text
├── 📁 3d_models
│   ├── 📁 Fusion 360     # Contains the .f3d files and STEP files
│   └── 📁 PCB export     # The 3d file exported from KiCad
├── 📁 KiCad              # Contains the KiCad schematics and PCB files 
├── 📁 Firmware
│   ├── 📁 Circuit Python # Contains the uf2 file that is to be flashed to the supermini
│   ├── 📁 lib            # Contains a zip file for the circuitpython firmware
│   └── 📄 code.py        # Contains the main code
└── 📁 BOM
    ├── 📄 kicad.csv      # KiCad generated CSV (no price present)
    └── 📄 BOM.cBOM mnaully created with price and total estimation

How it works

There are an array of 8 switches that are connected to the GPA0 to GPA7 of the MCP23017 gpio expander. The GPB0 has three connections - (SPACE, BACKSPACE and ENTER). There are intrerrupts for both of them which are conencted to gpios of the mcu. Whenever a user presses a button (any of the 8 buttons that repsresnt 1 bit of a byte for a single char) the state is changed for that bit's value. So if it was a 0 it changes to 1. Like that we can toggle each of the bits state and at the end press the enter button to confirm the data input. Then the python script (code.py) converted the byte to a char by mapping it to a character and returns it to the USB_HID device for it to be printed on your screen.

How to make it work for you

First print the PCB. Print the 3d case. Then solder the parts in place. For the firmware- flash the uf2 file in the supermini. Then install the firmware into the mcy by unzippping the file inside /Firmware/lib. And upload the code.py file to begin testing and using the device.

AI USE

For firmware guidance and the code.py file code. Teensy help on fusion on selecting screw and other minor stuff. And small help for debugging kicad schematic and suggestions for improvements.

Parts

24
QtyValueFootprintReferences
11SwitchScottoKeebs_MX:MX_PCB_1.00uSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11
2300Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR4, R5
24.7kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1, R2
2LEDLED_THT:LED_D5.0mmD1, D2
110kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR3
1Battery_CellConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalBT1
1Conn_01x04_Pinsmall _yoystick:footprint25.8 * 25.8J2
1MCP23017x-x-SPPackage_DIP:DIP-28_W7.62mmU1
1OLED_128x64ScottoKeebs_Components:OLED_128x64J1
1SW_Nidec_CAS-120A1Toggle switch:SW_Toggle_Blue_wSlotsSW12
1SuperMini nRF52840Supermini nrf52840:SuperMini NRF52840U2

Questions

How big is the Binary keyboard PCB?

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

What parts does the Binary keyboard use?

24 parts. 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 Binary keyboard KiCad files?

From the PotatoPerchance/binary_keyboard repository on GitHub, at the commit this page was made from: the board is KiCad/Binary_keyboard/Binary_keyboard.kicad_pcb and its schematic KiCad/Binary_keyboard/Binary_keyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Binary keyboard design in my own project?

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

Similar boards

  • 2 layers56 × 65 mmSeaTalk1, the printed circuit board in 3D

    SeaTalk1

    dotnet/iot

    This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.

    24 parts2.4kMIT
  • 2 layers26.2 × 45.5 mmPL18 multiprotocol, the printed circuit board in 3D

    PL18 multiprotocol

    pascallanger/DIY-Multiprotocol-TX-Module

    Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models.

    24 parts1.9kGPL-3.0
  • 2 layers58 × 35.5 mmHat, the printed circuit board in 3D

    Hat

    menloresearch/asimov-1

    v1 of Asimov, an open-source humanoid robot

    24 parts1.4kCERN-OHL-S-2.0
  • 2 layers21.6 × 19.5 mmMicron Logo LED, the printed circuit board in 3D

    Micron Logo LED

    DraftShift/StealthChanger

    Tool changing system for Vorons and other front mount printer motion systems, not just stealthburner.

    24 parts1.2kGPL-3.0
  • 2 layers158 × 11 mmRainbow Matchstick, the printed circuit board in 3D

    Rainbow Matchstick

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    24 parts1.1kGPL-3.0
  • 2 layers85.6 × 54 mmTRACED wio1262-carrier, the printed circuit board in 3D

    TRACED wio1262-carrier

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    24 parts915
  • 2 layers36 × 20 mmCombined, the printed circuit board in 3D

    Combined

    adamb314/ServoProject

    Getting the most out of your hobby servo

    24 parts545