Det finnes en drøss av ferdige design hvis man vil bygge sitt eget tastatur. Jeg har en stund hatt lyst til å prøve et minimalistisk delt tastatur. Valget falt på en variant med 36 taster totalt. Men siden jeg er den jeg er, så kunne jeg ikke gå for en enkel løsning. Litt av greia er at jeg ikke har designet noen PCB på evigheter, så i stede for å gå for standardløsningen med å kjøpe en av de utallige mikrokontrollerkortene, og så kun designe selve tastatur-PCBen, så gikk jeg for en fullintegrert løsning, Dvs alt på en PCB (eller to da, siden det er en høyre og en venstre halvdel).
Jeg valgte RP2040 som kontroller siden den er grisebillig, og veldig kraftig. Den er også ganske enkel å designe med, men litt krevende å montere. De to halvdelene kobles sammen med en vanlig ethernet kabel med RJ45 i hver ende. Alle andre som driver med dette bruker 4 pol 3.5mm jack av en eller annen grunn. Den ser sikkert fin ut, men det er betydlig vanskeligere å kjøpe passende kabel, og hvis man kobler ut eller inn når det er power på systemet risikerer man å kortslutte et eller annet. Kortet har jeg designet slik at det kan brukes både som høyre og venstre, riktignok med komponentene på undersiden på når den er en venstreside. Men både RJ45 og USB kontakten vil sitte på oversiden uansett. Begge her hullmonterte. USB-C er veldig symmetrisk, med unntak av DP og DM, så det eneste jeg behøvde å gjøre for å tilpasse den for motsatt side var å lage alternative footprint for 27Ohm seriemotstandene slik at disse signalene ble krysset. RJ 45 kontakten har 8 pinner, og det var lett å lage den symmetrisk også. Jeg har lagt opp til at kommunikasjonen mellom kortene er vha UART, så når RJ45 bli montert på motsatt side blir RX og TX byttet, og dermed blir disse signalene koblet riktig selv med en ukrysset Ethernet-kabel. Jeg har også lagt ut en solder-bead jumper på hver side som forteller kontrolleren om den er en høyre eller venstre. Til slutt kan det nevnes at hver tast er koblet direkte til IO-pinne. Dvs det er ikke behov for dioder og slikt.
Jeg gikk for den rimeligste pcb-en jeg kunne finne, kun to lag og ikke noen plugging av via. Ikke spesielt vrient å legge ut siden jeg ikke hadde noen restriksjoner å snakke om, men jeg kunne ikke legge via i pad under RP2040 og flash. Det vil antakelig si at jeg ikke får optimal kjøling, men så har jeg heller ikke behøv for å kjøre dette systemet på spesiell høy klokkefrekvens.
Kortet ble produsert av https://jlcpcb.com. 5 stk for ca 10USD pluss frakt og MVA. Totalt endte jeg på 40USD, men fikk trekt fra 10 pga en velkomst-rabatt. Totalt ble det rett over 300kr ferdig levert inkl MVA. Og best av alt, jeg sendte inn gerberfilene på torsdag i forrige uke, og fikk levert kortene på tirsdag. Dvs 5 dager. Fantastisk.
Designet ble gjort i Kicad8. Første gang jeg bruker dette på evigheter, og jeg må si at det har skjedd store ting. Det er jo blitt fantastisk bra, og jeg ser ikke noen grunn til å bruke noe annet til private prosjekter heretter.
Det som står igjen nå er å skrive litt firmware. Jeg tipper det er ganske uproblematisk å tilpasse en av de ferdig konfigurerbare løsningene der ute, men jeg har lyst til å prøve å skrive noe selv. Dette er jo aller mest et treningsprosjekt for meg. Så får jeg heller gå for en ferdigløsning hvis jeg blir lei. Ja, så må jeg jo bestykke kortet, men det tar jeg etter hvert. Må kjøpe litt komponenter først. Tipper jeg gjør det etter ferien.