Basics Headphones Keyboard Measuring instruments and tools Microphone Mouse Practice Pro Reviews

Non-invasive latency measurement on mice, keyboards and other peripherals – We build our own measurement equipment! | igor’sLAB internal

The hardware in detail

Microcontroller: Teensy 4.1 with micro SD card
The Teensy 4.1 microcontroller has an ARM Cortex chip with a clock frequency of 600 MHz. We expect our program to run very quickly, as measurement time and its processing is the maxim for this project. The Teensy board also has a directly integrated micro SD card slot. Ideal for Igor and his data when measurement results need to be processed quickly. The dev board is plugged directly into our circuit board via a socket connector, so that in the event of a defect, you can simply replace the microcontroller.

Light sensor: PT334-6C phototransistor with 100K pull-down resistor
We use a phototransistor to detect the brightness on the screen (black / white). This looks like a white 5mm LED. My first thought was a standard LDR (photo resistor), but unfortunately this reacts far too slowly (25ms – 100ms), which is far too slow for our purposes. The magic component in this case is called a phototransistor! This only needs 15 microseconds to detect a difference in brightness and is therefore much better suited to our time-critical project. We don’t want the microcontroller to interpret voltage fluctuations and any interspersed EMC voltages as false brightness detection. We therefore connect the emitter of the phototransistor to GND with a 100k resistor.

Sound detection: MEMS microphone ICS 43434
A MEMS microphone (Micro Electro Mechanical System) is very small, which makes its mode of operation all the more impressive: The sound is picked up by a tiny silicon diaphragm and thus changes the distance to the “backplate”. This principle changes the capacitance and the sound can be interpreted and converted into an electrical signal. This then goes to the ASIC, which is also located inside the housing of the microphone chip, and converts this analog signal into a digital one. At first I thought that it would be better to use an analog microphone directly because of the latency. But this is not the case, as the analog-to-digital converter (ADC) would be slower than sending the signal directly via I2S. “Ei square Es” was developed by Philips to send serial and digital signals within the audio equipment. The interface itself is unidirectional, i.e. it can only be used in one signal direction.

Screen: OLED display I2C 0.96 inch
A small OLED display with a diagonal of almost one inch is relatively unspectacular and technically less impressive. Sure, it shows us information and measurement data, but apart from the operating voltage and the connection via I2C (similar to I2S but not to be confused with it!) there is not much to say here.

Visual feedback: LEDs 5mm green and red, plus 2x 220 Ohm resistors
I installed the two LEDs with series resistors so that Igor always knows whether the microphone or the button has “triggered” when measuring. The LEDs should not shine ultra-brightly, but merely give a little more than a hint. That’s why I generously chose 220 Ohm as the series resistor for both colors.

Voltage stabilization: 220µF electrolytic capacitors
Also known as “fear capacitors” among electrical engineers, I use these here for both main voltage supplies, namely 3.3V and 5V. Under unfavorable environmental variables, it could be that all sensors and actuators including the microcontroller exceed the 500mA minimum USB specification at the same time during the switch-on phase. So: Better to have than to need!

Potentiometer: 10 kiloohm linear resistor
To adjust the trigger sensitivity of the microphone, we use a simple potentiometer with a linear resistance curve. with an operating voltage of 3.3V, a resistance of 10 kiloohms is sufficient, so that we get a fairly high resolution and Igor can adjust everything sensitively.

 

Kommentar

Lade neue Kommentare

R
Robofighter

Veteran

153 Kommentare 89 Likes

Lach. Das läßt Igor so durchgehen? Professionell sieht anders aus und man kennt Igors Detailverliebtheit. Spaß beiseite. Schön das ihr dieses Thema angeht um uns weiterhin mit Messwerten zu versorgen.Ich habe von Elektronik keine Ahnung aber kann man das Signal nicht direkt am USB-Stecker abnehmen? Wie ist das zb.bei Tastaturen die keinen typischen Klick abgeben? Danke für deine Arbeit. 👍

Antwort Gefällt mir

R
Rantanplan

Mitglied

56 Kommentare 50 Likes

Das ist ein tolles Projekt. Sich unabhängig machen, ist immer gut!

Frage: Ich erinnere mich an eine Maus a la "extra leise" bei den Klicks. So ne butterweiche. Ist der Sensor so empfindlich - meint ihr, so was schafft ihr dann auch damit?
@Robofighter: Das ist doch erst einmal Stufe "Machbarkeit / Umsetzung". Wie beim Kopfhörer auch, wird das sicher noch auf die nächste Stufe gehoben, auch für bessere Verifizierbarkeit.

Antwort 1 Like

e
eastcoast_pete

Urgestein

3,083 Kommentare 2,044 Likes

Wenn ich es richtig gelesen habe, handelt es sich hier um die Konstruktion eines vollständig funktionsfähigen Prototypen. Das hat @Bernhard Baumgartner ja auch erfolgreich umgesetzt - Gratulation an Bernhard dafür!
Das Ganze dann in ein optisch ansprechenderes Gehäuse einzufügen kommt wohl noch.

Antwort 1 Like

Igor Wallossek

1

13,159 Kommentare 26,153 Likes

Form follows function! Was nützt mir die schönste Frau, wenn der Charakter fies ist? Es muss FUNKTIONIEREN. Setzt das erst mal technisch brauchbar um, dann baut man die Schachtel :)

USB ist Mist, damit ist man bereits hinter der Latenz der Signalverarbeitung in der Maus. Und man kann nicht die Kabel an jede geöffnete Maus anlöten....

Antwort 3 Likes

B
Bernhard

Mitglied

20 Kommentare 32 Likes

Haha ja ich weiß.... Ein Produktdesigner wird aus mir in diesem Leben nicht mehr. Ich kann einfach keine schönen Gehäuse designen. Igor hat das Problem quasi schon geschildert: Wenn wir das USB-Signal abgreifen, brauchen wir ein Hardwareinterface und eine Software als intepreter. Beides kostet Latenz und wir haben bei der Lösung noch ein Problem: Das USB Protokoll ist gelinde gesagt... ein Clusterfuck. Bis du da was brauchbares, unter verschiedenen Betriebsbedingungen stabiles raus gelesen hast...

Wegen den leisen Tasten: Du wärst fasziniert davon, wie verdammt empfindlich man so ein MEMS Mikrofon einstellen kann! Probier es ruhig mal aus, du wirst nicht glauben, was deine Ohren sehen, äh riechen.... Ach du weißt schon!

Antwort 2 Likes

big-maec

Urgestein

1,123 Kommentare 647 Likes

Schönes Projekt, ist teilweise besser, wenn man sich das nötige Equipment selber baut, da weiß man was man hat.

Wann kommt der Artikel von den Switches?

Eins weiß ich, meine Latenz vom Finger zum Gehirn wird größer sein.

Antwort 2 Likes

B
Bernhard

Mitglied

20 Kommentare 32 Likes

Ich und schöne Gehäuse konstruieren ist wie Feuer und Wasser. Ich habe keine Ahnung von Design und kann es auch nicht. Ich bin nunmal Hardwareentwickler und da ist mir wichtig, dass meine Geräte sicher sind, gut funktionieren und die Anforderungen von Igor erfüllen. Ich sage immer, dass das Triumvirat der Entwicklung aus drei Personen besteht: Hardwareentwickler = stellt potente Hardware zur Verfügung, Softwareentwickler = Füllt die potente Hardware mit Intelligenz, Produktdesigner = Macht alles schön für den Kunden und kreiert eine Identität für das Produkt.

Antwort 3 Likes

FfFCMAD

Urgestein

1,158 Kommentare 485 Likes

Eine Sache, die mir beim Ansatz nicht so ganz zusagt ist: Optische Schalter.

Bei einigen Mäusen ist der Klick eigentlich nur da, um ein Audiofeedback zu haben. Mit dem Schalten selbst hat das aber nicht viel zu tun, da der Klick nicht synchron mit dem Auslösepunkt des Schalters sein muss. Das machte einige meiner Razer mit Optischen Schalten gefühlt schwammig beim Betätigen der Tasten.

Ob das jetzt wirklich ein Problem darstellt kann ich natürlich nicht genau sagen. Aber das ist etwas, was mir dazu als Beitrag einfallen würde. Und auch ich bin eher der Form follows Funktion Mensch: Wenn es funktioniert und praxistauglich ist, dann spielt das Aussehen erst einmal eine Nebenrolle.

Antwort 1 Like

R
Robofighter

Veteran

153 Kommentare 89 Likes

Ich hatte ja extra ein „Lach„ ganz vorne geschrieben. Wollte mich ja nicht lustig machen. Ich bewundere wenn es Leute gibt die viel Gehirnschmalz und Zeit in so ein Projekt stecken. Ich könnte das nicht weil das für mich Böhmische Dörfer sind. Man sieht wieder mal das Igor ein tolles und engagiertes Team hat das Probleme angeht und Lösungen findet. Auch darum lese ich hier täglich die Artikel. Man wird hier gut und kompetent informiert. Zudem ist Igor auch schon viel ruhiger geworden. Seine hemdsärmelige Art war nicht so mein Geschmack. Und noch einmal ein Lob an die Community. Hier wird nicht sofort gehatet und es bleibt fast immer sachlich. Macht bitte weiter so und ein Dank an alle.

Antwort Gefällt mir

Igor Wallossek

1

13,159 Kommentare 26,153 Likes

Ohne diese Art wäre die Reichweite heute aber sicher deutlich niedriger. Mittlerweile kann ich es einfach etwas ruhiger angehen lassen, zumal ich mir selbst eine gewisse Work-Life-Balance und ein striktes Gesundheitsprogramm auferlegt habe. Nennen wir es mal genüssliche Entschleunigung. Das reicht vom Testen bis hin zum Auto. Man muss sich zwar oft genug dazu zwingen, aber ab einem gewissen Alter muss man auch mal auf sich selbst achten. :D

Antwort 5 Likes

e
eastcoast_pete

Urgestein

3,083 Kommentare 2,044 Likes

Solange das in der Reihenfolge passiert und der Produktdesigner am Ende für die ansprechende Formgebung sorgt ohne die Funktion zu verschlimmbessern passt das ja auch alles. Wird halt weniger gut wenn das Design wichtiger wird als die Funktion; Beispiele für "sieht toll aus, kann es aber nicht (nicht so gut)" haben wir wahrscheinlich alle schon erlebt.

Antwort 1 Like

B
Bernhard

Mitglied

20 Kommentare 32 Likes

Mach dir keinen Kopf, ich habe das keinesfalls als Angriff gewertet, ich wollte es nur erklären :)

Antwort Gefällt mir

k
kleinstblauwal

Mitglied

67 Kommentare 30 Likes

So könnt ihr prima die Klick Latenz messen. Aber ist das auch die gleiche wie die für Bewegung? Ich kann mir gut vorstellen, dass das Schließen eines Kontaktes bzw. Lichtschranke beim Klicken sich einfacher in ein an den PC zu sendendes Signal umwandeln lässt als das komplexe Signal des Sensors.
Peripherie Entwickler wissen, dass sich ersteres auch einfacher messen lässt. ...
Könnte man aber vielleicht damit auch machen, wenn man ein Pendel gegen die Maus schlagen lässt, welche die ruckartig in Bewegung versetzt. Auf dem Bildschirm ließe sich beobachten, dass der helle Cursor vor dem dunklen Bildschirm sich wegbewegt, oder in einem Spiel die Blickrichtung sich an Einer Kante mit hohem Kontrast bewegt.

Antwort Gefällt mir

K
Kellerklausi

Mitglied

44 Kommentare 5 Likes

Ziel war es ja die für den Kunden gefühlte Latenz in einen Messwert zuerfassen.
Deswegen passt es aus meiner Sicht schon sehr gut wenn der "Klick" Sound erfasst wird. Denn DAS ist ja genau das Feedback als Nutzer von dem du ausgehst -> Jop, Taste ist gedrückt.

Jetzt noch eine Aufnahme für das Mikro dazu bei der die Maus immer im gleichen Abstand ist und schon haben wir hier auch ~0,1ms toleranz rausgenommen :D (3cm unterschiedlicher Abstand Taster zu Mikro). 😇

Antwort Gefällt mir

Alkbert

Urgestein

1,311 Kommentare 1,087 Likes

Ich muss hier ausdrücklich protestieren. Die Latenzmessung an Mäuse hat durch die Ethikkomission des Bundestages genehmigt werden müssen. Tierversuche sind bei uns in Deutschland ein sehr kritisches Thema.

Antwort 2 Likes

Annatasta(tur)

Urgestein

531 Kommentare 240 Likes

Aber die Mäuse müssen nun nicht mehr "aufgeschnitten" werden, das ist doch mal was positives. Und sie werden alle den Test überleben. :p

Antwort 2 Likes

e
einJojo

Mitglied

29 Kommentare 17 Likes

Hallo Igor, Hallo Bernhard,

Tolles Projekt habt Ihr da...
ich möchte gleich zu beginn eine kleine Anmerkung machen worüber man sich vielleicht Gedanken machen sollte...
Also nicht als Kritik verstehen sondern als Verbesserungsvorschlag..

Ich denke das der Schall durch die Luft deutlich langsamer übertragen wird als durch feste Körper.
Dazu kommt die Variable das das Mikrofon unterschiedliche Abstände von der Maus haben kann, welches sich in unterschiedlicher zeitlicher Latenz äußert.
Um diesem Problem aus dem Weg zu gehen, könnte man das Mikrofon mit einem Klebepad oder einem klemm-Mechanismus direkt an der Maus befestigen, so das es den Körperschall und nicht den Luftschall empfängt und dadurch viel schneller den "Klick Impuls" aufnehmen kann... alternativ kann man den "Klick" auch direkt von der Tischoberfläche Mikrofonieren auch durch Körperschall, allerdings ist da eine softe Mausmatte eher hinderlich...

Ist nur so eine Idee... oder Gedankenanstoß..
Viel Spaß beim Tüfteln...

Antwort 1 Like

Igor Wallossek

1

13,159 Kommentare 26,153 Likes

Bei 10 cm entspricht das via Luft rund 0,29 Millisekunden, bei 3 cm sind es 0,088 Millisekunden. So what...

Antwort Gefällt mir

e
einJojo

Mitglied

29 Kommentare 17 Likes

Ich hab absolut keine Ahnung wie schnell der Computer den Mausklick in ein weißes Bild verwandeln kann, was da zu erwarten ist. Deswegen bin ich erstmal von einem kleinen Wert von ca. 2ms ausgegangen. Es kann gut sein, das das das natürlich deutlich länger dauert. Bei 2,9ms wäre die Messungenauigkeit denn schon bei 10% was ich als nicht mehr akzeptabel einstufen würde...
Du hast natürlich Recht wenn die Verarbeitungsgeschwindigkeit bei 50 oder 100ms liegt ist das halbe Prozent Abweichung ziemlich egal...

Antwort Gefällt mir

Danke für die Spende



Du fandest, der Beitrag war interessant und möchtest uns unterstützen? Klasse!

Hier erfährst Du, wie: Hier spenden.

Hier kannst Du per PayPal spenden.

About the author

Bernhard Baumgartner

Werbung

Werbung