

Keyboard
Double Action Keyboard firmware for Teensy microcontrollers
- Size
- 271 × 110.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 223
- Nets
- 173
- Pads
- 1,079
- Tracks, vias
- 1,517, 24
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 4
- Created
- 4 Mar 2017
- Updated
- 20 Nov 2022
Overview
Keyboard is an open-source printed circuit board by jlidauer, from the jlidauer/DAK-FW repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 271 × 110.5 mm with 223 parts on 173 nets, routed with 1,517 tracks and 24 vias.
Its parts include 139 diodes, 13 resistors, 2 connectors and 1 IC. It belongs with the keyboards and input boards and the NXP (LPC, Kinetis, i.MX RT) boards of this library.
README
README.mdDAK
Double Action Keyboard Firmware
This firmware is used for Double Action Keyboards with Teensy microcontrollers. Currently the firmware provides two independed layers (normal-layer and FN-layer), both of these layers support double action (first action, second action). This means that each double action key can be configured to have up to four independent actions. The firmware is developed using the Arduino IDE with the Teensyduino add-on.
Double Action Keyboard PCB V1.0
An example implementation a double action keyboard PCB can be found in the PCB directory.
What is a Double Action Keyboard?
A double action keyboard has switches that have two physical positions (two steps). Each key has two different functions that can be triggered without pressing modifier keys, this makes typing of special characters easier. For example, when pressing a key one step down, the keyboard could send a normal key stroke (e.g., KEY_A), and if the same key would be pressed two steps down instead, the keyboard could send the key combination of a special character (e.g., ALTGR + KEY_9).
More info can be found in the Wiki: Building a Double Action Keyboard.
Compatible microcontrollers:
In principle all Teensy microcontrollers with keyboard funtionality should work.
The firmware has been tested with the following microcontrollers:
- Teensy 3.2
- Teensy-LC
How to use this firmware?
See the Wiki for instructions: Getting Started
Parts
223| Qty | Value | Footprint | References |
|---|---|---|---|
| 136 | 1N4148 | DAK_lib:diodeDO35 | D1, D10, D100, D101, D102, D103, D104, D105, D106, D107, D108, D109, D110, D111, D112, D113 +120 |
| 11 | 5k | DAK_lib:resistor | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11 |
| 2 | 324 | DAK_lib:resistor | R12, R13 |
| 1 | btn2:via_0.6mm | ||
| 1 | #$ | DAK_lib:Double_Action_Switch | B28 |
| 1 | , | DAK_lib:Double_Action_Switch | B51 |
| 1 | . | DAK_lib:Double_Action_Switch | B52 |
| 1 | A | DAK_lib:Double_Action_Switch | B30 |
| 1 | ALTGR | DAK_lib:Double_Action_Switch | B64 |
| 1 | B | DAK_lib:Double_Action_Switch | B48 |
| 1 | BKSP | DAK_lib:Double_Action_Switch | B61 |
| 1 | C | DAK_lib:Double_Action_Switch | B46 |
| 1 | CLK | DAK_lib:Double_Action_Switch | B29 |
| 1 | D | DAK_lib:Double_Action_Switch | B32 |
| 1 | DEL | DAK_lib:Double_Action_Switch | B14 |
| 1 | D_Small | DAK_lib:diodeDO35 | D11 |
| 1 | E | DAK_lib:Double_Action_Switch | B18 |
| 1 | END | DAK_lib:Double_Action_Switch | B36 |
| 1 | ENTER | DAK_lib:Double_Action_Switch | B60 |
| 1 | ESC | DAK_lib:Double_Action_Switch | B1 |
| 1 | F | DAK_lib:Double_Action_Switch | B33 |
| 1 | F1 | DAK_lib:Double_Action_Switch | B2 |
| 1 | F10 | DAK_lib:Double_Action_Switch | B11 |
| 1 | F11 | DAK_lib:Double_Action_Switch | B12 |
| 1 | F12 | DAK_lib:Double_Action_Switch | B13 |
| 1 | F2 | DAK_lib:Double_Action_Switch | B3 |
| 1 | F3 | DAK_lib:Double_Action_Switch | B4 |
| 1 | F4 | DAK_lib:Double_Action_Switch | B5 |
| 1 | F5 | DAK_lib:Double_Action_Switch | B6 |
| 1 | F6 | DAK_lib:Double_Action_Switch | B7 |
| 1 | F7 | DAK_lib:Double_Action_Switch | B8 |
| 1 | F8 | DAK_lib:Double_Action_Switch | B9 |
| 1 | F9 | DAK_lib:Double_Action_Switch | B10 |
| 1 | FN1 | DAK_lib:Double_Action_Switch | B58 |
| 1 | FN2 | DAK_lib:Double_Action_Switch | B62 |
| 1 | G | DAK_lib:Double_Action_Switch | B34 |
| 1 | GUI | DAK_lib:Double_Action_Switch | B56 |
| 1 | H | DAK_lib:Double_Action_Switch | B37 |
| 1 | HOME | DAK_lib:Double_Action_Switch | B22 |
| 1 | I | DAK_lib:Double_Action_Switch | B25 |
| 1 | J | DAK_lib:Double_Action_Switch | B38 |
| 1 | K | DAK_lib:Double_Action_Switch | B39 |
| 1 | L | DAK_lib:Double_Action_Switch | B40 |
| 1 | LED_left | DAK_lib:LED_D3.0mm | D138 |
| 1 | LED_right | DAK_lib:LED_D3.0mm | D139 |
| 1 | Lalt | DAK_lib:Double_Action_Switch | B57 |
| 1 | Lctrl | DAK_lib:Double_Action_Switch | B55 |
| 1 | Lshift | DAK_lib:Double_Action_Switch | B43 |
| 1 | M | DAK_lib:Double_Action_Switch | B50 |
| 1 | Mshift | DAK_lib:Double_Action_Switch | B63 |
| 1 | N | DAK_lib:Double_Action_Switch | B49 |
| 1 | O | DAK_lib:Double_Action_Switch | B26 |
| 1 | OPT | DAK_lib:Double_Action_Switch | B65 |
| 1 | P | DAK_lib:Double_Action_Switch | B27 |
| 1 | PGDN | DAK_lib:Double_Action_Switch | B35 |
| 1 | PGUP | DAK_lib:Double_Action_Switch | B21 |
| 1 | Q | DAK_lib:Double_Action_Switch | B16 |
| 1 | R | DAK_lib:Double_Action_Switch | B19 |
| 1 | Rctrl | DAK_lib:Double_Action_Switch | B66 |
| 1 | Rshift | DAK_lib:Double_Action_Switch | B54 |
| 1 | S | DAK_lib:Double_Action_Switch | B31 |
| 1 | SKQUCAA010_ALPS | DAK_lib:SKQUCAA010_ALPS | NB1 |
| 1 | SPACE | DAK_lib:Double_Action_Switch | B59 |
| 1 | T | DAK_lib:Double_Action_Switch | B20 |
| 1 | TAB | DAK_lib:Double_Action_Switch | B15 |
| 1 | Teensy-LC | DAK_lib:Teensy_LC | U1 |
| 1 | U | DAK_lib:Double_Action_Switch | B24 |
| 1 | USB_PADS | DAK_lib:SMD_pad_2x | P2 |
| 1 | USB_mini | DAK_lib:USB_mini_B | P1 |
| 1 | V | DAK_lib:Double_Action_Switch | B47 |
| 1 | W | DAK_lib:Double_Action_Switch | B17 |
| 1 | X | DAK_lib:Double_Action_Switch | B45 |
| 1 | Y | DAK_lib:Double_Action_Switch | B23 |
| 1 | Z | DAK_lib:Double_Action_Switch | B44 |
| 1 | _- | DAK_lib:Double_Action_Switch | B53 |
| 1 | Ä | DAK_lib:Double_Action_Switch | B42 |
| 1 | Ö | DAK_lib:Double_Action_Switch | B41 |
Similar boards
- 2 layers293.3 × 128.5 mm

- 2 layers99.1 × 99.1 mm

Power supply panelized
thebiguno/microcontroller-projects
A home for a bunch of microcontroller projects which don't warrant their own repos.
223 parts75 - 2 layers101.6 × 147.3 mm

Karabas pro revER
andykarpov/karabas-pro
FPGA based retrocomputer with FDD and HDD controllers
223 parts37MIT - 2 layers115.5 × 96.2 mm

Closed deck x4
OpenLogicEFI/Hardware
Hardware is based off an open source project called Speeduino by Josh Stewart.
223 parts19 - 2 layers75 × 75 mm

SparkFun BMV080 panelized v01b
embeddedos-org/eCAD-Hardware-Products
Hardware designs + EE docs + Board datasheets of Multiple products
223 parts8MIT - 2 layers406.4 × 158.6 mm

- 2 layers277.2 × 203.3 mm

Front Panel
Syntaxer04/RC1Computer
8-Bit Relay Computer inspired by Harry Porter and DipDot
223 parts4GPL-3.0 - 2 layers565.3 × 351.3 mm

Clarinoid devboard
thenfour/Clarinoid
an electronic wind instrument / clarinet / flute / not sure
223 parts4
Questions
How big is the Keyboard PCB?
It measures 271 × 110.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Keyboard use?
223 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 Keyboard KiCad files?
From the jlidauer/DAK-FW repository on GitHub, at the commit this page was made from: the board is PCB_V1.0/keyboard.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Keyboard 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).