corne low profile bluetooth keyboard

2022-03-07
2024-02-18

intro

This page is a build & usage log of the Corne keyboard.

goal

A bluetooth + battery setup for ergonomics, portability, and software development use. Make it as silent as feasible. Do not support lighting and screen miscellany.

disclaimer

The information presented here is intended to be more "hints and notes" rather than "instructions to be followed"; please heed the information at your own risk. I am neither an electrical engineer nor experienced in keyboard building.

reference

material

main

accessories

look & feel

tools & setting

flash & test

build: hardware

0. !!! safety !!!

1. prepare

  1. Wrap and insulate battery wires.
  2. Estimate placement of all parts and accessories, making sure the dimensions will work out.

2. power switch & battery (prep, no power yet)

  1. House battery wires in JST (battery-side) connector.
    • Alternatively, solder-join the battery wires to the JST wires.
  2. Situate JST (board-side) connector on PCB or case.
  3. Situate power switch on PCB or case.
  4. Lop off one of the two power throws.
  5. Connect JST - to power throw.
  6. Connect JST + to MCU +.
  7. Connect power pole to MCU -.

3. PCB (main board)

  1. Solder keyswitch diodes.
  2. Solder keyswitch hotswap sockets.
  3. Solder reset switch.
  4. Solder MCU hotswap sockets.

4. MCU

  1. Connect MCU; load firmware & check operation; disconnect MCU.
    • See boot below
  2. Apply scotch tape over MCU hotswap socket.
  3. Poke holes in scotch tape using pins, inserting them into their sockets.
  4. Place MCU over the tape and pins; solder pins to MCU.
  5. Connect MCU; check each key; disconnect MCU.
  6. Remove MCU; remove tape.

5. keyswitch

  1. Disassemble keyswitches.
  2. Tape-mod keyswitches.
  3. Lube keyswitches.
  4. Reassemble keyswitches.

6. assembly

  1. Check that power is off: battery unplugged, power switched off.
  2. Affix keyswitches to top plate.
  3. Affix PCB to keyswitches (which themselves have been affixed to top plate).
  4. Situate dampening pad to bottom plate
    • Requires fitting and poking holes.
    • Warning: If the vertical fit is too tight/dense, the adhesive quality of some pads (like sorbothane) might strip off PCB padding during keyboard disassembly.
  5. Adjoin top portion (top plate + keyswitches + PCB) to bottom portion (dampener + bottom plate).
    • Use minimum-length standoffs so the unit is as snug as possible. But beware of the adhesion between PCB and padding, noted above.
  6. Affix bumper feet.
    • Ensure each half rests completely securely and at the desired angle. Keyboard should not wobble when pressing hard on any of the keys.
  7. Affix dangling components.
    • Use medium adhesive for power switch.
    • Use medium or strong adhesive for battery.
    • Use weak adhesive for JST connector and any floating wires.
  8. Install keycaps.
    • Homing keycaps where middle fingers rest.
    • 1.5U keycaps for thumb-reach keys.
    • Different colors for modifier & layer keys.
  9. Install MCU on PCB; install MCU cover.
  10. Plug in battery, switch on power.

build: software

github.com/blobject/zmk-config

boot

  1. (First boot:) Load firmware onto each half by connecting it to computer via USB.
    1. Mount/Open the half (recognised as a USB storage device) in a file manager.
      • To enter bootloader mode, double-tap the reset switch.
    2. Copy firmware onto USB storage device.
    3. Unmount/Eject USB storage device, then disconnect half.
  2. Before pairing to any computer, let halves pair to each other.
    • Power on, or single-tap halves' respective reset switches, simultaneously.
    • Pairing between halves should happen automatically.
  3. Pair and connect board (left half is primary) to computer.

bluetooth troubleshoot

reset

test

layout

.---. .----.----.----.----.----.----..----.----.----.----.----.----.
|1 2| |    |1 f1|2 f2|3 f3|4 f4|5 f5||6 f6|7 f7|8 f8|9 f9|0f10|  \d|
|a A| | \t |q  Q|w  W|e  E|r  R|t  T||y  Y|u  U|i  I|o  O|p  P|\b  |
:---: |----|----|----|----|----|----||----|----|----|----|----|----|
|***| |****|! m3|@ m2|# mu|$ m1|%f11||^f12|& uu|*  u|- dd|=   ||  \|
|mod| | ct |a  A|s  S|d  D|f  F|g  G||h  H|j  J|k  K|l  L|;  :|'  "|
:---: |----|----|----|----|----|----||----|----|----|----|----|----|
|=h=| |****|`   |~ ml|( md|[ mr|{ lk||} <-|]  l|)  d|_  r|+ ->|=sh=|
|-t-| | sh |z  Z|x  X|c  C|v  V|b  B||n  N|m  M|,  <|.  >|/  ?|-\n-|
'---' '----'----'----|----|----|----||----|----|----|----'----'----'
layers:              |****|****|    ||    |****|****|
  ONE                | al | su | \e || \s |ONE |TWO | <--- thumb
+ TWO                '----'----'----''----'----'----'
= TRI  ^------------------ left ---^  ^--- right -----------------^
= .--.--.--.--.--. .--.--.--.---.--.  .---.--. .--. .---.
  |l-|l+|vx|v-|v+| |b1|b2|b3|clr|bt|  |usb|pr| |in| |GCS|
  |q |w |e |r |t | |z |x |c | v |b |  | u |i | |h | | n |
  '--'--'--'--'--' '--'--'--'---'--'  '---'--' '--' '---'
root/page/corne