Skip to the content
PCBKitNew board
2 layers348.1 × 120.9 mmNummacro, the printed circuit board in 3D

QMK AT90USB1286 Mechanical TKL Keyboard - Retrofit for Kogan Mechanical TKL

Size
348.1 × 120.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
370
Nets
239
Pads
1,106
Tracks, vias
1,599, 110
Pours
3
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
17 Sep 2018
Updated
7 Oct 2019

Overview

Nummacro is an open-source printed circuit board by digitalrane, from the digitalrane/ec0board repository on GitHub. It is a 2-layer board of 348.1 × 120.9 mm with 370 parts on 239 nets, routed with 1,599 tracks and 110 vias.

It is built around the AT90USB1286-MU, LL4148 and MBR130LSFT1G-FS, with the MMBT3904 among its other parts. Its parts include 92 resistors, 88 diodes, 7 capacitors, 2 connectors and 1 IC. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

4

README

README.md

ec0board

ec0board is a personal project to replace the dead control board in my otherwise landfill Kogan TKL mechanical keyboard. It was designed to occupy the exact same physical dimensions, and have the exact same key switch spacing as the original board, however has a much more powerful user-controlled MCU. The MCU used is an AT90USB1286, chosen for the number of GPIOs, enabling NKRO to be achieved. It uses a diode matrix to connect the key switches, and takes Cherry-MX compatible key switches (I use browns). Support is being added to the open source QMK firmware for this board, as the intention is to run a completely open keyboard replacement.

The board supports a switchable backlight, and additional RGB LED underneath the board (to see if the controller is alive, basically) and switchable backlights for the Fn, Caps, Scroll and Num lock keys independently to the main backlight.

This board uses custom footprints and 3d models for the following. If you find any of them missing from this repository, please file an issue.

  • Cherry MX Brown switch model and footprint
  • AT90USB1286 model and footprint
  • Ingwaz rune (because I like to ensure runes or sigils cover my electronics for great ~ mystical power ~)

Versions

  • v0: Original prototype, ended up not working reliably because I goofed the electron-herding aspects of this version.
  • v1: Original replacement. Found the Micro USB connector to be flimsy, because Micro USB is a bit crap. Also had a testing RGB LED space, which never worked right. Other than that, fairly reliable, but still relied on the Kogan TKL or similar cheap Aliexpress/eBay donor KB.
  • v2: Never released or manufactured, added standalone supports, rerouted entire keyboard to use newly added standard KiCad key switch footprints, generally cleaned up routing. Started moving toward a Mini USB connector to address connector stability.
  • v3: Decided to use USB-C during a dream, so rewired the whole power supply and USB connection section. Further routing improvements. Cleaned up all footprints, values, and added better more descriptive values to components so a proper BOM could be generated. Generated a proper BOM with the Interactive HTML BOM KiCad plugin. Updated everything for KiCad 5.1 and added some more 3D models. All required libraries are now in KiCad or this repo.

Firmware

This keyboard uses QMK, and a board definition and configuration is included in the qmk_ec0board directory. Drop this into QMK and set your keyboard type to 'ec0board' on the make commandline as documented here.

e.g.: make ec0board

Flashing

Programming of the firmware is done via the ISP header. You will need a standard AVR ISP programmer, I use an Olimex unit. They keyboard should not be powered via USB whilst flashing, but you won't get magic smoke if you do it accidentally (yeah I tried it, so what, are you a cop?).

Fuses

The fuses on your AT90USB1286 should be set for external crystal oscillator operation, with JTAG disabled, to free up enough GPIOs. We also want SPIEN set so we can use the ISP to flash/recover the chip.

The fules should be set to - (E:F3, H:D9, L:DE)

BOM

Thanks to the wonderful InteractiveHtmlBom KiCad plugin, this repository now contains a really nice HTML BOM. You can clone this repo and browse it locally in the bom directory, or download/view it from here.

For U1, AT90USB1286 is the sensible option, because no keyboard needs the host mode support of AT90USB1287. If you need host mode, you're an absolute maniac. I want to know what you're up to, get in touch!

TODO

  • Finish code for lighting backlight behind Capslock, Scrolllock, Numlock and the Function key when engaged
  • Finish code to get the Function key working correctly

And another thing

<3

Parts

370
QtyValueFootprintReferences
87470Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26 +71
87LEDLED_THT:LED_D3.0mmLED_0, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_A1, LED_B1, LED_BKSLSH1, LED_BKSPC1, LED_C1, LED_CAPS1 +71
87LL4148Diode_SMD:D_MiniMELFD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +71
3100nCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC2, C3, C7
222pFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC4, C5
222rResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR4, R5
25.1kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR2, R3
1 MBR130LSFT1G Diode_SMD:D_PowerDI-123D88
10Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_10
11Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_1
110uFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC8
116MhzCrystal:Crystal_SMD_HC49-SD_HandSolderingY1
11KResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR10
11uFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC6
12Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_2
13Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_3
14Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_4
15Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_5
16Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_6
17Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_7
18Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_8
19Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_9
1AButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_A1
1AT90USB1286AT90USB1286-AU:QFP80P1600X1600X120-64NU1
1BButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_B1
1BKSPCButton_Switch_Keyboard:SW_Cherry_MX1A_2.00u_PCBSW_BKSPC1
1BSLSHButton_Switch_Keyboard:SW_Cherry_MX1A_1.50u_PCBSW_BSLSH1
1CButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_C1
1CAPSButton_Switch_Keyboard:SW_Cherry_MX1A_1.75u_PCBSW_CAPS1
1COLONButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_COLON1
1COMMAButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_COMMA1
1DButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_D1
1DELButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_DEL1
1DOWNButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_DOWN1
1EButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_E1
1ENDButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_END1
1ENTERButton_Switch_Keyboard:SW_Cherry_MX1A_2.25u_PCBSW_ENTER1
1EQUALButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_EQUAL1
1ESCButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_ESC1
1FButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F0
1F1Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F1
1F10Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F10
1F11Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F11
1F12Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F12
1F2Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F2
1F3Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F3
1F4Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F4
1F5Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F5
1F6Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F6
1F7Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F7
1F8Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F8
1F9Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_F9
1FSLASHButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_FSLASH1
1FUNCButton_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCBSW_FUNC1
1GButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_G1
1GCT USB4085Connector_USB:USB_C_Receptacle_GCT_USB4085J1
1HButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_H1
1HOMEButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_HOME1
1HWBButton_Switch_SMD:SW_SPST_EVQQ2SW2
1IButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_I1
1INSButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_INS1
1ISPConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalCON1
1JButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_J1
1KButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_K1
1LButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_L1
1LALTButton_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCBSW_LALT1
1LBRACEButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_LBRACE1
1LCTRLButton_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCBSW_LCTRL1
1LEFTButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_LEFT1
1LOGOingwazG***
1LSHIFTButton_Switch_Keyboard:SW_Cherry_MX1A_2.25u_PCBSW_LSHIFT1
1LSUPButton_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCBSW_LSUP1
1MButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_M1
1MMBT3904Package_TO_SOT_SMD:SOT-23Q1
1NButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_N1
1OButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_O1
1PButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_P1
1PAUSEButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_PAUSE1
1PERIODButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_PERIOD1
1PGDNButton_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCBSW_PGDN1

The 343 most common of 370 parts.

Questions

How big is the Nummacro PCB?

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

What parts does the Nummacro use?

370 parts, built around the AT90USB1286-MU, LL4148, MBR130LSFT1G-FS and MMBT3904. 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 Nummacro KiCad files?

From the digitalrane/ec0board repository on GitHub, at the commit this page was made from: the board is nummacro.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Nummacro design in my own project?

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

Similar boards

  • 2 layers84 × 59.2 mmBeef board, the printed circuit board in 3D

    Beef board

    HWXLR8/beef-board

    USB HID PCB for Bemani rhythm games

    62 parts27GPL-3.0
  • 2 layersEL87, the printed circuit board in 3D

    EL87

    BalzGuenat/mechkeys

    A few mechanical keyboard related kicad projects.

    272 parts6
  • 2 layers371.5 × 147.6 mmCbc1, the printed circuit board in 3D

    Cbc1

    Croktopus/Daishi

    If you just want to have a CBC1 PCB printed, you'll want to take the gerbers.zip file to your PCB fab of choice (I recommend JLCPCB for the price), as well as the gerbers.zip in the daughterboard directory.

    266 parts5GPL-3.0
  • 2 layers408.5 × 95 mmKeyboard layout pcb, the printed circuit board in 3D

    Keyboard layout pcb

    Avaviel/mechanical_keyboard_mac

    Custom Mechanical Keyboard for Mac built from scratch

    211 parts
  • 2 layers323.9 × 145.3 mmKeyboard pcb, the printed circuit board in 3D

    Keyboard pcb

    chiappe666/keyboard-pcb

    pcb for my keyboard

    264 partsMIT
  • 2 layers496.6 × 153.7 mmFu keyboard, the printed circuit board in 3D

    Fu keyboard

    kitspace-test-repos/kicad6-file-collection

    592 partsMIT
  • 2 layers389.7 × 131.6 mm1800 layout bak, the printed circuit board in 3D

    1800 layout bak

    MaiTheSan/PCB-Design

    All PCB Projects of SawnsProjects & Salane

    367 parts
  • 2 layers70 × 20.1 mmSPD DC MotorHBridge, the printed circuit board in 3D

    SPD DC MotorHBridge

    Jarins/Solder-Paste-Dispenser-with-DCMotor

    Motorized solder paste dispenser

    48 parts29GPL-3.0