foostan's Corne Keyboard (crkbd v2)
Check the final product
Check the video of this build
- Sort the parts
- Install/Configure QMK
- Compile/Flash Firmware
- Mark pcbs side (left/right)
- Solder OLED jumper pads
- Soldering Pin Sockets (pro-micro/oled)
- Solder diodes
- Prepare copper wire to be the new pro-micro/OLED male pin
- Solder pro-micro male sockets "legs"
- Rewire oled socket with new "legs"
- Solder TRRS
- Manual test
- Solder reset
- Solder hot-swaps
- Mount the case
- (optional) Wood Wristrest
Part list (Original)
- 2x Corne PCBs
- 1x Corne Case
- 2x Pro Micro ATmega32U4 5V/16MHz Module controller Mega32U4 Mini leonardo for Arduino with the bootloader
- 2x OLED 128X32 OLED Display Module 0.91" IIC Communicate for ardunio
- 42x Kailh Hot-swappable PCB Socket Sip For Mechanical Keyboard
- 42x SMD diodes 1N4148 SOD-123
- 1M Round Copper Wire 0.5mm
- 4x 2.54mm Pin Header Female Single Row 40
- 2x PJ320D 3.5MM Headphone TRRS Jack Socket Female Connector
- 1x 1m 4 pole Stero audio cable Car AUX MP3/MP4 3.5mm male to male
- 2x Micro Switch Push Button 3.5X6.0X4.3mm 1136-4.3 DIP Black
- 42x Zilents V2 Blue switches 67g
- 42x Keycaps - 1u x 40, 1.5u x 2
First to compile the crkbd qmk firmware you will need to use avr-gcc 8.
In Arch use the following commands to install the dependencies:
sudo pacman --needed -U https://archive.archlinux.org/packages/a/avr-gcc/avr-gcc-8.3.0-1-x86_64.pkg.tar.xz
sudo pacman -S --needed \
arm-none-eabi-binutils \
arm-none-eabi-gcc \
arm-none-eabi-newlib \
avrdude \
avr-binutils \
avr-libc \
base-devel \
clang \
dfu-programmer \
dfu-util \
diffutils \
gcc \
git \
libusb-compat \
python \
python-pip \
unzip \
wget \
zip
Then clone the qmk firmware and then
make crkbd:default:flash
This will compile and start to flash the firmware, make sure your pro-micro is connected in the usb port and the following message will be shown:
QMK Firmware 0.9.19
WARNING:
Can not run bin/qmk! This tool will be required when the develop branch is merged on 2020 Aug 29.
Please run util/qmk_install.sh to install all the dependencies QMK requires.
Making crkbd/rev1 with keymap default and target flash
avr-gcc (GCC) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
text data bss dec hex filename
0 21574 0 21574 5446 .build/crkbd_rev1_default.hex
Copying crkbd_rev1_default.hex to qmk_firmware folder [OK]
Checking file size of crkbd_rev1_default.hex [OK]
* The firmware size is fine - 21574/28672 (75%, 7098 bytes free)
Detecting USB port, reset your controller now..................
At this moment, with some tweezers, reset the pro-micro
If you did right the following will be shown:
Device /dev/ttyACM0 has appeared; assuming it is the controller.
Waiting for /dev/ttyACM0 to become writable..
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file ".build/crkbd_rev1_default.hex"
avrdude: input file .build/crkbd_rev1_default.hex auto detected as Intel Hex
avrdude: writing flash (21574 bytes):
Writing | ################################################## | 100% 1.64s
avrdude: 21574 bytes of flash written
avrdude: verifying flash memory against .build/crkbd_rev1_default.hex:
avrdude: load data flash data from input file .build/crkbd_rev1_default.hex:
avrdude: input file .build/crkbd_rev1_default.hex auto detected as Intel Hex
avrdude: input file .build/crkbd_rev1_default.hex contains 21574 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.16s
avrdude: verifying ...
avrdude: 21574 bytes of flash verified
avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude done. Thank you.
Do this for both pro-micros and you good to go.
This is self explanatory, but is very helpfull to mark your pcbs sides.
You need to solder the oled jumper pads in order to use oleds.
I had to double check sometimes to see if I was soldering in the right side of the pcb, that's why marking the pcbs before helps a lot thought the process. The other problem I had was that the PCB is designed to work in both sides, so you have 2 sets of holes to solder your pro micro, the trick to know which hole to use is use the ones that are inside a white box line looking from above. From bellow the holes are passing thought the white line.
The SMD diodes are trick at first, they are pretty small and they have polarity, make sure to match the polarity with PCB.
To make it easier to solder, first put some solder on one of the PCB diode contacts and then with a tweezer hold the diode over the solder and heat it to stick the diode, proceed to the other diode contact and solder it normally.
Instead of using thru-hole diode legs for this step, I experimented doing the male pin legs with some 0.5mm copper wire, the only down side doing this is that the copper wire I bought came covered with a thin plastic layer that I had to remove in order to make it electrical conductor.
Left wire is the one I sanded out the plastic compared with how it came on the right.
I used some masking tape to help me organize the wires.
Also another benefit of using masking tape is to don't let the solder go thought the hole and "glue" with the PCB socket.
Is a good idea to use some solder flux on the copper wires to help with the soldering
This was the hardest part of all project, de-soldering the OLED current pins without a good solder sucker wasn't a good idea.
I was so frustrated with the results that I forgot to take pictures of this process.
An easy thru-hole solder, just had to straight the component legs before.
At this moment I had enough to setup a manual test, to check if all I did until here was ok.
I when to keyboardtester and plugged the new keyboard to the PC.
I simulated the switch behaviour with the tweezer.
Again an easy step, just had to straight the component legs before.
Very similar to soldering the diodes, but with a way bigger component.
Just some screws and the build was almost finished.
Adding the switches over the case.
Checking if all is working before the keycaps
I asked my father to create some wristrest for this project.
I didn't made much in this step, but just helped him as an assistant, maybe in the future I will have enough wood skill to do so.