Jeg lagde meg et tastatur

Daniel Eriksson
Systek
Published in
8 min readMar 19, 2024
Forfatterens tastatur

Mamma har alltid vært en person jeg stoler på, og er det to ting hun virkelig har lært meg, så er det at det er viktig for ryggen å ha en god seng — man tilbringer tross alt 1/3 av livet sitt der — og at hjemmelagd (mat) alltid er best.

Ryggen min har allerede en god seng, men hva med senga til fingrene mine? Det stedet hvor fingrene oppholder seg 1/3 av sitt yrkesaktive liv? De har alltid hatt en helt ålreit seng, men hvis man virkelig skal varte dem opp så må man ifølge mamma gi dem en hjemmelagd seng. Og man hører på hva mor sier.

Planlegging og innkjøp

Så jeg bestemte meg for å lage en seng (heretter “tastatur”) til fingerne mine. De hadde følgende krav:

Én halvdel til hver hånd

Såkalt splitt. Ingen dobbeltseng her altså. Dette tilrettelegger rett og slett for bedre ergonomi siden halvdelene kan flyttes og vris uavhengig av hverandre. Prøv selv: Hold armene dine foran deg i en naturlig tastaturposisjon. Sjansen er stor for at de ikke er klint inntil hverandre og at fingrene vil forme en slags V.

Forfatterens hender i naturlig tastaturposisjon med illustrert V-form

Enkodere

(Vribrytere). Disse kan brukes til så mangt. Området de skinner på er spamming av tastetrykk. Det blir ofte mye piling rundt omkring når man programmerer, og dette kan gjøres mye hurtigere med en enkoder.

Tidligere har jeg også tatt meg selv i ofte gripe etter musa når jeg vil scrolle i koden, men nå har jeg i stedet konfigurert enkoderen min til å hoppe ti linjer per knepp. (Jeg kunne også ha konfigurert enkoderen til å utføre ekte scroll, men det fordrer at musepekeren hviler på riktig sted.)

Andre ting man kan bruke enkoderen til er for eksempel tabbing (så man kan surfe på Internett uten å bruke mus), og styring av volum. Egentlig er det bare fantasien som setter grenser. Jeg planlegger for eksempel å emulere analog joystick-input, så enkoderen kan brukes som et slags ratt i mitt favoritt racing-spill.

Innebygde miniskjermer

“Hvorfor trenger du dette?” Jeg trenger ikke dette … Men det er tøft. Og det finnes selvsagt praktiske bruksområder — man kan vise hva pokker man vil på disse. Det mest praktiske jeg bruker mine til er å vise et kart over knappeoppsettet mitt, samt å vise at caps lock står på. Men da må man nesten titte ned på tastaturet sitt, da. Og det er jo ikke meningen. Men det er tøft.

Skjerm som viser knappeoppsett
Min emulerte numpad

Lavprofil

Muligens bare personlig preferanse, men andre tastaturer jeg eier har så høye knapper at jeg føler jeg må strekke fingrene mine over for å komme til. Dette skal nå bli en saga blott.

Minst mulig overflødige knapper

Den observante leser (eller bildetitter) har kanskje sett at det ikke akkurat er 105 knotter fordelt på mine to halvdeler, sånn som det er på et konvensjonelt tastatur. Mitt tastatur har flere “lag”. Èn og samme knapp kan gjøre forskjellige ting avhengig av hvilken modifier du holder inne. Når du tenker deg om, så har jo vanlige tastaturer også denne funksjonen. Holder du inne Shift så blir bokstavene store, holder du inne Ctrl så skjer det noe helt annet, og kanskje skjer det også spennende ting om du holder inne Alt eller AltGr (og hva skjer om du prøver å holde inne mange av disse modifierne samtidig?).

Så da mener jeg at det holder med knapper for vanlige bokstaver, Mellomrom, Backspace, Enter, Ctrlog Shift. Jeg hater å flytte henda mine, så tall, F-taster, Home, End, Tab, Escapeog faens oldemor ligger og skjuler seg bak bokstavtastene mine i egne lag. Deilig!

Mulighet for tenting

“Tenting?” Ja? Kan du ikke engelsk? Jeg ønsker å kunne tilte halvdelene mine så de utgjør et slags telt, altså at de er høyt oppe må midten der de møter hverandre, og lavt nede ut mot kantene. Akkurat som et telt. Dette for å føye seg etter de fleste henders naturlige hvileposisjon. Prøv testen med å holde hendene foran deg igjen og se.

Tøysebilde hvor tastaturet brukes som telt ute i naturen
Velkommen inn!
♪ These hands are made for tenting ♫

Et tastatur som heter Kyria rev3 så ut til å kunne oppfylle disse kriteriene, så jeg bestilte meg et byggesett. Innholdet var som følger:

  • 2 × PCB (kretskort — ett til hver halvdel)
  • 2 × bunn- og topp-plater som beskytter og holder ting på plass
  • Mikrokontrollere
  • Skjermer
  • Sokler til skjermer og mikrokontrollere
  • Deksler til skjermer
  • Hot-swap-sokler
  • Dioder
  • TRRS-sokler
  • TRRS-kabel
  • LEDs som skal lyse ned i pulten
  • LEDs som skal lyse opp gjennom knappene
  • Tenting-pucks (en slags adapter for å forenkle tenting)
  • Enkodere
  • Brytere (knapper rett og slett)
  • Knappehetter
  • Nødproviant som ble slukt før nøden meldte seg
Oversiktsbilde over alle delene
Nesten alt du trenger for å lage ditt eget tastatur — inkludert nødproviant (ikke avbildet: enkoderhetter og oppover-LEDs)

Lodding

Følgende måtte loddes:

  1. Dioder — én for hver knapp
  2. RGB-underlys-LEDs — seks stykker på hver side
  3. RGB-LEDs for hver knappene
  4. Hot-swap-sokler til bryterne
  5. Enkodere — én på hver side
  6. Reset-knapper — én på hver side
  7. Motstander — to på hver side
  8. TRRS-plugger — én på hver side
  9. Sokler for mikrokontrollerne (hunnplugger i kretskortet og hannplugger i mikrokontrolleren)
  10. Sokler for skjermene (samme som over)
Bakerst fra venstre: En vanlig ikke-lavprofil bryter med en relativt høy hette (ikke brukt), en lavprofilbryter med hette, bare en lavprofilhette. Midten fra venstre: En lavprofilbryter opp-ned, en lavprofilbryter (ned-opp …?), en hot-swap-sokkel, et riskorn (heller ikke brukt). Foran fra venstre: En nedoverlysende LED, en oppoverlysende LED, en motstand, en ikke-lysende diode.
En nesten ferdigloddet halvdel. Hot-swap-soklene titter gjennom fra undersiden, og på høyresiden kan vi se motstander, reset-knapp, TRRS-plugg og sokkel til OLED-skjermen. Ikke avbildet: Dioder (de er på undersiden) og sokler til mikrokontrolleren (ikke påloddet da bildet ble knipset)

Dette tar noen timer og kan være litt plundrete, men når man er inne i det blir det ganske zen og tilfredsstillende — litt som med puslespill (bare at puslespill ikke legger igjen svimerker i pulten, noe loddingen min har). Her anbefaler jeg å benytte seg av en ikke-elendig loddebolt med en passende tupp. Jeg bruker en som ser litt ut som en sprøytespiss, bare hvor hullet er tettet igjen. Anbefaler også å bruke veldig tynt loddetinn. Det er veeeldig små greier som skal loddes her, så man trenger ofte fryktelig lite tinn. Mitt tinn var 0,2 mm bredt. Det er også fullstendig umulig å få utrettet noe som helst uten en (vinklet) pinsett.

En “sprøytespiss”-tupp, et riskorn og et par svimerker
Litt ris, 0,2 mm loddetinn og 1 mm loddetinn
En vinklet pinsett (men ikke noe ris)

Problemer

Jeg er ingen autoritet innen lodding og slet spesielt mye med lodding av underlyset. Når man lodder er det viktig å få varmet opp kontaktpunktene som skal loddes sammen, men disse LED-ene hadde veldig lite eksponert metall som loddebolten kunne få tak på. Etter at jeg oppfant min egen smøre-opp-og-ned-teknikk gikk det imidlertid greit.

Under testing fant jeg også ut at jeg hadde slurvet fælt med lodding av dioder, hot-swap-sokler og knappelys. Her er det dog ikke verre enn at man tester, finner ut av noe ikke funker, pirker litt, finner ut at noe er løst, og lodder på nytt. Resten av loddingen pleier å gå greit, med mindre man griser med tinnet og ender opp med å koble sammen noe som ikke skal kobles sammen (bridging). Men det skal heldigvis en del grising til for å oppnå dette.

To kardinaltabber greide jeg likevel å presse inn, og dette førte rett og slett til at jeg ødela mikrokontrollerne og gjorde hele tastaturet ubrukelig. Det jeg gjorde var å lodde mens tastaturet var koblet til (så jeg kjapt kunne se om LED-en fungerte, tenkte jeg) og å koble inn og ut TRRS-pluggen mens tastaturet var koblet til. Du må ikke gjøre det!

Men hvordan fiksa jeg dette? Ved å bestille nye mikrokontrollere og punge ut 800 kroner ekstra. Enkel fiks.

Montering

Når alt omsider så ut til å fungere kunne jeg gå videre til sjarmøretappen som består av ren montering. Følgende skulle monteres:

  • Brytere
  • Hetter til bryterne (keycaps)
  • Hetter til enkoderne
  • Tenting-puck (en slags adapter for å forenkle tenting)
  • Skjermdeksler
  • Bunnplater
  • Tentingmekanismer

Siden hot-swap allerede var installert var det bare på klemme på plass bryterne og å klemme på plass hettene oppå der igjen. Resten er bare ren skruing.

Tenting-puckene har et skruehull på 1/4 tomme, noe som gjør dem kompatible med det meste av kamera-tripods. Jeg valgte å feste dem til Z-fleks tilthoder.

Undersiden av den ene halvdelen med tenting-pucken i midten
Z-fleks tilthoder

Konfigurering og programmering

Og da gjenstår det bare å konfigurere/programmere tastaturet. Tastaturet ble flashet med en fastvare som heter QMK, og som er standard for de aller fleste hjemmelagde (og noen bortelagde) tastaturer.

Med denne kan man velge å gjøre så mye eller lite man vil. Er du av den late typen kan du flashe med en ferdigbygd fastvare som tillater deg å endre på knappeoppsettet i sanntid med enkel dra-og-slipp med musa (rett i nettleseren om du vil!).

Er du litt mer eventyrlysten kan du gå inn og flikke litt på koden. Jeg var plent nødt om jeg ønsket å endre litt på funksjonaliteten til enkoderne og skjermene. Koden er laget i C, og den kompileres med et eget QMK-verktøy.

Jeg har ikke tenkt å gå så nøye i detalj på koden (kanskje ved en senere anledning?), men her kan du se hvordan jeg har konfigurert min venstre enkoder.

bool encoder_update_kb(uint8_t layer, bool clockwise) {
if (!encoder_update_user(index, clockwise)) return false;

if (layer == 0) {
switch(biton32(layer_state)) {
case 1:
if (clockwise) {
tap_code(KC_RGHT);
} else {
tap_code(KC_LEFT);
}

return true;
case 4:
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}

return true;
default:
if (clockwise) {
tap_code(KC_DOWN);
} else {
tap_code(KC_UP);
}

return true;
}
}
}

Og etter dette var det bare å lene seg tilbake og nyte sin nye kreasjon. Jeg er bare ca 30 % mindre effektiv med dette enn jeg er med et vanlig tastatur, så dette må betraktes som en stor seier. Dessuten kan jeg bruke det som sjekketriks.

Og, du, vi ønsker oss flere kloke hoder i Systek. Ta en titt på www.systek.no og se om det er noe for deg. :)

--

--