DEV Community

Cover image for Pinky 4 byggelogg
Ingar Almklov
Ingar Almklov

Posted on

Pinky 4 byggelogg

Jeg har i løpet av de siste par årene blitt mer og mer interessert i mekaniske tastaturer og har en god stund hatt lyst til å lage mitt helt eget fra bunnen av.
Siden jeg er rimelig fersk i bygge-tastatur-gamet så vil du nok gjennom dette innlegget se både dårlig lodding og feil begrepsbruk; hvis du har noe feedback så er det bare å ta kontakt.

Byggeprosessen ble påbegynt så smått med at jeg høsten 2019 bygde meg en liten macro-pad med god hjelp av min kollega Kristian Rosland:

BDN9 macropad

BDN9 macro pad

Denne var relativt enkel å sette sammen, så det var i stor spenning at jeg iverksatte prosjekt bygge-et-helt-tastatur-som-skal-bli-så-bra-at-jeg-kan-bruke-det-på-jobb.

Valget falt til slutt på Pinky4; et tastatur som var basert på andre (i miljøet) kjente tastatur som crkbd, Lily58, Ergo42 og Helix.
Det jeg likte med Pinky4 var at det hadde tallrad, fulle kolonner i midten, lavprofiltaster på tomlene og at det var designet for Kailh hot-swap sockets.
Det det sistnevnte betyr er at dersom jeg senere får lyst til å bruke noen andre switcher så kan jeg enkelt bytte dem ut uten å måtte fram med loddebolten.

En fin ting var at littlekeyboards.com selger et sett med PCB-ene, socketene, dioder, TRRS-porter (for tilkobling mellom halvdelene) og reset-brytere (for å enkelt programmere tastaturet), i tillegg til at man derfra også kunne kjøpe ferdiglagde kasser å montere tastaturet i.
I tillegg til settet og kassen fra LittleKeyboards så bestilte jeg mikrokontrollere (to stk Elite-C), Kailh Choc lavprofilswitcher til tommelknappene, TRRS-kabel og keycaps fra andre butikker.
Switcher for de "vanlige" knappene hadde jeg fra før; Sakurios, som er deilige, stille lineære switcher med 62g tyngde.

Pakke fra littlekeyboards

Pakke fra littlekeyboards.com

En liten spoiler: byggingen gikk til slutt bra, for jeg skriver denne byggeloggen på det helt selvbygde tastaturet som du kan se på bildet under!
Vel og merke uten keycaps på tommelkappene; de er på vei i posten.

Skrivestund

Skrivestund

Forarbeid

Loddeutstyr hadde jeg heldigvis tilgang på på verkstedet som vi har på kontoret, så etter å ha ventet i sju lange og sju brede var det bare å sette igang.
(Egentlig så tok det ikke mer enn ei uke å få delene fra USA, men når man gleder seg som en unge på julaften så går tiden uendelig sakte.)

loddestasjon

Arbeidsstasjonen

Under byggingen var denne byggeloggen uhyre nyttig; https://imgur.com/a/d4hLEag.
I tillegg vil jeg rette en stor takk til min kollega Stig Rune, som hjalp meg da jeg klønet det til og måtte gjøre ting som var langt utenfor min meget begrensede loddekompetanse; disse situasjonene kommer vi tilbake til.

Én ting jeg skulle ønske jeg gjorde før start var å markere hva som skulle være opp og ned på de to halvdelene.
Hvis jeg hadde gjort det og/eller fulgt litt bedre med så hadde jeg spart flere timer med frustrasjon.
Mer om det senere.

Dioder

Byggingen startet med å lodde på de 64 hullmonterte diodene.
I forkant hadde jeg vært lur og benyttet meg av 3D-printeren vi også har på verkstedet til å printe en diodebøyer.

Diodebøyer

Denne var veldig nyttig for å få diodene litt penere enn de hadde blitt hvis jeg bare bøyde dem for hånd.
Nå er de strengt tatt ikke så synlige der de er på undersiden av tastaturet, men det er alltids hyggelig å vite at det ser litt ålreit ut.

I den tidligere nevnte byggeloggen så loddet vedkommende diodene på oppsiden av brettet, og det gikk visst greit det også, men jeg gikk for å ha dem på undersiden for å unngå potensielle plassproblemer siden de ligger ganske tett inntil switchene.
Vedkommende tipset oså om å sette dem på i alternerende kolonner og batche opp loddingen litt, noe som viste seg å være en veldig fin approach.

Sprikende dioder

Sprikende dioder

Diodeloddingen gikk egentlig veldig fint; man ser på pcb-en en pil som peker mot der den svarte stripen på diodene er (katoden), så det er ganske greit å få dem montert i riktig retning.
Til slutt er det bare å klippe dem korte og fine.

Diodeavkapp

Rester etter å ha klippet diodene

PCB med dioder

PCB med dioder

Socketer

Neste steg var å lodde socketene til switchene.
Disse monteres på samme side som diodene.
Her ble det desvverre litt mer knot.

I byggeloggen så hadde byggeren holdt loddespissen på utsiden av lommen i socketen og varmet opp lomma nok til å bare dytte tinnet inni.
Det fikk jeg ikke til å funke, så jeg måtte prøve og feile ganske mye for å finne en approach som passet meg.
Jeg endte med å holde tinnet inntil loddebolten nær lomma, og så føre tinnet ned i lomma derfra.
Det hadde nok vært enklere om jeg hadde en tynnere tupp på loddebolten så jeg kunne få plass til både den og tinnet nedi lomma, men jeg fikk det iallfall til.
En annen ting jeg syns var litt tricky her var å klare å holde socketene på plass med én finger samtidig som jeg kontrollerte loddebolten og tilførte tinnet, men det gikk bedre og bedre for hver socket.

Etter å ha loddet et par kolonner med socketer så tenkte jeg det var greit å se over hva jeg hadde gjort så langt.
Det er jeg glad jeg gjorde, for da oppdaget jeg at jeg hadde montert én av socketene opp-ned!
Ånei!
Krise!

Socket opp-ned

Her kan man se synderen øverst til venstre.

Hvis du er en erfaren lodder så hadde nok ikke dette vært noen big deal, men for meg var dette en stor setback.
Socketen var jo loddet fast på to sider, så da var det ikke bare å varme opp den ene siden og løfte den opp.
Jeg hadde aldri avloddet noe før, så da bar det til YouTube.
Etter å ha sett noen videoer der så virket det som at trikset var å bruke varmluft.
Vi hadde en maskin for det stående på verkstedet, men den så for stor og skummel ut til at jeg turte å prøve meg på det alene.
Jeg bestemte meg da for å lodde ferdig resten av socketene (riktig vei) og høre om noen kunne hjelpe meg med å få loddet den av senere.

Begge halvdeler med socketer

Begge halvdeler med socketer

Sockets del to

Dagen etter, med friskt mot, fikk jeg hjelp av tidligere nevnte Stig Rune.
Han hadde tydeligvis loddet både på og av før, for kun med loddebolten, en tinnsuger og en pinsett så klarte han å få løsnet syndersocketen på null-komma-svisj!
Da den var løs var det bare å snu den riktig vei og smelte den på plass igjen.
Hurra!

Her ser man oppsiden av venstre halvdel, med alle socketene montert riktig vei.

Socketer riktig vei

Endelig var alle socketene montert riktig vei!

Sockets oppsummert

Et par ting å passe på:

  • Orientering på socketene: de må monteres sånn at de ikke blokkerer det store hullet i midten, hvor den store "foten" på switchene skal inn
    • Kretskortene har ganske tydelige omriss for hvordan socketene skal orienteres
  • Den nederste raden med MX-sockets er opp-ned sammenlignet med de andre radene
  • Socketene for choc-switchene er litt annerledes enn de for MX-switchene; det er ganske greit å se hvilke som skal brukes hvor

Reset-knapper, TRRS-porter og jumpere

Reset-knappene og TRRS-portene monteres på oppsiden av brettene.
Reset-knappene har ikke polaritet, så det er ikke så farlig hviklen vei man setter dem på.
For TRRS-portene så er det en outline på kortet, så bare pass på at de ligger "inni" den.

På hver halvdel er det også to jumpere mellom mikrokontrolleren og den ytterste tommelknappen.
Disse vil være på oppsiden på den ene halvdelen og på undersiden på den andre halvdelen.
Hvis du har byggesettet fra LittleKeyboards så skal disse loddes sammen; få på en god klump med tinn som dekker begge pad-ene.

Såvidt jeg har skjønt så eksisterer disse jumperne fordi man kan velge å enten bruke I2C eller seriell-kommunikasjon mellom halvdelene.
Som sagt; hvis du har byggesettet fra LittleKeyboards så skal de loddes sammen.

Hjernen(e)

På dette punktet så er det bare én ting til som skal loddes: mikrokontrollerne.
De skal monteres på oppsiden av brettet, med USB-porten ned mot brettet; undersiden av kontrollerne skal altså være opp.

Sett først headerne i brettet og pass på at de er innenfor markeringene på brettet og at de er på oppsiden.
Snu så brettet og lodd fast.
Snu brettet igjen og tre kontrolleren nedpå.
Pass på at pinnene treffer riktige hull.

Plastdelen av headerne mine var litt lave, så kontrolleren ville stå skjevt dersom jeg trykket helt ned på den enden som ikke har USB-porten.
Dette ville ikke sett pent ut, så da jeg skulle lodde dem fast startet jeg med å trykke ned på portsiden med én finger mens jeg loddet fast en av pinnene i den andre enden.
Når jeg hadde verifisert at kontrolleren var fint i vater så fortsatte jeg nedover rekka og loddet fast de resterende pinnene.
Klipp til slutt pinnene sånn at de er korte og fine.

Repeter dette for den andre halvdelen.

Flash

På dette tidspunktet så skal forhåpentligvis alt funke.
Koble til en halvdel med USB til maskinen din og flash firmware.
Første gang må dette gjøre på begge halvdelene; hvis du senere bare endrer keymap så trenger man kun å flash master.

I config.h kan man velge hvilken side som skal være master med å bruke #define MASTER_LEFT eller #define MASTER_RIGHT.
Master er den siden som USB-kabelen skal plugges inn i.
Default er venstre halvdel.

Før man går videre og monterer kassen, switcher og keycaps er det greit å sjekke at alt funker som det skal.
Fyr så opp for eksempel https://www.keyboardtester.com/tester.html på PC-en, snu tastaturet opp ned og bruk en pinsett eller lignende for å teste én og én switch.
Dette gjør du ved å sette én pinne av pinsetten inn i hver av lommene på en switch-socket for å slutte kretsten.
Forhåpentligvis så skal da keyboardtester registrere alle tastene.
Det er verdt å merke seg at default-keymap-et som ligger i qmk har en del knapper som skifter layers (KC_LOWER, KC_RAISE og KC_ADJ).
Disse vil ikke registreres i keyboardtester, så det kan være greit å bytte ut disse med noe annet i keymap-et før man flasher, for å kunne teste switchene.

Motstand

På dette tidspunktet oppdaget jeg min største tabbe.
Jeg testet et par switcher og tenkte "Hurra, hvis én switch på hver halvdel funker, så funker alle! Jeg har klart å bygge mitt eget tastatur!"

Dette stemte ikke.
Husker du da jeg sa det var lurt å markere hva som skulle være oppsiden og hva som skulle være nedsiden av halvdelene?
Det hadde ikke jeg gjort, og jeg oppdaget nå til min forferdelse at jeg hadde klart å montere den ene mikrokontrolleren på feil side av brettet!

Kontroller feil side

Her ser vi kontrolleren montert på feil side

Dette bildet tok jeg før jeg hadde loddet fast kontrolleren, men jeg burde ha catchet det allerede her at jeg hadde gjort en tabbe.

På split-tastatur som dette er det vanlig å designe PCB-en på en måte som gjør at de er reversible, sånn at man bare har én type brett som må produseres.
Dette gjør produksjonen billigere og håndteringen enklere.
På grunn av dette så fungerte tastaturet mitt fint selv om mikrokontrolleren var på feil side av brettet.
Men!
Jeg skal jo montere det i ei kasse.
Siden kassen er designet for at mikrokontrollerene er på oppsiden av brettet, så var dessverre ikke dette en tabbe jeg kunne jobbe meg rundt.
Jeg måtte derfor prøve å lodde den av, flytte den til riktig side og lodde den på igjen.

Som tidligere nevnt så har jeg veldig lite loddeerfaring.
Dette, kombinert med skrekkhistorier fra kolleger som hadde ødelagt både mikrokontroller og PCB under avlodding av kontrolleren gjorde at jeg fryktet at jeg hadde ødelagt hele (eller, strengt tatt halve) bygget mitt.

Redningen her var nok en gang Stig Runes stoiske ro og lange erfaring.
Vi prøvde først å bruke loddebolten til å varme opp to-tre loddepunkter om gangen og så lirke kontrolleren bittelitt opp for hver runde, men kom kjapt til at den satt for godt fast til at det var en realistisk approach.
Vi kom til at vi bare måtte prøve å bare klippe headerne og prøve å få av kontrolleren uten for mye skade på PCB-en.
Om det førte til skade på kontrollern hadde ikke det vært verdens ende, for vi hadde flere Pro Micro-er liggende på verkstedet som jeg kunne ha brukt som erstatning.
Jeg hadde brukt Elite-C på begge sider fordi USB-C er diggere enn USB-A, men det er jo bare én halvdel som skal kobles til PC-en, så jeg kunne ha passet på å konfigurere den halvdelen som hadde USB-C til å være master, og beholdt Pro Micro på den andre halvdelen.

Kontroller på vei av

Kontroller på vei av

En liten setback her var at de avbiterne vi hadde liggende på verkstedet var alt for tykke til å komme til mellom kontrolleren og kretskortet.
Jeg hev meg derfor på sykkelen og fikk tak i den siste tynne avbiteren de hadde inne på Kjell & Company ved Arkaden.

Vel tilbake på verkstedet satte jeg håpefullt igang med den møysommelige prosessen det var å få lirket av kontrolleren.
Etter mye knoting i starten kom jeg fram til at det som funket for meg var å klippe midt på headeren, én pinne av gangen, for så å varme opp tinnet på kontrollersiden samtidig som jeg brukte en pinsett til å dra den avklipte pinnen opp og ut.
Jeg passet veldig godt på å heller klippe for nært kontrolleren enn PCB-en, sånn at ikke PCB-en ble skadet.
Denne prosessen tok tid.
Både fordi det var litt krøkkete å komme til og fordi jeg prøvde å bevare alle delene (utenom headerne) intakte.

Kontroller på vei av 2

Det nærmer seg...

Etter det som føltes som en evighet så satt jeg faktisk med en ganske bøyd, men stor sett intakt mikrokontroller i hånda!

Bøyd kontroller

En bøyd, men intakt kontroller

Pinnehullene i kontrolleren hadde fortsatt ganske mye tinn i seg, så jeg måtte kjøre en runde med tinnsugeren for å åpne dem nok til at det var plass til å føre nye pinner gjennom dem.

Demontert kontroller

På kretskortet sto det nå igjen pinnerester i alle hullene.
Først forsøkte jeg å varme opp loddepunktet på motsatt side av pinnerestene og dra dem ut med en pinsett, men det fungerte av uvisste grunner ikke på alle.

Kort uten kontroller

PCB uten kontroller

Frustrasjonen bygde seg mer og mer opp, og til slutt kom jeg til at så lenge tinnet i de fylte hullene ikke lage en tilkobling til de hullene som headerne skal settes inn i på den andre siden så burde ting teoretisk sett gå greit.
Jeg valgte derfor å bruke avbiteren til å klippe pinnerestene så korte som mulig og tinnsugeren til å få bort så mye overflødig tinn som mulig.
Jeg gjorde dette helt til jeg var rimelig sikker på at jeg hadde fått bort nok tinn og dritt til at det ikke skulle forårsake uønskede koblinger eller kortslutninger.

Jeg hadde nå to valg:

  1. Gjenbruke mikrokontrolleren jeg hadde tatt av og håpe på at jeg ikke hadde ødelagt den i prosessen
  2. Lete fram en erstatning

Jeg plugget den løse kontrolleren til PC-en med USB og så at den lyste opp, men jeg fikk ikke her verifisert at alle portene funket som ønsket.
Det trygge valget hadde nok derfor vært å gå for valg nummer to, men mitt (dog meget utrente) øye syns at kontrolleren så såpass intakt, om enn litt bøyd ut, at jeg bestemte meg for å gamble.
Jeg hadde jo klart å få den av én gang, så dersom det skulle vise seg at den ikke fungerte så kunne jeg i verste fall demontere den en gang til!

Jeg fant noen nye headere liggende rundt på verkstedet og etter en ny runde med lodding var det med stor spenning (he he) at jeg koblet tastaturet i PC-en igjen.
Med pinsetten og KeyboardTester kunne jeg nå til min store glede konstatere at tastaturet levde!
Jeg kunne nesten ikke tro mine egne øyne.
Hadde jeg virkelig klart å lodde av og på kontrolleren uten å skade hverken kontroller eller kretskort?!

PCB med nye headere

PCB med nye headere

Over ser vi undersiden av kortet med de nye headerne loddet på.
Jeg er ganske sikker på at disse loddepunktene ikke er som de skal være, men det funket!

I lykkerus monterte jeg kasse og switcher og var klar for å knaste løs.
Før jeg satte på keycaps så stoppet jeg imidlertid meg selv da jeg kom på at jeg kanskje burde verifisere at alle knappene fungerte.

Montert med kasse

Montert med kasse

Montert med switcher

... og med switcher

Tidligere nevnte jeg at det var lurt å lage seg et test-keymap for å verifisere alle knappene.
Ja, du gjettet riktig, det var basert på etterklokskap.

Jeg fant da ut at det var fem knapper som ikke fungerte: L-knappen samt hele tommelraden på venstre tastaturhalvdel.
Og jeg som jeg trodde at jeg var ferdig!
Jaja, jeg burde vel klare å få til dette også.
Klokka hadde sneket seg over leggetid, så jeg la det fra meg for kvelden og gikk hjem og drømte om hva som kunne være galt.

Jeg kom til at for L-knappen så var det forhåpentligvis kun koblingen på den ene socketen som måtte være dårlig.
For de tommelknappene så måtte det nesten være en sammenheng.
Det hadde jo nesten vært litt for tilfeldig om jeg hadde klart å lodde fire socketer på rad for dårlig, når alle utenom én av de andre funket fint.

Jeg har ikke satt meg så veldig godt inn i hvordan firmwaren (QMK) fungerer, men jeg hadde skjønt at måten tastene registreres på er at det på mikrokontrolleren er én pinne for hver kolonne og én for hver rad.
Den vil så registrere at for eksempel dersom det kommer signal på pinnen for kolonne to og pinnen for rad tre så skal den sende tastekoden for A.

Ved å da se på koden til firmware-en så fant jeg i config.h denne snutten:

/*
 * Keyboard Matrix Assignments
 *
 * Change this to how you wired your keyboard
 * COLS: AVR pins used for columns, left to right
 * ROWS: AVR pins used for rows, top to bottom
 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
 *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
 *
*/
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }

// wiring of each half
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }

Basert på dette så må altså tommelknappraden være koblet til port B4 på kontrolleren.

Ny dag, nye muligheter

L-knappen viste seg å være en enkel fiks.
Jeg tippet jo der at det bare var litt dårlig tilkobling mellom socketen og brettet, så det jeg gjorde da var rett og slett bare å varme opp tinnet i koblingen mens jeg presset socketen ned med fingeren.
Og det funket!
Hurra!

Så var det over på den hele raden som ikke ville være på lag.
For ordens skyld gjorde jeg der samme øvelse på hver av de fire socketene, bare for å være sikker på at det ikke skulle være en lignende teit feil.

Jeg brukte så et multimeter for å verifisere hypotesen min om at det var kontakten mellom knapperaden og mikrokontrolleren som var problemet.
Jeg sjekket at det var forventet motstand mellom diodene som tilhørte switchene, men ikke mellom switchene og portene på kontrolleren.
Jeg fikk også bekreftet at jeg ved å koble kontrolleren til PC-en kunne sende tastetrykk ved å koble sammen f.eks. portene for rad to og kolonne tre med en pinsett, men at tilsvarende ikke gikk for noen av tastene i tommelraden.

Å verifisere feilhypotesten er vel og bra det, men hvordan fikse det?
Jeg følte meg såpass varm i trøya med loddebolten nå, så jeg valgte å bare prøve meg fram.
Jeg varmet opp tinnet på den pinnen og så at det fløt nogenlunde greit, både på oppsiden av kontrolleren og undersiden av kretskortet.
No dice.
Jaja.
Jeg innså etter hvert at selve loddingen på det punktet var ganske lite pent, så jeg bestemte meg for å dra frem tinnsugeren og forsøke å få bort alt der og legge det på på nytt igjen.
Det var ikke så enkelt, så etter å ha fått bort ca. halvparten av den alt for store tinnklumpen på pinnen ga jeg opp det.
Mens jeg prøvde å tenke ut hva neste fikseforsøk kunne være så bestemte jeg meg for å bare koble den til PC-en og sjekke at jeg ikke hadde ødelagt noe annet i prosessen.

...

Alt funket!
Alle knappene!!
Tilogmed tommelraden!!!
Hipp hurra for prøving og feiling!!!!

Jeg kunne nestne ikke tro mine egne øyne eller fingertupper, men etter et par minutter gikk det opp for meg at selv om jeg hadde montert både socketer og kontroller feil, loddet av og på og klippet og herjet så satt jeg her nå med et helt fungerende, selvbygd tastatur!

Ferdig med dolch

Ferdig montert med DSA Dolch keycaps

Slutt(et krets)

Jeg hadde på det tidspunktet ikke fått keycap-ene jeg skulle ha enda, så jeg satte på et random DSA Dolch-sett midlertidig, men allerede dagen etter dumpet GMK Pulse-settet mitt inn på posten!
Jeg venter fortsatt på å få keycaps til tommelknappene, men det går overraskende greit å skrive på Kailh Choc-taster uten dem.
Jeg venter også på noen skikkelige håndleddstøtter.
Det er ganske ubehagelig å bruke tastaturet uten det, så midlertidig bruker jeg de som hører til ErgoDox-en min.

Så lang så er jeg utrolig fornøyd med tastaturet.
Sakurios er noen av de deiligste switchene jeg har prøvd, GMK keycaps er akkurat det jeg håpet de skulle være (både estetisk og taktilt) og Kailh Choc Black kjennes som et veldig riktig valg til tommelknappene.

Jeg liker veldig godt at tastaturet er designet med lavprofilknapper på tomlene, da jeg føler at det at de er lavere enn resten av tastaturet passer håndposituren veldig godt.
På de nederste knappene i de indre kolonnene har jeg satt på R4-keycaps opp-ned, noe som gjør at de også veldig lett nås med tomlene.

Alt i alt var dette en utrolig gøy og lærerik opplevelse, og selv om jeg nå har bygget et tastatur som passer meg helt ypperlig så innser jeg at jeg kommer til å lete etter unnskyldninger etter å bygge flere i fremtiden, for dette var gøy!

Flere bilder

Pulse innpakket

GMK Pulse i innpakningen

Pulse oversikt

GMK Pulse lagt utover

Mangler noen keycaps

Semi-nude

Ferdig!

Ferdig montert, og fungerende, tastatur!

Top comments (2)

Collapse
 
chiangs profile image
Stephen Chiang

Flott skrivet og sikkert en pen tastatur!

Husk å bruke tag i artiklen #mechanicalkeyboards.

🍻

Collapse
 
ingara profile image
Ingar Almklov

Takk! La til tag nå :)