Wireless Keyboard From a Kids Laptop

by Appeltaartje97 in Circuits > Reuse

368 Views, 2 Favorites, 0 Comments

Wireless Keyboard From a Kids Laptop

11020715-1413890684-855715.jpg

Met al het online leven van tegenwoordig, wilde ik graag in de bank zitten met de online pub quiz. Hier had ik een draadloos toetsenbord voor nodig. Dus in plaats van er een te kopen kwam ik ineens in het bezit van een Vtech kinderlaptop en dacht, ik kan er zelf een maken. Bovendien een draadloos toetsenbord met een Dancebreak knop leek mij wel wat.

Supplies

  • Vtech kinderlaptop
  • ESP32
  • Schakelaar

Tools

  • Multimeter
  • Soldeer gereedschap
  • Laptop/PC

Reverse Engineering and Research

WhatsApp Image 2021-02-04 at 08.45.57.jpeg
Excel sheet.PNG
T5fuv.jpg

Voor ik allemaal aankopen wilde doen, wilde ik eerst zien of het mogelijk was. Online was niet zo veel te vinden dus dan maar de laptop uit elkaar halen. Hier kwam ik een grote pcb voor het toetsenbord tegen. Met een multimeter zijn al de toetsten gemeten en komt er een matrix uit van 7 bij 10. Elke rij en kolom heeft zijn eigen draad.

Nu ik dit weet is het tijd voor wat onderzoek. Ik vond online dat er converters waren die een flat cable van een laptop keyboard omzet naar usb. Ik heb geen links gevonden waar ze gekocht konden worden, maar ze bestaan. Deze usb kon dan met een Arduino weer gelezen worden en verstuurt worden over bluetooth. Voor deze methode zijn dus die converter, Arduino, usb host Shield, bluetooth module en voeding nodig. Voor dit project leek het me dat dit makkelijker kon.

Na iets meer google werk vond ik de ESP32, ik had daar al meer van gehoord maar nog nooit mee gewerkt. De ESP32 heeft ingebouwde bluetooth. Dat is al een module minder, ook kan ik gebruik maken van de keypad library om het matrix uit te lezen, dan is de converter niet meer nodig. Voor de ESP32 is er ook een bluetooth keyboard library. Lijkt me een prima oplossing, dus meteen een ESP32 besteld.


Soldering

Untitled Sketch_bb.png

Heb als eerst alleen het toetsenbord aangesloten op de ESP32 dan kan de ESP32 gevoed worden via de usb. Als alles werkt en ingebouwd gaat worden wil ik het voeden met 4 AA batterijen. Dit omdat de laptop hier ook mee gevoed werd en dus de houders al ingebouwd zaten. Uit mijn onderzoek bleek dat de regulator tot 12V kan hebben dus zou 6V geen probleem moeten zijn. Maar mijn ervaring met regulatoren op Arduino is dat ze heel erg warm kunnen worden. Dit moet dus nog voor de ESP32 getest worden, als dit te warm wordt of de batterijen gaan te snel leeg zal ik overgaan op een LiPo batterij. Hier moet dan nog de laad elektronica voor worden toegevoegd, maar daar ga ik pas over nadenken als dat nodig is.

One Year Later

Het project liep niet volgens plan, er kwamen steeds problemen met toetsen die meerdere tekens aan stuurden. Dus is er veel gekrast en gedaan op de PCB van het toetsenbord maar het werkte niet. Toen heb ik alles in de prullenbak gegooid. Maar het idee bleef me achter volgen en we zaten nu alweer in een lockdown, dus ik moest het opnieuw proberen. Mijn bron van kinderlaptops had er nog één dus kon ik weer aan de slag. Deze keer met een simpelere aanpak. De rijen en kolommen waren al gescheiden in bundels van draden, met trial en error kwam ik er al snel achter dat deze laptop bestaat uit 7 rijen en 11 kolommen. Nog steeds kreeg ik het probleem dat sommige toetsen meerdere tekens stuurden. Dus dan zal het wel aan de ESP32 liggen, een paar pinnen gewisseld en ALLES WERKT !!!!! De pinnen die ik gebruikt heb zijn de volgende.

Pinnen voor de rijen {23, 22, 21, 19, 18, 5, 16}.

Pinnen voor de kolommen {32, 33, 25, 26, 27, 14, 12, 13, 15, 3, 4}.

Nu kon ik dus eindelijk verder.


Making Matrix

Spread sheet.PNG
Bijzondere toetsen.PNG
Uiteindelijke matrix.PNG

Net als bij de vorige laptop is er een tabel gemaakt van het matrix, om te achterhalen welke knop waar zit. Deze keer op een wat overzichtelijkere manier. De groene rijen zijn de 7 rijen van het matrix, in de code is er op elke plek een uniek karakter gezet zo kan er achterhaald worden waar in het matrix elke toets staat. Op het moment dat elke toets bekend was, heeft elke toets een logisch karakter gekregen, de A een a, de B een b enzovoort. Voor de toetsen zoals Backspace, Enter en Koptelefoon is een eigen uniek karakter gegeven. (dit zijn al de hoofdletters). Nu dat alles een karakter heeft is het matrix opnieuw gemaakt met die iets logische karakters.

Software

Nu was het tijd om er een echt keyboard van te maken. zoals eerder gezegd, worden de Keypad en BleKeyboard librarys gebruikt om het toetsenbord te laten werken. Om de Keypad library te installeren. Ga naar Sketch > Include Library > Manage Libraries en zoek naar "Keypad". klik er op en installeer. Voor de BleKeyboaurd moet de ZIP gedownload worden en toegevoegd worden via Sketch > Include Library > Add .ZIP Library.

Voor de sketch zelf kun je dit voorbeeld downloaden, maar daar zal waarschijnlijk niets van kloppen omdat elk keyboard anders is. De vorige stap kan je helpen jouw toetsenbord te achterhalen. Ook is het mogelijk om knoppen met bijzondere functies toe te voegen, zoals het openen van een programma die je vaak gebruikt.


Downloads

Finishing

WhatsApp Image 2022-01-30 at 10.02.50.jpeg
WhatsApp Image 2022-01-30 at 10.28.19.jpeg

Na al de toetsen toegevoegd te hebben had ik een relatief compleet keyboard, voldoende om het solderen af te maken. De batterijen houder van de laptop houdt drie AA batterijen vast, wat perfect is voor het voeden van de EPS32. Voor de aan knop heb ik ook een mooie schakelaar die ingebouwd kon worden achter de aan/uit knop van de laptop. Nu kunnen de drie onderdelen verbonden worden volgens het eerder gegeven circuit (in stap 2). Dan kun je alles vast maken met net iets te veel hot glue, als laatste schroef je alles dicht. Geniet van je draadloos toetsenbord met een Dance Break!