corne low profile bluetooth keyboard

2022-03-07
2022-04-08

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. Support wired operation. 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

software

accessories

look & feel

tools & setting

flash & test

build: hardware

!!! safety !!!

prepare

  1. Wrap and insulate battery wires.
  2. Estimate placement of all parts and accessories, making sure the dimensions will work out.
    • This build uses a relatively large battery which will be situated apart from the PCB, namely below the bottom of the case. The minimum heights of the bumper feet therefore need to be calculated beforehand and care must be taken to afford enough length for the powering wires.

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 -.

PCB (main board)

  1. Solder all keyswitch diodes.
    • Save diode legs to be reused for socketing MCU.
  2. Solder all keyswitch hotswap sockets.
    • Check keyswitch hotswappability, but not too often as the pins will wear out.
  3. Solder reset switch.
  4. Solder TRRS jack.

MCU

  1. Connect MCU; load firmware & check operation; disconnect MCU.
    • See boot below
  2. Insert pins into MCU hotswap socket.
    • Optionally cut off diode legs and use them as pins.
  3. Place MCU hotswap socket into PCB (main board); stabilise socket; solder socket.
  4. Place MCU onto hotswap socket; stabilise pins and MCU; solder pins to MCU.
    • Check MCU hotswappability, but not too often as the diode-leg pins bend easily and may become weak.
  5. Connect MCU; check each key; disconnect MCU.

keyswitch

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

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.
  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.
  6. Install MCU on PCB; affix MCU cover.
  7. Affix dangling components.
    • Use strong adhesive for power switch (very unlikely for switch to fail). Strong enough to resist tugging force of wires, but not too strong that replacing switch will destroy case.
    • Use minimally strong adhesive for battery (not too unlikely for battery to be replaced later, but the battery is still quite heavy).
    • Use weak adhesive for JST connector (for easy battery replacement, and the connector is quite light and loose).
    • Use weak adhesive for any floating wires.
  8. 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.
  9. Install keycaps.
    • Homing keycaps where middle fingers rest.
    • 1.5U keycaps for thumb-reach keys.
    • Different color keycaps for modifier & layer keys.
  10. Plug in battery, switch on power.

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.
      • If the half is not recognised, double-tap its 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.
    • Single-tap halves' respective reset switches simultaneously.
    • Pairing between halves should happen automatically.
  3. Pair and connect keyboard (left half is primary) to computer.

test

build: software

github.com/blobject/zmk-config

layout

.---.  .----.----.----.----.----.----..----.----.----.----.----.----.
|1 2|  |.  .|1 f1|2 f2|3 f3|4 f4|5 f5||6 f6|7 f7|8 f8|9 f9|0f10|del.|
|0 ^|  |esc.|q  Q|w  W|e  E|r  R|t  T||y  Y|u  U|i  I|o  O|p  P|bsp.|
:---:  |----|----|----|----|----|----||----|----|----|----|----|----|
|***|  |****|! l-|@ l+|# v-|$ v+|%f11||^f12|& dd|*  u|? uu||   |\ins|
|mod|  |ctl |a  A|s  S|d  D|f  F|g  G||h  H|j  J|k  K|l  L|_  /|"  '|
'---'  |----|----|----|----|----|----||----|----|----|----|----|----|
  one  |****|` pr|~   |(   |[ vx|{ lk||} |<|]  l|)  d|<  r|> >||****|
+ two  |shl |z  Z|x  X|c  C|v  V|b  B||n  N|m  M|,  ;|.  :|-  +|shr |
= tri  '----'----'----|----|----|----||----|----|----|----'----'----'
= -.--.--.---.--.---. |****|****|\t .||=  .|****|****|
 b1|b2|b3|clr|bt|usb| |sup |one |\s .||\n .|two |alt | <--- thumb
|z |x |c | v |b | u | '----'----'----''----'----'----'
'--'--'--'---'--'---' ----- left ---^  ^--- right -----------------^

alphabet

QWERTY sucks, but let the OS handle the switching of the alphabetic layout. Changing it in the keyboard firmware will complicate synchronisation with other keyboards (eg. the one that comes with a laptop by default).

root/page/corne