

Nummacro
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
4AT90USB1286-MU
QFN-64-40℃~+85℃ 10bit 128KB 16MHz 2.7V~5.5V 48 4KB 8 Bit 8KB AVR Built-in FLASH QFN-64-EP(9x9) Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)LL4148
LL-341 Independent 1V@10mA 200mA 4A 4ns 500mW 5uA@75V 75V LL-34 Switching Diodes ROHSMDDSwitching DiodesMBR130LSFT1G-FS
SOD-123-55℃~+125℃ 1A 200uA@30V 30V 380mV@1A 40A Independent SOD-123 Schottky Diodes ROHSFUXINSEMISchottky DiodesMMBT3904
SOT-23-55℃~+150℃ 1 NPN 100 100nA 200mA 200mW 300MHz 300mV 40V 6V NPN SOT-23 Bipolar (BJT) ROHSJiangsu Changjing Electronics Technology (CJ)Bipolar (BJT)
README
README.mdec0board
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 87 | 470 | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26 +71 |
| 87 | LED | LED_THT:LED_D3.0mm | LED_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 |
| 87 | LL4148 | Diode_SMD:D_MiniMELF | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +71 |
| 3 | 100n | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | C2, C3, C7 |
| 2 | 22pF | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | C4, C5 |
| 2 | 22r | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R4, R5 |
| 2 | 5.1k | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R2, R3 |
| 1 | MBR130LSFT1G | Diode_SMD:D_PowerDI-123 | D88 |
| 1 | 0 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_10 |
| 1 | 1 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_1 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | C8 |
| 1 | 16Mhz | Crystal:Crystal_SMD_HC49-SD_HandSoldering | Y1 |
| 1 | 1K | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | R10 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | C6 |
| 1 | 2 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_2 |
| 1 | 3 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_3 |
| 1 | 4 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_4 |
| 1 | 5 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_5 |
| 1 | 6 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_6 |
| 1 | 7 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_7 |
| 1 | 8 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_8 |
| 1 | 9 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_9 |
| 1 | A | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_A1 |
| 1 | AT90USB1286 | AT90USB1286-AU:QFP80P1600X1600X120-64N | U1 |
| 1 | B | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_B1 |
| 1 | BKSPC | Button_Switch_Keyboard:SW_Cherry_MX1A_2.00u_PCB | SW_BKSPC1 |
| 1 | BSLSH | Button_Switch_Keyboard:SW_Cherry_MX1A_1.50u_PCB | SW_BSLSH1 |
| 1 | C | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_C1 |
| 1 | CAPS | Button_Switch_Keyboard:SW_Cherry_MX1A_1.75u_PCB | SW_CAPS1 |
| 1 | COLON | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_COLON1 |
| 1 | COMMA | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_COMMA1 |
| 1 | D | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_D1 |
| 1 | DEL | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_DEL1 |
| 1 | DOWN | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_DOWN1 |
| 1 | E | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_E1 |
| 1 | END | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_END1 |
| 1 | ENTER | Button_Switch_Keyboard:SW_Cherry_MX1A_2.25u_PCB | SW_ENTER1 |
| 1 | EQUAL | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_EQUAL1 |
| 1 | ESC | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_ESC1 |
| 1 | F | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F0 |
| 1 | F1 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F1 |
| 1 | F10 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F10 |
| 1 | F11 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F11 |
| 1 | F12 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F12 |
| 1 | F2 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F2 |
| 1 | F3 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F3 |
| 1 | F4 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F4 |
| 1 | F5 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F5 |
| 1 | F6 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F6 |
| 1 | F7 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F7 |
| 1 | F8 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F8 |
| 1 | F9 | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_F9 |
| 1 | FSLASH | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_FSLASH1 |
| 1 | FUNC | Button_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCB | SW_FUNC1 |
| 1 | G | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_G1 |
| 1 | GCT USB4085 | Connector_USB:USB_C_Receptacle_GCT_USB4085 | J1 |
| 1 | H | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_H1 |
| 1 | HOME | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_HOME1 |
| 1 | HWB | Button_Switch_SMD:SW_SPST_EVQQ2 | SW2 |
| 1 | I | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_I1 |
| 1 | INS | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_INS1 |
| 1 | ISP | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | CON1 |
| 1 | J | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_J1 |
| 1 | K | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_K1 |
| 1 | L | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_L1 |
| 1 | LALT | Button_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCB | SW_LALT1 |
| 1 | LBRACE | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_LBRACE1 |
| 1 | LCTRL | Button_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCB | SW_LCTRL1 |
| 1 | LEFT | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_LEFT1 |
| 1 | LOGO | ingwaz | G*** |
| 1 | LSHIFT | Button_Switch_Keyboard:SW_Cherry_MX1A_2.25u_PCB | SW_LSHIFT1 |
| 1 | LSUP | Button_Switch_Keyboard:SW_Cherry_MX1A_1.25u_PCB | SW_LSUP1 |
| 1 | M | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_M1 |
| 1 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | N | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_N1 |
| 1 | O | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_O1 |
| 1 | P | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_P1 |
| 1 | PAUSE | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_PAUSE1 |
| 1 | PERIOD | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_PERIOD1 |
| 1 | PGDN | Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_PCB | SW_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 mm

- 2 layers

- 2 layers371.5 × 147.6 mm

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 mm

Keyboard layout pcb
Avaviel/mechanical_keyboard_mac
Custom Mechanical Keyboard for Mac built from scratch
211 parts - 2 layers323.9 × 145.3 mm

- 2 layers496.6 × 153.7 mm

- 2 layers389.7 × 131.6 mm

- 2 layers70 × 20.1 mm

SPD DC MotorHBridge
Jarins/Solder-Paste-Dispenser-with-DCMotor
Motorized solder paste dispenser
48 parts29GPL-3.0