Permalänk
Medlem

DIY Tangentbord

Hej

Mitt nuvarande tangentbord har börjat att tappa kontakten med datorn, så behöver ett nytt. Det speciella med det tangentbordet är att det har en usb-hubb, som fungerar väldigt bra till att koppla in mottagaren för musen i. Vill ha lite trevlig RGB och usb-hubb men har inte hittat några vettiga tangentbord att köpa. Så tänkte bygga ett eget.

Tycker att alla gaming tangentbord med RGB är för ljusstarka och ledarna verkar uppdateras med låg frekvens. Så vill ha minst 60Hz uppdatering och 24bit färg för mjukare animationer. Vill också bara ha en kabel till tangentbordet. Usb-hubb och belysning ska gå i samma kabel som själva tangenterna, vilket verkar vara vanligt att det är en kabel för varje sak. Tänkte också ha 1KHz i scanrate på tangenterna då det är den frekvensen som usb driven går i. Fördröjningen för ett tangenttryck borde då bli 1ms.

Krav
- Mekaniska brytare.
- RGB 24bit med över 60Hz uppdatering.
- Endast en kabel till tangentbordet.
- Usb-hubb.
- 1KHz scanrate.

Har programmerat och gjort elektronik projekt tidigare men aldrig ett så stort kretskort som ett tangentbord. Har heller inte använt usb tidigare.

Tänkte börja med att göra el-designen och placera ut brytarna.

Permalänk
Medlem

Har lagt ut brytarna och provar placering av övriga komponenter. Edit: Har satta alla brytarna 180 grader fel.

Till kontroller tänkte jag använda ATxmega32A4U. Den har både Usb 2.0 och Direct Memory Access(DMA).
DMA lär behövas till att läsa in brytarna och till att skicka data till lysdioderna.

Lysdioderna blir APA102-2020. De har 24bit RGB + 5bit nivåkontroll och är endast 2x2mm. De har också SPI kompatibelt inerface som gör att dom går att använda ihop med DMA.

Slänger dit två Usb portar istället för en. Usb-Hubben blir USB2513B som har 3st portar, en behövs internt.

Tänkte inte använda mig av matris scanning för avläsning av brytarna. Varje brytare går istället till en egen ingång på ett shiftregister. Kan då låta en DMA process läsa av hela tangentbordet på ca 100µs. Shiftregisterna blir 14st 74HC597.

Permalänk
Medlem

Kul projekt, blir intressant att följa! Vad kommer du använda för brytare och caps? Stort lycka till!

Visa signatur

[Gigabyte B550i Aorus Pro Ax] [AMD Ryzen 5600X] [Noctua NH-L12S Ghost S1 Ed] [Asus GTX 1080 STRIX 8 GB] [32GB HyperX Fury RGB 3600 MHz] [2x WD Black SN750 1 TB NVME] [Corsair SF750] [Loque Ghost S1 MK3] [Synology DS212 2x2 TB NAS] [2x Mackie HR624] [Dell Ultrasharp U2713HM 27" IPS] [TOFU 65% ALU, Zealios V2] [Logitech G502] [Qpad QH-90]

Permalänk
Medlem
Skrivet av bluppblupp:

Kul projekt, blir intressant att följa! Vad kommer du använda för brytare och caps? Stort lycka till!

Tack!

Har köpt GMMK Gateron Red och Ducky Keycaps PBT Double Shot Svart. Har också köpt Cherry pcb stabilizers.

Permalänk
Medlem

Fortsätter att placera ut komponenterna och se vart allt kan få plats.

Permalänk
Medlem

Har bestämt att lägga kontrollenheten för tangentbordet på ett eget kretskort. För att få en mer modulär uppbyggnad. Ger också bättre möjlighet ifall något inte skulle fungera.

Har lagt ut det mesta som ska vara på styrkortet. Usb hub, microcontroller och support-komponenter. Har också bytt microkontrollerns kapsel från tqfp till qfn för att spara plats.

Permalänk
Medlem

Hur går detta projekt? Sjukt kul att följa, särskilt när jag själv varit sugen på att handlöda ihop något - men eget kretskort är verkligen nästa nivå!

Visa signatur

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

@oscar:prutt.party / monotux@freenode

Permalänk
Medlem
Skrivet av monotux:

Hur går detta projekt? Sjukt kul att följa, särskilt när jag själv varit sugen på att handlöda ihop något - men eget kretskort är verkligen nästa nivå!

Kul att det är av intresse. Det går bra ska göra en uppdatering.

Permalänk
Medlem

Är klar med layouten av kretskorten.

Har lagt till lysdioder för Numlock, capslock etc. Får se om jag visar dom på chassiet genom en lightpipe eller visar status genom brytarnas dioder istället.

Placerar kontrollern på undersidan av huvudkortet med alla brytarna. Kunde då få in de extra tangenterna för räknare och volymkontroll som är med i Ducky kittet.

Brytarna går in till var sin ingång på shiftregistrena. De är placerade i utrymmet under översta raden av tangenter. Placerade också ut terminerings motstånd på klocklinjerna till shiftregistrena ifall det skulle behövas.
Lysdioderna har sin buss som slingrar sig fram rad för rad.

Har också gjort designen för chassit i 3d CAD.

Designen blir lite kantig men enkel.
Chassit består av flera bitar som kommer att skäras ut med laser i 3mm Plexiglas. Dessa limmas sedan ihop till en överdel och en underdel. Distanserna består också av en eller flera bitar 5mm Plexiglas.
Överdelen och underdelen skruvas sedan ihop med kretskorten med hjälp av M2 skruv. Tänkte också lacka delarna i matt svart för att matcha capsen.

Väntar nu på komponenter från Mouser och kretskort från JLCPCB.

Permalänk
Medlem

Sjukt coolt! Blir det inte meckigt med limning av så många lager 3mm plexi?

Visa signatur

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

@oscar:prutt.party / monotux@freenode

Permalänk
Medlem
Skrivet av monotux:

Sjukt coolt! Blir det inte meckigt med limning av så många lager 3mm plexi?

Det är bara distanserna till kretskortet för brytarna som limmas i lager. Tänkte limma sidorna på chassit stående.

Detta är delarna till toppen. Kan inte köra hela på samma gång i min laserskärare. Så har också delat allt på mitten. Skarvarna är lite förskjutna mot varandra så det blir starkt.

Permalänk
Medlem

Vilka är tangenterna uppe till höger på tangentbordet? Ovanför numpad

Permalänk
Medlem
Skrivet av m4gnify:

Vilka är tangenterna uppe till höger på tangentbordet? Ovanför numpad

De är kalkulatorn, mute, vol- och vol+.

Permalänk
Medlem

Kul projekt, efter detta kan du börja tälja guld på den smått galna custom mechanical keyboard-hypen som svept in senaste åren.

Om du är sugen på lite inspo: https://geekhack.org/index.php?board=132.0

Mvh S

Permalänk
Medlem

Har glömt att uppdatera denna tråden.

Skar ut alla Plexi bitarna i min laserskärare. Gängade hålen i distansbitarna och limmade sedan ihop allt med vanligt snabblim.

Monterade alla komponenterna på bas kretskortet. Använde varmluft för lysdioderna och lödpenna till resten. Tog sin tid att montera.

Monterade styrkortet med sin usb hub(USB2513B) och huvudkontroller(ATxmega32A4U).

Upptäckte vid provning att shiftregistrerna behövde en flank på en input som jag hade satt till konstant hög. Som tur va gick det att lösa med ett litet snitt och en bygel till intilliggande ingång som var styrd.

Test av det hela systemet. Mjukvaran är inte särskilt speciell, utgick från USB stacken och tangentbords exemplet i Atmel ASF. Lade till mjukvara för att läsa av tangenterna och uppdatera lysdioderna. Båda använder var sin Spi buss så kan med marginal läsa av tangenterna i samma polltid som USBn kör. Uppdaterar lysdioderna med en timer med låg prioritet i 30Hz för att ha marginal att göra mer komplexa animationer och grafik.

Efter att jag var säkert på att lysdioder och ingångar fungerade korrekt monterade jag brytarna. Här testas alla komponenter ihop för första gången. Gillade den transparenta looken, kanske skulle ha satsat på det.

Monterade isär allt igen och spraymålade chassiet.

Allt monterat igen.

Baksidan med usb mottagaren till musen monterad.

Styrkortets placering och lucka för åtkomst.

Har inte gjort så mycket grafik än men tangenterna tänds i vitt när man trycker på dem.

Några Gifar

Permalänk
Medlem

Snyggt, bra jobbat.