Forum: PC Hard- und Software Tastatur komplett selbst erstellen


von Kael (Gast)


Lesenswert?

Hallo!
Ich wollte mir als Anfängerprojekt einmal eine komplett eigene Tastatur 
bauen.
3D Drucker für das Gehäuse, Tasten usw ist auch vorhanden.

Allerdings bin ich bei den ganzen Schaltungsplänen die man so im Inet 
findet ein wenig.... 'Überfordert' ^^"

Deswegen wollte ich auch direkt einmal fragen ob es dafür gute 
Literatur/Internetseiten gibt die seriös sind und das ganze auch gut 
umsetzen um sich in die Schaltpläne einzuarbeiten/mehr in Elektrotechnik 
einzulesen.
Gleichzeitig aber auch vielleicht eine Seite wo man so ein 
Anfängerprojekt wie z.B. eine Tastatur zu bauen (Ob nun durch reine 
Schaltung oder aber über einen MC verbunden) ganz gut wäre.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Welche konkrete Schaltung du verwendest (sofern du überhaupt eine Idee 
hast) ist eigentlich völlig egal, Hauptsache es werden die richtigen 
Scancodes (einer bestimmten Vorbild-Tastatur) gesendet.

Aber auch die sind eigentlich egal, wenn du auf der PC-Seite das 
entsprechende Mapping-File erstellen und installieren kannst.

Kern das Ganzen ist heutzutage ein Mikrocontroller mit genügend Pins für 
die Tastenmatrix (und natürlich gute Taster) und eine entsprechende 
Software - thats all ...

: Bearbeitet durch User
von Kael (Gast)


Lesenswert?

Eine direkte Idee noch nicht. Ich bin im Moment etwas am 'sammeln' :)

Aber ich will das auch für Löt-Übungen verwenden.

Endziel wäre dahingehend die Möglichkeit z.B. eine Tastatur zu haben in 
dem man dann weitere Segmente einfach einstecken und nutzen kann.
Allerdings ist das noch weit entfernt und ich möchte da erstmal vor 
allem etwas lernen.

Denke auch ein "Numpad" als erstes Projekt wäre da vielleicht sinniger.

von 321 (Gast)


Lesenswert?

Ein Arduino Leonardo kann eine Tastatur simulieren. Damit dürfte es 
nicht allzu schwer sein, für ein Anfängerprojekt ist das aber trotzdem 
sehr ambitioniert.

von Frank L. (hermastersvoice)


Lesenswert?

kauf dir einen Arduino Leonardo oder einen Teensy. Die können von sich 
aus schon HID sein. Damit wäre die Software schonmal recht einfach über 
die Arduino-IDE zu programmieren. Da erstmal ein paar Tasten für ein 
Numpad anschliessen ist kein Problem.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ein Arduino Micro Pro oder ein Digistamp auch.

Letzterer hat aber wohl zu wenig Pins, um die Matrix direkt auszuwerten. 
Dann müsste man etwas mit Schieberegistern basteln und diese seriell 
auslesen. Aber da ist man 1-2-fix vom Aufwand her bereits bei 
"richtigen" Tastaturcontrollern ...

Es gab übrigens auch mal Taster mit Mini-LCD obendrauf, also 
"dynamische" Beschriftung oder Icons.

von Kael (Gast)


Lesenswert?

Würde ein 'Übergang' zu einem Arduino in so einem Fall nicht für eine 
Verzögerung sorgen?

einen normalen Arduino habe ich sogar noch

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kael schrieb:
> Würde ein 'Übergang' zu einem Arduino

Was für einen "Übergang" meinst Du?

von michael_ (Gast)


Lesenswert?

Für den AVR gibt es auch eine Applikation.

AVR313
AN_1235AVR313

https://www.microchip.com/sitesearch/search/Application%20Notes/avr313?&mns=avr313&mnc=All

von Einer (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Was für einen "Übergang" meinst Du?

Er meint wohl die Datenlaufzeit.

Kael schrieb:
> Würde ein 'Übergang' zu einem Arduino in so einem Fall nicht für eine
> Verzögerung sorgen?

Nein.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Kael schrieb:
> komplett eigene Tastatur
> bauen.

Impliziert das auch eine komplett eigene Software? Das ist bei USB schon 
etwas aufwendiger.

Kael schrieb:
> einen normalen Arduino habe ich sogar noch

Die können aber nur USB-Serial, aber keine beliebigen eigenen 
USB-Protokolle wie HID, wenn du nicht gerade den Adapter-AVR 
umprogrammierst.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Einer schrieb:
> Er meint wohl die Datenlaufzeit.

Welche? Du kannst Dir gerne noch einen anderen Namen dafür ausdenken, 
die Frage beantwortet es nicht.

USB-HID kann man sowohl in Software via V-USB als auch in Hardware via 
LUFA abwickeln (sofern der verwendete AVR über die entsprechende 
USB-Device-Hardware verfügt), beides ist aus dem Arduino-Umfeld heraus 
ansprechbar.

Für kleine Tastaturaufgaben (ein paar Sondertasten, Zehnerblock o.ä.) 
kann man problemlos den V-USB-Ansatz verwenden, HID ist einer der 
wenigen Fälle, wo das sogar spezifikationskonform ist.

Mehr Freiheitsgrade aber hat man mit einem AVR mit integrierter 
USB-Device-Hardware wie z.B. dem ATmega32U4, der u.a. auf dem Arduino 
Leonardo oder Micro zu finden ist.

Und die beiden genannten Arduino-Modelle verwenden keine separate 
USB-UART-Bridge, sind also als vollwertige USB-Geräte nutzbar.

: Bearbeitet durch User
von Marten Morten (Gast)


Lesenswert?

Kael schrieb:
> Anfängerprojekt

> 'Überfordert'

Dann ist der sinnvollste Rat den man dir als Anfänger geben kann etwas 
Einfacheres zu machen. Weniger Frust, schnelleres Erfolgserlebnis, 
weniger Geldverbrennung, besserer Lerneffekt.

Zum Beispiel ein einfacher Taschenrechner (ca. 10 Euro als Bausatz):
https://www.aliexpress.com/item/4000039605253.htm

Oder ein komplizierterer Taschenrechner:
Beitrag "Noch ein Taschenrechner auf ATMega Basis"

Beides schöne Spielereien mit Tasten. Beide schön in sich abgeschlossene 
Projekte.

Als nächsten Schritt vielleicht ein Numpad. Da hast du den ganzen 
USB-Ärger mit dabei. Danach kann ich mir vorstellen, dass du genug von 
Tastaturen mit USB hast und was anderes bastelst.

Denn ehrlich, eine Platine für eine komplette PC-Tastatur mit über 100 
Tasten layouten, dazu noch das ganze Gehäuse bauen, und zwar mechanisch 
stabil, und am besten noch die Tastenkappen selbst beschriften ist eine 
stink-langweilige Arbeit.

> Deswegen wollte ich auch direkt einmal fragen ob es dafür gute
> Literatur/Internetseiten gibt die seriös sind

Jedes Datenblatt für einen Tastaturchip.

> und das ganze auch gut
> umsetzen um sich in die Schaltpläne einzuarbeiten/mehr in Elektrotechnik
> einzulesen.

Jetzt hast du ein Problem. Moderne Tastaturen bestehen aus einem 
einzigen fetten Tastaturchip plus ein bisschen Hühnerfutter wie LEDs. 
Der Chip macht alles ohne das man wissen muss wie genau. Da ist nichts 
groß mit Einarbeiten oder Elektronik lernen. Das ist ein schwarzer Blob 
an den man eine eine 19x8 oder 20x8 Tasten-Matrix anschließt.

Um nur die Prinzipien zu sehen brauchst du keine große Tastatur zu 
bauen. Die siehst du besser an kleineren Projekten.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Marten Morten schrieb:
> Moderne Tastaturen bestehen aus einem einzigen fetten Tastaturchip plus
> ein bisschen Hühnerfutter wie LEDs.

Da könnte man auch auf ein Produkt von Guido Körber zurückgreifen:

https://www.codemercs.com/de/tastatur

Allerdings werden da wohl gerade die meisten Modelle 'rausgeworfen und 
durch neue ersetzt; der erste neue kann aber nur 64 Tasten ansprechen, 
was ein bisschen arg wenig ist.

von dumdum (Gast)


Lesenswert?

Mit einer Matrix an  3  8bit Ports lassen sich 128 Tasten Abfragen.

Wenn die Ports nicht ausreichen beim uC (Modul) würde ich eher zum 4 to 
16 line decoder greifen.

Ein nettes Übungsprojekt (gerade auch zum Löten und Fehlersuche) mit 
Potential zu  Erweiterung (z.B. Zusatztasten für Passwörter, IR für 
Befehlssequnzen etc.)

von georg (Gast)


Lesenswert?

Marten Morten schrieb:
> am besten noch die Tastenkappen selbst beschriften

Er will sie ja nicht nur beschriften, sondern auf seinem 3D-Drucker 
selber machen. Hoffentlich ist er wenigstens bereit, die eigentlichen 
Tasten zu kaufen, z.B. von Cherry oder Rafi.

Sowas macht man nicht mal so schnell nach Feierabend, aber auch das ist 
schon eine wertvolle Erfahrung.

Georg

von Matthias L. (limbachnet)


Lesenswert?

Ich hab' vor vielen Jahren mal eine externe Tastatur für den C64 
gebastelt. Cherry-Einzeltasten auf Lochraster, für diverse geshiftete 
und controlte Tasten noch ein TTL-Grab dazu. Ein Hex-Block dort, wo die 
PC-Tastatur den Ziffenblock hat. Das ganze in ein 
Siemens-Tastaturgehäuse, was aber zu flach war und daher umgebaut, 
gespachtelt, neu lackiert werden musste. Die Tastenkappen mit 
Letraset-Rubbelbuchstaben beschriftet und transparent überlackiert.

Hat Spaß gemacht, hat am Ende auch funktioniert - aber es war ein 
mehrwöchiges Projekt. Und am Gesamt-Aufwand ändert IMHO auch die moderne 
Technik wenig...

von hmm (Gast)


Lesenswert?

Kein so schlechtes Anfängerprojekt. Da ist schon etwas Anspruch dabei, 
aber unschaffbar ist es trotzdem nicht. Und wenn es klappt, ist das eine 
nette Trophäe.

Mein Rat wäre:
Auf keinen Fall USB, sondern PS2. Nimm einen µC, den du schon kennst. 
Oder einen Arduino.

Die Tasten verschaltet man als Matrix:
http://www.avr-asm-tutorial.net/avr_de/apps/tasten_schalter_adc/tastenfeld/tastenfeld.html

Plan das sauber, d.h. einen µC mit genug IOs nehmen. Du brauchst 
mindestends 2*Wurzel(Tasten).

Für 102 wären das 21 - also 10 Zeilen und 11 Spalten. Dazu brauchst du 3 
Ios für die LED, und einmal I2C. Sollte so direkt mit einem µC ohne 
Zusatzhardware machbar sein, möglicherweise aber in einem SMD-Gehäuse.

Wenn das stört:
Das ganze lässt sich selbstverständlich auch mit Portexpandern, 
Schieberegistern, Decodern oder dergleichen lösen, dann brauchts viel 
weniger Pins.

von Nano (Gast)


Lesenswert?

Kael schrieb:

> Denke auch ein "Numpad" als erstes Projekt wäre da vielleicht sinniger.

Ein Joystick, Flightstick, Lenkrad oder Gamepad ist meiner Meinung nach 
sinnvoller.

Der ist von den Tasten überschaubarer und man kann auch gleich noch mit 
einem ADC Übungen machen, wenn man einen anlogen Joystick baut.

Beim 3d Druck kannst du dich auch richtig austoben, so wie du es willst 
oder brauchst.

Vom Lernfaktor gibt es noch die USB HID Protokolle zu beachten.


Eine Tastatur lohnt sich meiner Meinung nach nicht, bsw. ist zu 
aufwendig, da man ja auch noch die richtigen Abstände für die Tasten 
einhalten sollte.
Schließlich willst du nicht jedes mal, wenn du wieder an einer 
Industrietastatur tipps, das Tippen neu lernen oder auf der blind 
Fehler, weil die Tastenabstände ganz andere sind.

Richtig austoben kannst du dich übrigens mit einem Homecockpit.
Da ist alles drin, von Eingabegeräten bis zu Anzeigegeräten.

von Guido Körber (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Da könnte man auch auf ein Produkt von Guido Körber zurückgreifen:
>
> https://www.codemercs.com/de/tastatur
>
> Allerdings werden da wohl gerade die meisten Modelle 'rausgeworfen und
> durch neue ersetzt; der erste neue kann aber nur 64 Tasten ansprechen,
> was ein bisschen arg wenig ist.

Der KeyWarrior28 ersetzt ja "nur" die KeyWarrior24 und KeyWarrior8. 
Dafür hat er aber sehr weitreichende Macro-Funktionen und auch eine 
Maus-Funktion mit drin.

Wir sind grad dran den KeyWarrior100 zu entwickeln, der wird im Herbst 
raus kommen und kann bis zu 384 Tasten in einer 24x16 Matrix. Damit 
ersetzen wir dann die gesamte restliche Produktfamilie plus einem ganzen 
Paket neuer Features, die es bisher noch nicht gab, oder nur in 
Custom-Chips.

Vom KeyWarrior24-8 haben wir aktuell noch die Module auf Lager, damit 
lässt sich eine kleine Tastatur mit bis zu 64 Tasten wirklich als 
Anfängerprojekt realisieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Guido Körber schrieb:
> Wir sind grad dran den KeyWarrior100 zu entwickeln

Das ist doch schon mal 'ne Aussage.

von Guido Körber (Gast)


Lesenswert?

hmm schrieb:
> Auf keinen Fall USB, sondern PS2.

Umgekehrt…

USB ist sauber spezifiziert und es gibt jede Menge ordentlichen 
Beispielcode.

PS/2 ist nicht dokumentiert, die Infrmationen darüber sind teilweise 
über Reverse-Engineering abgeleitet und jeder Hersteller macht irgendwas 
ein kleines Bisschen anders.

von Zeno (Gast)


Lesenswert?

Kael schrieb:
> Allerdings bin ich bei den ganzen Schaltungsplänen die man so im Inet
> findet ein wenig.... 'Überfordert' ^^"
>
> Deswegen wollte ich auch direkt einmal fragen ob es dafür gute
> Literatur/Internetseiten gibt die seriös sind und das ganze auch gut
> umsetzen um sich in die Schaltpläne einzuarbeiten/mehr in Elektrotechnik
> einzulesen.
> Gleichzeitig aber auch vielleicht eine Seite wo man so ein
> Anfängerprojekt wie z.B. eine Tastatur zu bauen

Dir geht es offensichtlich, wie dem berühmten Ikarus der auch ein ein 
bischen zu hoch geflogen ist und sich dabei die Flügel verbrannt hat.

Die Schaltung für eine Tastatur dürfte wohl das simpelste an einer 
Tastatur sein. Wenn Du schon daran scheiterst  dürfte das Ganze dann 
wohl doch kein Anfängerprojekt sein.

Die eigentliche Aufgabe dürfte die softwaretechnische Umsetzung werden.

Von der Mechanik wollen wir da mal gar nicht reden. Ein 3D Drucker ist 
da nur ein Puzzelteil von vielen.

Ich glaube Du bist Dir über den Umfang eines solchen Projektes gar nicht 
bewußt. Ein Anfänderprojekt ist das definitiv nicht und schon gar nicht, 
wenn man alleine von der Schaltungstechnik schon überfordert ist.

von michael_ (Gast)


Lesenswert?

Die Tastatur ist ein Computer im Computer.
Die Mechanik würde ich mir nicht antun.

Eine alte Tastatur mit Einzeltasten nehmen, also keine Folie.

Da kann man dann in der ersten Etappe lustig an einem eigenem Controller 
basteln.

Grundlagen sind im Tischer "PC-Intern" nachzulesen.

Guido Körber schrieb:
> hmm schrieb:
>> Auf keinen Fall USB, sondern PS2.
>
> Umgekehrt…

Nö, PS2 ist im von mir genannten AVR-Projekt praktisch gelöst.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Guido Körber schrieb:
> PS/2 ist nicht dokumentiert,

Ich habe hier ein IBM-Handbuch* herumstehen, vom Modell 30/286, und da 
ist die Schnittstelle drin beschrieben, inklusive Scancodes und auch der 
Kommandos, die an die Tastatur gesendet werden können.
Auch das Timing der Schnittstelle wird beschrieben.

Interessiert Dich das?


*) "Personal System/2 Model 30 286 Technical Reference"

von Guido Körber (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Interessiert Dich das?

Habe selber so ein Exemplar. Was da fehlt sind z.B. Toleranzbereiche.

PS/2 fliegt bei uns jetzt aber raus. Alle neuen Produkte sind nur noch 
USB. Der Ärger mit dieser Schnittstelle steht in keinem Verhältnis zum 
Nutzen. Wenn man nicht nur ein paar Tastaturen macht, sondern so wie 
wir, einen erheblichen Teil der Hersteller im Bereich Industrie- und 
Sondertastaturen beliefert, dann wird es teilweise sehr bunt.

Ganz besonders viel Spaß machen die KVM-Switches, da lehnen wir es schon 
lange ab überhaupt nach dem Problem zu suchen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Guido Körber schrieb:
> Was da fehlt sind z.B. Toleranzbereiche.

In meinem sind bei den beiden Timing-Diagrammen für Senden und Empfangen 
min- und max-Werte für die Zeiten angegeben

> PS/2 fliegt bei uns jetzt aber raus.

In Anbetracht des Alters ist das eine nachvollziehbare Entscheidung.

Ich nutze PS/2-Geräte nur als normaler Verbraucher, und für meine 
Tastatur habe ich glücklicherweise einen funktionierenden Adapter auf 
USB gefunden, der im Schrank darauf wartet, daß sie irgendwann an einem 
Rechner ohne PS/2 eingesetzt werden soll.

> Ganz besonders viel Spaß machen die KVM-Switches

O ja, die bekommt man schon durch Anschluss der falschen Maus zum 
Ausfallen.
Logitech-Maus mit Scrollrad, einmal am Scrollrad gedreht, und man muss 
alle Rechner neu starten, weil durch den nötigen Neustart des KVM die 
Verbindung zu den Mäusen flötengeht.

Aus irgendeinem Grund hat IBM es nicht hinbekommen, die für Mäuse 
verwendete PS/2-Schnittstelle hotplugfähig zu machen, was bei der 
Tastatur hingegen geht (das ging ja schon beim alten AT). Nur die 
Autorepeat-Rate wird nicht aktualisiert.

von Steckerchaos (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Aus irgendeinem Grund hat IBM es nicht hinbekommen, die für Mäuse
> verwendete PS/2-Schnittstelle hotplugfähig zu machen, was bei der
> Tastatur hingegen geht

Das geht bei Tastaturen aber auch nur inoffiziell.

von Rübezahl (Gast)


Angehängte Dateien:

Lesenswert?

Kael schrieb:
> Aber ich will das auch für Löt-Übungen verwenden.

Rätsel:

Für eine bessere Optik will ein Energieanlagenelektroniker seine 
vorhandenen LED's in gleichmäßigen Reihen auf einer Eurokarte (160 x 
100mm) platzieren. Als erstes versucht er es in Dreierreihen, aber es 
bleiben zwei LED's übrig. Dann versucht er es mit Viererreihen, und 
wieder sind zwei LED's übrig. Als er sie in Fünferreihen auf der Platine 
platziert, gelingt es.

Wie viele LED's hat der Energieanlagenelektroniker mindestens?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Steckerchaos schrieb:
> Das geht bei Tastaturen aber auch nur inoffiziell.

Dafür aber sehr, sehr gut. Ich habe noch keinen PC erlebt, der damit 
irgendwelche Probleme hatte - seit 1988 nicht (da hatte ich meinen 
PC-Schrauber-Erstkontakt mit ATs, und deren Tastaturschnittstelle nutzte 
zwar einen anderen Stecker als PS/2, aber war ansonsten identisch).

Ja, offziell zugegeben wurde diese Hotplugfähigkeit nie. Offzielle 
musste man den PC auch wegen jedes beliebigen anderen Krams ständig aus- 
und wiedereinschalten (Drucker, serielle Schnittstelle, Monitore ...), 
das gewöhnt man sich dann auch recht schnell ab.

von Dr. Sommer (Gast)


Lesenswert?

Rübezahl schrieb:
> Wie viele LED's hat der Energieanlagenelektroniker mindestens?

50.

von Rübezahl (Gast)


Lesenswert?

Dr. Sommer schrieb:
> 50.

Richtig!

3 LED's mal 16 Reihen sind 48 LED's (bleiben 2 übrig)
4 LED's mal 12 Reihen sind auch 48 LED's (bleiben wieder 2 übrig)
5 LED's mal 10 Reihen sind genau 50 LED's

Ich konnte selber leider keine Formel dafür erstellen, hab's auch nur 
durch rumprobieren herausgefunden.

von Raph (Gast)


Lesenswert?

Kael schrieb:
> Allerdings bin ich bei den ganzen Schaltungsplänen die man so im Inet
> findet ein wenig.... 'Überfordert' ^^"

Nimm Eagle oder KiCad. Damit geht es fasst von selbst (etwas faster bei 
Eagle als bei KiCad)

von Nano (Gast)


Lesenswert?

Raph schrieb:
>
> Nimm Eagle oder KiCad. Damit geht es fasst von selbst (etwas faster bei
> Eagle als bei KiCad)


"etwas faster"
Das ist wunderbares Denglisch

von Wolfgang (Gast)


Lesenswert?

Frank E. schrieb:
> Es gab übrigens auch mal Taster mit Mini-LCD obendrauf, also
> "dynamische" Beschriftung oder Icons.

Ganz richtig - gab.

Wer hat schon Lust, sich vor dem Drücken einer Taste erstmal irgendeine 
mehr oder weniger pixelige und evtl. auch noch schlecht beleuchtete 
LCD-Beschriftung durchzulesen. Nichts ist nerviger als eine Tastatur, 
bei der sich dynamisch die Bedeutung der Tasten ändert.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> Nichts ist nerviger als eine Tastatur, bei der sich dynamisch die
> Bedeutung der Tasten ändert.

Apple sieht das seit einiger Zeit anders; in den MacBooks haben sie die 
Tastatur um die Funktionstastenreihe kastriert und eine "Touchbar" 
eingebaut. Das hat neben der dynamischen Bedeutungsänderung auch noch 
den "Vorteil", daß das taktile Feedback einer normalen Tastatur (die man 
auch blind bedienen kann) wegfällt.

von Frank K. (fchk)


Lesenswert?

Guido Körber schrieb:

> PS/2 ist nicht dokumentiert, die Infrmationen darüber sind teilweise
> über Reverse-Engineering abgeleitet und jeder Hersteller macht irgendwas
> ein kleines Bisschen anders.

Dass die PS/2 Tastaturschnittstelle nicht dokumentiert ist, stimmt 
nicht. Hast Du schon mal das "IBM Personal System /2 Technical Reference 
Manual" in den Fingern gehabt, oder warst Du im Mai 1988 (erste Auflage) 
noch nicht geboren?

Da gibt es ein Kapitel "Keyboard and Auxiliary Device Controller (Type 
1)". Das ist die Primärreferenz. Die Scancodes und Tastaturlayouts 
gibts im Kapitel "Keyboards (101- and 102-Key).

fchk

von Guido Körber (Gast)


Lesenswert?

Frank K. schrieb:
> Dass die PS/2 Tastaturschnittstelle nicht dokumentiert ist, stimmt
> nicht. Hast Du schon mal das "IBM Personal System /2 Technical Reference
> Manual" in den Fingern gehabt, oder warst Du im Mai 1988 (erste Auflage)
> noch nicht geboren?

Der war gut…

Ich habe sogar einen IBM PS/2-50 als Referenz verwendet bei der 
Entwicklung. Der gab aber irgendwann den Geist auf und die tatsächlichen 
Implementierungen haben sich auch langsam immer weiter davon entfernt. 
In irgend einer Kiste ist das Handbuch auch noch, aber die Spezifikation 
war alles andere als sauber und wirde im laufe der Zeit auch noch 
erweitert.

von GEKU (Gast)


Angehängte Dateien:

Lesenswert?

Guido Körber schrieb:
> Frank K. schrieb:
> Dass die PS/2 Tastaturschnittstelle nicht dokumentiert ist, stimmt
> nicht. Hast Du schon mal das "IBM Personal System /2 Technical Reference
> Manual" in den Fingern gehabt, oder warst Du im Mai 1988 (erste Auflage)
> noch nicht geboren?
>
> Der war gut…
>
> Ich habe sogar einen IBM PS/2-50 als Referenz verwendet bei der
> Entwicklung. Der gab aber irgendwann den Geist auf und die tatsächlichen
> Implementierungen haben sich auch langsam immer weiter davon entfernt.
> In irgend einer Kiste ist das Handbuch auch noch, aber die Spezifikation
> war alles andere als sauber und wirde im laufe der Zeit auch noch
> erweitert.

Ich würde mit einem bestehende  USB Keyboard und Wireshark

       https://geekthis.net/post/usb-sniffing-and-programming/

die Anmeldeprozedure und die TastenCodes,  wie sie versendet werden, 
erforschen .
Diese Messungen können später als Referenz zur eigene  Implementierung 
dienen.

Dann wurde ich mir einen Mikrokontroller aussuchen, der drei Bedienungen 
erfüllt:

-  MC, der über USB versorgt werden kann

- MC mit genügend PINS für den Tastatur scannen oder einen Scanner 
besitzt

- MC mit USB Client oder serieller Schnittstelle und externen Umsetzter 
auf USB (z.B UM2102)


http://www.ti.com/microcontrollers/msp430-ultra-low-power-mcus/products.html#p702=Yes

http://www.ti.com/document-viewer/MSP430F5529/datasheet/applications-slas5908766#SLAS5908766

MC und Entwicklungstools:

https://www.mouser.at/Search/Refine?Keyword=msp430f5529

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

GEKU schrieb:
> die Anmeldeprozedure und die TastenCodes,  wie sie versendet werden,
> erforschen .

Wozu das? Das Spezifikation des USB-Protokolls und auch HID sind offen 
verfügbar. Durch Reverse Engineering findet man nur den "Normalfall" 
ohne Sonderfälle und Neben-Anforderungen (Timing usw) heraus.

von GEKU (Gast)


Lesenswert?

GEKU schrieb:
> MC und Entwicklungstools

Nachtrag:

https://www.mouser.at/ProductDetail/Texas-Instruments/MSP-EXP430F5529LP?qs=sGAEpiMZZMu3sxpa5v1qrn4ianIM%252Bsa1wyczib6U2Ug%3D

Das wäre das geeignete Entwiclungsboard  um 13€ .

Dieses Board und die Tastenmtrix reichen für den Prototyp!

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

PS:

GEKU schrieb:
> - MC mit USB Client oder serieller Schnittstelle und externen Umsetzter
> auf USB (z.B UM2102)

Und wie soll man mit einem USB-RSR232 Adapter das HID-Protokoll 
implementieren?

von GEKU (Gast)


Angehängte Dateien:

Lesenswert?

Niklas G. schrieb:
> Wozu das?

Weil die Tastencodes alleine nicht ausreichen!

Wichtig für den TO ist es das Übertragungsprotokoll zwischen seinem 
Keyboard und dem PC zu kennen. Mit den Tastencodes fängt er alleine 
nichts an.

Sein Keyboard sollte von den USB Treibern im PC oder Raspberry auch als 
solcher erkannt werden.

Natürlich reicht es dann nur einen Tastencode zu  erforschen

Aber das Verhalten der Umschaltetasten wie z.B. ALT, SHIFT etc. sind gut 
erforschbar und damit zu verstehen.

In der anderen Richtung sind auch die Status-LEDS interessant.

Mit dem von mir vorgeschlagen Prototypenboard kann sich der TO voll auf 
die Software konzentrieren und viel dabei lernen.

An diesem Prototypenboard kann die Tastenmatrix direkt über Steckkabel 
an die Ports anschlossen werden.

Das  Prototypenboard verfügte eine USB Schnittstelle, die nicht nur für 
den Anschluß des ProtoKeyboards dienen, sondern auch für die 
Softwareentwicklung (Download Debuggen).

Selbst wenn das Projekt "scheitert", ich gehe aber davon nicht aus, bei 
13€ nicht viel verloren, zumal viel dabei an Erfahrung gesammelt wurde.

Für die Entwicklung ist nicht viel HW Bastelgeschick erforderlich, weil 
die SMD CPU sich auf dem fertigen Prototypenboard befindet.

Wenn keine Stückzahl dahinter steckt, macht die Entwicklung eines 
eigenen Boards keinen Sinn,
man kann das Prototypenboard ins eigene 3D Druckerprojekt einbinden.

PS: Für den MC  gibt es bei TI jede Menge Applikationsbeispiele für die 
Software (USB Implementierung).

von GEKU (Gast)


Lesenswert?

Niklas G. schrieb:
> Und wie soll man mit einem USB-RSR232 Adapter das HID-Protokoll
> implementieren?

Ich wurde mir den Umweg über RS232 nicht antun und gleich einen USB 
tauchlichen MC verwenden. (Siehe Vorschlag oben).

Bei der Lösung über RS232 sollte das Keyboard nicht als serielle 
Schnittstelle, sondern als Keyboard angemeldet werden. Die serielle 232 
Schnittstelle wird vom PC nicht als solche gesehen.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

GEKU schrieb:
> Weil die Tastencodes alleine nicht ausreichen!

Alles andere ist ebenfalls dokumentiert. Da muss man nichts reverse 
engineeren.

GEKU schrieb:
> Wichtig für den TO ist es das Übertragungsprotokoll zwischen seinem
> Keyboard und dem PC zu kennen.

Steht alles in den entsprechenden Spezifikationen.

GEKU schrieb:
> Mit dem von mir vorgeschlagen Prototypenboard kann sich der TO voll auf
> die Software konzentrieren und viel dabei lernen.

Es gibt aber auch viele andere geeignete, z.B. die meisten 
STM32-Discovery-Boards.

GEKU schrieb:
> Die serielle 232
> Schnittstelle wird vom PC nicht als solche gesehen.

Und wie bewerkstelligt man das wenn der CP2102N sich nunmal immer als 
serielle Schnittstelle anmeldet?

von anorak-47 (Gast)


Lesenswert?

Wie zu erwarten war, bist du nicht der erste, der solch ein Projekt 
angehen möchte.

Ein, wie ich finde, guter Einstieg ist hier zu finden:

https://matt3o.com/book/

Fertige Firmware für AVR und STM32 Controller gibt es z. B. hier:

https://github.com/tmk/tmk_keyboard

Interessante Foren für Selberbauer:

https://geekhack.org/index.php?board=117.0
https://deskthority.net/

Und das recht umfangreiche Deskthority-Wiki:
https://deskthority.net/wiki/Main_Page

Teile, z. B. Tastenkappen oder Schalter, bekommt man z. B. auf 
(mass)drop

Viel Spaß beim Bauen!

von GEKU (Gast)


Lesenswert?

Niklas G. schrieb:
> Alles andere ist ebenfalls dokumentiert. Da muss man nichts reverse
> engineeren.

Jeder hat seine Methode zur Umsetzung von Projekten.

Sicher geht es nicht ohne Spezifikationen. Ich war mit der Methode 
"Reverse Engineering" erfolgreich, andere sind an einer nicht richtig 
verstanden Spezifikation gescheitert.

Auch fürs "Reverse Engineering" wird die Spezifikation für die 
Interpretation der ermittelten Daten benötigt. So kann das notwendige 
Wissen erarbeitet werden.

Niklas G. schrieb:
> Steht alles in den entsprechenden Spezifikationen.

Hoffentlich! Und hoffentlich wird alles richtig verstanden.

Niklas G. schrieb:
> Es gibt aber auch viele andere geeignete, z.B. die meisten
> STM32-Discovery-Boards.

Jeder hat seine Präferenzen. Wenn bei der Auswahl, die von mir 
ausgelisteten Anforderungen erfüllt sind, kann manch auch andere 
Plattformen heranziehen.
Ich kenne STM32 zu wenig. Kann dieser aus der USB Schnittstelle (USB2) 
versorgt werden? Unterstützt dieser USB? Wie preiswert sind die 
Discovery-Boards. Welche Unterstützung gibt es für die Entwicklung und 
was kostet diese?

Niklas G. schrieb:
> Und wie bewerkstelligt man das wenn der CP2102N sich nunmal immer als
> serielle Schnittstelle anmeldet?

Gute Frage! Zeigt kompetentes Fachwissen.

CP210** verfügt über ein EPROM bzw. EEPROM und kann bei Bedarf angepasst 
werden. Es können Daten wie USB Vendor ID (VID), Product ID(PID), und 
diverse Beschreiber angepasst werden.
Wenn diese Daten nicht ausreichend sind,ich kenne den Chip zu wenig, 
dann ist der Chip für diese Anwendung nicht brauchbar.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

GEKU schrieb:
> Hoffentlich! Und hoffentlich wird alles richtig verstanden.

Die USB-Spezifikation ist ziemlich gut, im Unterschied zu z.B. der 
SD-Spec.

GEKU schrieb:
> Ich war mit der Methode
> "Reverse Engineering" erfolgreich, andere sind an einer nicht richtig
> verstanden Spezifikation gescheitert.

Wenn es aber eine gibt, kann man die auch nutzen. Wenn man immer nur 
erfolgreiche Protokoll-Abläufe betrachtet, weiß man nicht wie man die 
Sonderfälle implementiert, was man also im Fehlerfall (nicht) senden 
soll, wie schnell man reagieren muss...

GEKU schrieb:
> Kann dieser aus der USB Schnittstelle (USB2)
> versorgt werden?

Das ist Sache des Boards, nicht des Chips. Und viele STM32-Boards können 
das, ja.

GEKU schrieb:
> Unterstützt dieser USB?

Ja.

GEKU schrieb:
> Wie preiswert sind die
> Discovery-Boards.

ca. 10€-50€, je nach Modell und Händler. In China gibts auch 
superbillige für 2€ ohne Debugger.

GEKU schrieb:
> Welche Unterstützung gibt es für die Entwicklung und
> was kostet diese?

Die sind unter Hobby-Entwicklern sehr beliebt, daher gibt es eine Menge 
Tutorials und freie Entwicklungs-Software (z.B. GCC), und mein
USB-Tutorial mit STM32.

GEKU schrieb:
> Es können Daten wie USB Vendor ID (VID), Product ID(PID), und
> diverse Beschreiber angepasst werden.
VID/PID alleine reichen nicht; man muss wenn schon alles anpassen 
können.

GEKU schrieb:
> Wenn diese Daten nicht ausreichend sind,ich kenne den Chip zu wenig

Abgesehen von den Deskriptoren muss ja auch das Protokoll stimmen. Der 
IC wird die Daten auf eine bestimmte Art und Weise verpacken; die muss 
keineswegs zu HID kompatibel sein. Das ist ja ein proprietäres 
Protokoll; würde es sich um das Standard-USB-Seriell-Protokoll 
USB-CDC-ACM handeln, ginge es jedenfalls nicht, weil dort alleine schon 
der Endpoint-Typ abweicht (Bulk vs. Interrupt).

GEKU schrieb:
> dann ist der Chip für diese Anwendung nicht brauchbar.

Es ist ziemlich unwahrscheinlich, dass ein IC, welcher explizit als 
USB-Seriell-Adapter konzipiert ist, als USB-HID-Chip gebraucht werden 
kann...

von MaWin (Gast)


Lesenswert?

Guido Körber schrieb:
> hmm schrieb:
> Auf keinen Fall USB, sondern PS2.
>
> Umgekehrt…
>
> USB ist sauber spezifiziert und es gibt jede Menge ordentlichen
> Beispielcode.
>
> PS/2 ist nicht dokumentiert, die Infrmationen darüber sind teilweise
> über Reverse-Engineering abgeleitet und jeder Hersteller macht irgendwas
> ein kleines Bisschen anders.

Unsinn.

PS/2 für Tastaturen ist gut dokumentiert.

von Zeno (Gast)


Lesenswert?

Ihr könnt aufhören der TO hat sich schon lange nicht mehr gemeldet. Ist 
wahrscheinlich doch keine Lötübung für einen Anfänger.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Vlt. beginnt man ein solches Projekt in zwei Stufen/Ebenen:

a) die interne Logik (Num Lock, Caps Lock , FN- und Shift-Tasten, 
LED-Steuerung, Tastencodes usw.) und die Anbindung an den PC

b) die Tasten-Elektrik, Mechanik, das Auslesen/Scannen

Und beide Ebenen in der Software deutlich und sauber getrennt.

Dann würde ich nämlich mit Teil A anfangen und als Eingabemedium z.B. 
ein größeres Nextion-Display (Touchscreen) benutzen. Das will zwar auch 
programmiert sein, man muss aber nicht 3D_Drucken, Löten, Bohren, 
Schrauben etc.

Oder einen entsprechenden "Simulator" an einem anderen PC oder mittels 
Arduino, ESP oder Raspi einsetzen.

: Bearbeitet durch User
von Sebastian S. (amateur)


Lesenswert?

Ich finde es schon Interessant, wie viele hier schon am Programmieren 
(im Kopf) sind, obwohl das, aus meiner Sicht, größte Problem noch gar 
nicht angegangen wurde.
Soll nämlich Deine Tastatur nicht 4 oder mehr Zentimeter hoch werden, so 
wirst Du auf der 3-D-Druck-Seite größte Probleme bekommen. Dünne und 
auch dennoch stabile Strukturen (die Tastenkappen), mit einem 
3-D-Drucker, herzustellen ist nicht ganz ohne.

Aus meiner Sicht sieht das Ganze anders aus, wie in der vorhergehenden 
Diskussion.
1. Die gesamte Elektronik ist Pipifax.
   Ein Mikrokontroller, der den ganzen Tag über nichts zu tun hat ist
   mit der Abfrage und Auswertung einer Matrix total unterfordert.
2. Für die meisten Mikrokontroller gibt es entweder fertige Blauzahn-
   Module oder ready-to-use USB-Treiber, die einen Tasten-Arthur
   simulieren.
3. Relativ teuer wird die "Riesen"-Platine.
4. Relativ teuer werden die vielen Tastenunterteile.
5. Recht aufwändig wird die Kopplung Taster->Kappe.
   Die, es kann nicht schaden, relativ stabil sein soll und nicht
   schon beim zweiten Hingucken bricht.
6. Das gesamte Gehäuse wird Dir wohl einen ganzen Sack voll grauer
   Haare bescheren.
   a) Eine relativ dünne Struktur, die auch noch stabil sein soll.
   b) Eine halbwegs stabile Struktur, die nur so vor lauter Löchern
      strotzt.
   c) Alle mir bekannten 3-D-Drucker - vor allem die bezahlbaren -
      können so große Teile überhaupt nicht drucken.

Wie bereits vorher angedeutet!
Eine kleine Zusatztastatur: Kein Problem.
Aber darüber hinaus solltest Du auf Spritzguss Maschinen und den 
zugehörigen Formenbau Zugriff haben. Wenn nicht würde ich das Ganze 
vergessen.
Ist aber ein recht interessantes Gedankenspiel.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Sebastian S. schrieb:
> 2. Für die meisten Mikrokontroller gibt es entweder fertige Blauzahn-
>    Module oder ready-to-use USB-Treiber, die einen Tasten-Arthur
>    simulieren.

Das Argument zieht aber nur, wenn man nicht, wie im Titel angedeutet, 
alles "komplett selber erstellt". Wenn man die komplette 
USB-Implementation selbst macht, ist das auch ein gewisser Aufwand.

Frank E. schrieb:
> Dann würde ich nämlich mit Teil A anfangen und als Eingabemedium z.B.
> ein größeres Nextion-Display (Touchscreen) benutzen.

Da würde ich lieber mit einer Mini-Tastatur mit 5 Tasten anfangen und 
die USB-Logik implementieren.

von Kael (Gast)


Lesenswert?

Nun - der Projekt ist soweit noch nicht 'tot' - Ich hatte einfach wenig 
Zeit. Habe mir allerdings alles soweit durchgelesen und bin nun dabei 
mir die Basics dahingehend genauer anzusehen :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.