Skip to the content
2 layers174 × 80 mmKeyb, the printed circuit board in 3D

Самодельная клавиатура с интерфейсом ps/2. Собрана на Attiny2313A и сдвиговых регистрах 74HC595 и 74HC165.

Size
174 × 80 mm
Copper layers
2
Thickness
1.6 mm
Parts
115
Nets
65
Pads
469
Tracks, vias
2,456, 38
Pours
3
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
23 Sep 2022
Updated
1 Feb 2024

Overview

Keyb is an open-source printed circuit board by coprolitebbs, from the coprolitebbs/ps2-keyboard repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 174 × 80 mm with 115 parts on 65 nets, routed with 2,456 tracks and 38 vias.

It is built around the ATTINY2313-20PU. Its parts include 69 switches, 20 resistors, 4 ICs, 2 diodes and 2 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

ps2-keyboard

Самодельная клавиатура с интерфейсом ps/2. Собрана на Attiny2313A и сдвиговых регистрах 74HC595 и 74HC165.

Прошивка Attiny базируется на библиотеке ps2dev

Простое описание данных для протокола PS/2.

Если что-то не работает, попробуйте старую прошивку из моей же статьи на хабре: https://habr.com/ru/articles/693784/ Например, эмулятор PS/2 клавиатуры для Спектрума, почему-то, не заводится с последней версией прошивки, но, завелся с версией из статьи. Собирали на стриме здесь: https://www.youtube.com/watch?v=hVR3ve-gX_8

Прошивка компилируется средой Arduino IDE,

Прошивается с помощью progisp172 программатором через порт "РПрог" для программирования на плате клавиатуры,

Fuse-биты для Attiny2313A: Low: E2, High: DF, Ext: FF, Lock: FF

Имейте ввиду, клавиатура не настраивается под ваш PC или контроллер автоматически, придется играться с таймингами в исходнике.

Для PC используйте значения:

text
 #define BYTEWAIT 1000
 #define CLK_FULL 40 
 #define CLK_HALF 20
 #define TIMEOUT 30

Для работы с esp32 и библиотекой FabGL используйте

text
 #define BYTEWAIT 500
 #define CLK_FULL 10 
 #define CLK_HALF 5
 #define TIMEOUT 50

Parts

115
QtyValueFootprintReferences
16220Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20
210KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1, R4
21KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR2, R3
2АЛЬТButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW79, SW81
2КТРЛButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW78, SW82
2ПРОБЕЛButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW80, SW84
1' " ЭButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW65
1+ =Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW34
1- _Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW33
1/ ? .Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW76
10 )Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW24
10.5MфCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC1
11 !Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW7
110KResistor_THT:R_Array_SIP9RN1
12 @ "Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW8
13 #Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW17
14 $ ;Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW18
15 %Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW19
16 ^ :Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW20
17 & ?Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW21
18 *Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW22
19 (Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW23
1: ; ЖButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW64
1< , БButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW74
1> . ЮButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW75
1A ФButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW55
1ATtiny2313-20PPackage_DIP:DIP-20_W7.62mm_SocketU1
1B ИButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW71
1CButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW69
1D ВButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW57
1E УButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW40
1F АButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW58
1G ПButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW59
1H РButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW60
1I ШButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW48
1ICSPConnector_PinSocket_2.54mm:PinSocket_2x03_P2.54mm_Vertical_ICSPJ2
1J ОButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW61
1K ЛButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW62
1KP1564ИP52 - 1Package_DIP:DIP-16_W7.62mm_SocketU2
1KP1564ИP52- 2Package_DIP:DIP-16_W7.62mm_SocketU3
1KP1564ИP9Package_DIP:DIP-16_W7.62mm_SocketU4
1L ДButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW63
1LOGOLOGOG***
1LSHIFTButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW66
1M ЬButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW73
1N ТButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW72
1O ЩButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW49
1P ЗButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW50
1PS/2Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ1
1Q ЙButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW38
1R КButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW44
1RSHIFTButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW77
1S ЫButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW56
1T ЕButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW45
1U ГButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW47
1V МButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW70
1W ЦButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW39
1X ЧButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW68
1Y НButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW46
1Z ЯButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW67
1[ X {Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW51
1\ |Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW35
1] Ъ } Button_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW52
1` ~ ЁButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW6
1В КОНЕЦButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW41
1ВВЕРХButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW25
1ВВОДButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW53
1ВЕРХРегButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW54
1ВЛЕВОButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW27
1ВНИЗButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW26
1ВПРАВОButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW28
1ВСТВButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW29
1НАЗАДButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW30
1ОТМButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW1
1ПАУЗАButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW83
1ПЕЧАТЬButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW43
1СТР ВВЕРХButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW42
1СТР ВНИЗButton_Switch_THT:SW_PUSH_KEYB_6mm_H4.3mmSW31
1Св.1LED_THT:LED_D3.0mmD1
1Св.2LED_THT:LED_D3.0mmD2

The 100 most common of 115 parts.

Similar boards

  • 2 layers88 × 102 mmFakedeck gerber, the printed circuit board in 3D

    Fakedeck gerber

    syuchan1005/Fakedeck

    Using raspberry pi pico as a stream deck

    14 parts9
  • 2 layers50 × 60.5 mmDps5005control, the printed circuit board in 3D

    Dps5005control

    firew4lker/DPS5005-control

    A baord to control the DPS5005c power supply.

    26 parts7
  • 2 layers62.5 × 47.5 mmC64UserPortMidi, the printed circuit board in 3D

    C64UserPortMidi

    relic-se/C64UserPortMidi

    Simple MIDI input and output interface using Commodore 64 user port. Utilizes an ATtiny2313 microcontroller and 6n138 opto-isolator.

    25 parts4GPL-3.0
  • 2 layers437.8 × 127.8 mmC128DKEYBOARD, the printed circuit board in 3D

    C128DKEYBOARD

    danwerner21/C128D_Keyboard

    C128D_Keyboard

    119 parts1
  • 2 layers170 × 50.5 mmPcb v0, the printed circuit board in 3D

    Pcb v0

    oskar-ka/nixie

    Various files for my nixie tube project

    33 parts
  • 2 layers91.4 × 53.3 mmClock, the printed circuit board in 3D

    Clock

    shimo8810/rust-board

    Hobby board implemented in Rust

    53 partsMIT

Questions

How big is the Keyb PCB?

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

What parts does the Keyb use?

115 parts, built around the ATTINY2313-20PU. 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 Keyb KiCad files?

From the coprolitebbs/ps2-keyboard repository on GitHub, at the commit this page was made from: the board is hardware/kicad_project/keyb.kicad_pcb and its schematic hardware/kicad_project/Butts 2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Keyb design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).