This is my first attempt at handwiring and writing custom firmware.
I have posted these photos on reddit, if you want to chat about this keeb leave a comment there.
I take inspiration from the Let's split.
Keyboard Maintainer: Lu
What | Quantity |
---|---|
Pro micro atmega32u4 |
2 |
Case XD24 / Cospad | 2 |
Plate ID75 aluminum | 1 |
Keycaps DOYS | 48 |
Diode 1N4148 | 48 |
Kailh hot swap sockets | 48 |
Tecsee Purple Panda1 | 48 |
20mm two-stage springs | 48 |
Krytox 205g0 | ? |
24 awg cable | ? |
4.7kΞ© pull-up resistors | 2 |
USB-C female connectors | 2 |
M2 Brass standoff | 8 |
M2 screws | 8 |
1 I really like the way that the switches turned out after spring swap and lub. But I still do not recommend them due to poor quality control, allot of the switches don't work or make a weird sound when pressed.
As the cospad case only have one open for a cable, i take it to a someone with an appropriate machine to do one more open.
For the plate I choose the ID75. Out of the box it has this size:
,-----------------------------------------------------------------------------------------.
| | | | | | | | | | | | | | | |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | | | | | | | | | |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | | | | | | | | | |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | | | | | | | | | |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | | | | | | | | | |
`-----------------------------------------------------------------------------------------'
In order to use it i have done some cuts that i will try to ilustrate below. The cells market with an X represent what was cut.
,-----------------------------------------------------------------------------------------.
| x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | x | x | x | | | | | | |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | x | x | x | | | | | | |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | x | x | x | | | | | | |
|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
| | | | | | | x | x | x | | | | | | |
`-----------------------------------------------------------------------------------------'
Which left me with 2 plates, of this size:
,-----------------------------------. ,-----------------------------------.
| | | | | | | | | | | | | |
|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
| | | | | | | | | | | | | |
|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
| | | | | | | | | | | | | |
|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
| | | | | | | | | | | | | |
`-----------------------------------' `-----------------------------------'
The direction of the diodes is COL2ROW
, this means that the dark side of the diodes are facing the row cable.
β COLUMN β COLUMN β COLUMN β COLUMN β COLUMN β COLUMN
β β β β β β
ROW β β β β β β
βββββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ β
ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β
β² β β² β β² β β² β β² β β² β
βββββββββΌβββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββΌβββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β
β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β
βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β
β β β β β β β β β β β β
β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β
βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β
β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β
β [βββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€ β [ ββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€
ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β
ROW β β β β β β
βββββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ β
ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β
β² β β² β β² β β² β β² β β² β
βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β
β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β
βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β
β β β β β β β β β β β β
β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β
βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β
β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β
β [βββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€
ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β
ROW β β β β β β
βββββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ β
ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β
β² β β² β β² β β² β β² β β² β
βββββββββΌβββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββΌβββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β
β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β
βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β
β β β β β β β β β β β β
β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β
βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β
β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β
β [βββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€ β [ ββββββΌβββ€ β [βββββββΌβββ€ β [βββββββΌβββ€
ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β ββββββββββ β
ROW β β β β β β
βββββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ¬ββββββββββββββΌβββββββββββ β
ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β ββ΄β β
β² β β² β β² β β² β β² β β² β
βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β βββββββββ΄βββββββ β
β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β β 1N4148 DIODE β β
βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β βββββββββ¬βββββββ β
β β β β β β β β β β β β
β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β β ββββββββββ β
βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β βββΌββββ] β β
β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β β SWITCH β β
β [βββββββΌβββ β [βββββββΌβββ β [βββββββΌβββ β [βββββββΌβββ β [βββββββΌβββ β [βββββββΌβββ
ββββββββββ ββββββββββ ββββββββββ ββββββββββ ββββββββββ ββββββββββ
I used the following pins to connect the columns 10, 16, 14, 15, A0, A1
, which translate to B6, B2, B3, B1, F7, F6
in the firmware. For the rows i used 4, 5, 6, 7
, which translate to D4, C6, D7, E6
in the firmware.
I used USB-C and I2C to connect the halves, using GND, VCC, 2, 3
on both pro micros. Between VCC
and 2
and VCC
and 3
i used 4.7kΞ© pull-up resistors.
βββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β β
β βββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββ
β β β β
β β βββββββββββ β β βββββββββββ
β β +----------β USB β-----------+ β β +----------β USB β-----------+
β β | [ ]J1 βββββββββββ | β β | [ ]J1 βββββββββββ |
β β | | β β | |
β β | [ ]D3/TXD RAW[ ] | β β | [ ]D3/TXD RAW[ ] |
β β | [ ]D2/RXI GND[ ] | β β | [ ]D2/RXI GND[ ] |
β β | [ ]GND RST[ ] | β β +--------+ +--------+ | [ ]GND RST[ ] |
β βββββββ]GND VCC[ββββββββ β β | | | | βββββββββββββββββ]GND VCC[ββββββββββββ
βββββββββββ]D1/2A A3/F4[ ] | β β ββββββββ]G βββ βββ G [ββββββββ βββββββββββββββ]D1/2 A3/F4[ ] | β
βββββββββββ]D0/3L A2/F5[ ] | β β ββββββββββββββββ]D+ β β USB-C β β D+[ββββββββββ βββββββββββββ]D0/3 A2/F5[ ] | β
β | [ ]D4/4 A1/F6[ ] | β β β ββββββββ]D- β β CABLE β β D-[ββββββββββββ | [ ]D4/4 A1/F6[ ] | β
β | [ ]C6/5 A0/F7[ ] | β β β βββββΌβββββββ]V βββ βββ V [ββββββββ | [ ]C6/5 A0/F7[ ] | β
β | [ ]D7/6 15/B1[ ] | β β β β β | | | | β | [ ]D7/6 15/B1[ ] | β
β | [ ]E6/7 14/B3[ ] | β β β β β +--------+ +--------+ β | [ ]E6/7 14/B3[ ] | β
β | [ ]B4/8 16/B2[ ] | β ββββββββββ¬βββββββ β β β | [ ]B4/8 16/B2[ ] | β
β | [ ]B5/9 A10/10/B6[ ] | β β β β βββββββββββββββββββββββββββββ β | [ ]B5/9 A10/10/B6[ ] | β
β | PRO-MICRO | β ββββββββββ΄ββββββββ β β β COLORS USED IN THE β β | PRO-MICRO | β
β +--------------------------------+ β β 4.7kΞ© RESISTOR β β β β USB-C CONNECTOR β β +--------------------------------+ β
β β ββββββββββ¬ββββββββ β β ββββββ¬βββββββββββββββββββββββ€ β β
β β β β β β β β β β
β βββββ¬βββββββββ΄βββββββββββ β β G β GREEN + WHITE β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ββββββββββ β β D+ β BLUE β
β ββββββββββ΄ββββββββ β β D- β BLUE + WHITE β
β β 4.7kΞ© RESISTOR β β β V β GREEN β
β ββββββββββ¬ββββββββ β β β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββ ββββββ΄βββββββββββββββββββββββ
As this board is not merged in the official qmk or vial repository you will need to move the files to keyboards/handwired/lets_mimich
to compile and flash it. If you decide to use vial the same path exist inside the vial folder.
Make example for this keyboard (after setting up your build environment):
make handwired/lets_mimich:vial
Flashing example for this keyboard:
make handwired/lets_mimich:vial:flash
In the other folder, i left a vial keymap that is quite adequate do use.
Make example for this keyboard (after setting up your build environment):
make handwired/lets_mimich:default
Flashing example for this keyboard:
make handwired/lets_mimich:default:flash
- Bootmagic: Hold
(0,0)
when plugin the keyboard