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

Circuit diagram and circuit board

The power stages at the top of the circuit diagram are actually only there to prevent voltage dips when the measurement technology is switched on. This is achieved with two 220µF electrolytic capacitors in parallel to the main voltages, here 3.3V and 5V. Strictly speaking, the 5V is not needed except for the USB bus, but I still like to carry the voltage on solder pads so that the board can be expanded later. The image of the Teensy 4.1 microcontroller (ARM Cortex M7) is prominently displayed in the center. The controller is already shown here as a finished developer board and all pins are easily accessible. At the top left we see the connection of the phototransistor. This is supplied with 3.3V at the collector and its output (emitter) is pulled to GND (low) by a 100k resistor in the non-conductive state. If the phototransistor then becomes conductive (change in brightness), the emitter passes the supply voltage on the same line to pin 14 of the controller. Below this is the potentiometer for adjusting the sensitivity of the MEMS microphone. As this type of microphone is very sensitive, a measure must be implemented to eliminate background noise or interference. The set voltage divider (0V – 3.3V) outputs a measurement voltage to pin 16.

The OLED display underneath is simply supplied with 3.3V and GND. The control is uncomplicated and fast via I2C and outputs the calculated latency values and more during operation. (Pin 18 & 19) At the bottom left is the microphone. This already sends native digital signals to the microcontroller and is also supplied with 3.3 V. A further GND line on pin 2 of the microphone indicates mono operation. DOUT_SD carries the serial data, BCLK_SCK provides the clock signal and LRCLK_WS selects the data by channel (L or R). (pins 8, 20 and 21) On the right-hand side of the microcontroller there are unspectacular features: the pushbutton for triggering the measurement calibration and two status LEDs with series resistors. These indicate whether the microphone or the button has been triggered.

After drawing the circuit diagram and then exporting it to the circuit board editor, the following airwires are created after positioning the components for the first time:

Airwires show logical links between physical components based on the circuit diagram. All yellow lines must therefore be connected and we use a simple two-layer PCB for this. If you want to see the layouting process, you can do so on Igor’s Youtube channel, I recorded it. Basically, all components should be arranged in this phase so that connections are as short and efficient as possible. Attention must also be paid to the PCB shape, electrotechnical features and the intended use. After I have laid out the PCB, the following picture emerges:

If we look at the layout, it is noticeable that there are large red and blue areas. The red area is the top copper layer (TOP), the blue area is the bottom copper layer (BOT). In this view, you can imagine that you are looking through the PCB from above. Green holes are vias and at the same time soldering areas. No solder resist has been applied here so that it can be soldered on later. I worked with THT components for this small project as I don’t have any equipment for SMD reflow soldering at the moment.

All areas, whether TOP or BOT, that do not carry signals were covered with a ground plane over the entire size of the board. This is for EMC, electrical safety and also makes PCB production slightly faster, as copper that is erased has to be etched away. Directional changes of twice 45 degrees in the cables prevent signal reflections and make it easier to trace the paths. I have routed main voltage supplies such as 3.3 V and 5 V with 0.508 mm, signal lines with 0.254 mm. With data signals, especially if they are very fast, you should pay attention to signal lines of the same length and crosstalk, but with I²C and I²S this is negligible.

I like to choose a slightly larger width for power supplies so that I can immediately identify whether they are signal lines and power supplies when I look at the layout. At the top right of the PCB we find 5V, 3.3V and GND as solder pads. If we need supply voltages and ground later on, we can easily tap them here. When the board was delivered, it looked like this:

I opted for a PCB manufacturer from the Netherlands and we can see that the work here was extremely clean. Of course, you can find the green solder resist boring, but I personally am always happy when I can physically hold a PCB that I have laid out in my hand. The workmanship is flawless, all holes, spacings and residual rings are exactly where they should be and even the small dedication to Igor at the top center was implemented very precisely. I am thrilled!

After assembling and soldering the circuit board and components on the underside, our prototype looked like this:

In the center sits our ARM Cortex and on the top from left to right we see: The 6-pin connector for the MEMS microphone, the two capacitors, the 4-pin connector for the OLED display, another 4-pin connector for the potentiometer and on the far right the solder pads for 3.3V, 5V and GND. The bottom side houses on the left: a connection for the phototransistor, all resistors and on the right the connectors for the LEDs and the calibration button.

 

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