ESP32-S2 das Spiel mit der Mouse

Last Updated on 12. Juni 2023 by sfambach

Ein Bekannter hat mir neulich sein Leid geklagt. Er sei jetzt im Home-Office und befürchte, dass sein Arbeitgeber seine Computer Daten trackt. Da der Computer nach wenigen Minuten in den Standby-Modus schaltet kam er auf die Idee immer wieder die Mouse zu bewegen, um dies zu verhinden. Seine Funkmouse reiche sogar bis zur Toilette, sagte er mir und richtete seinen Dank an die Hersteller solcher Mäuse.

Nun ist der Bekannte nicht nur ein guter, sondern auch ein Beamter und diese brauchen bekanntlich ihren Mittagsschlaf. Die Mouse an die Katze zu binden (sieht jemand die Ironie) oder sie auf einen Plattenspieler mitlaufen zu lassen ist nicht ganz perfekt.

Abends die Kinder ins Bett bringend liess ich in dieser Richtung meine Gedanken schweifen. Mir kam der ESP32-S2 ins Gedächtnis, der über die Möglichkeit verfügt ein HID (Human Iterface Device) also bzpw. ne Mouse oder Tastatur zu emulieren.

Somit war ein neues Projekt geboren – eine Mouse zu emulieren die dann eingreift wenn man gerade inaktiv ist. Natürlich wäre eine Softwareemulation auf dem Rechner auch denkbar aber die meisten Firmenrechner sind gegen die Installation fremder Software abgesichert.

Fakten

  • Einfache anstecken der FAKE-Mouse an die USB Schnittstelle.
  • Mouse greift ein wenn länger als 3 Minuten keine Aktion erkannt wurde. War nicht möglich keine Rückmeldung vom Computer
  • Mouse hört auf sobald der Benutzer wieder etwas macht. Gleicher Grund wie oben
  • Die Mouse Bewegungen sollten zufällig in Bewegung und Zeitabständen sein.

Gewählte Hardware

LILYGO EP32 S2 V1.1

Alternativen:

LILYGO T8 ESP32-S2 Display V1.1

Anwendungsbereiche

  • Lustige Mouse Bewegungen auf dem Bildschirm
  • Befreiung vom Joch der Arbeitgeber.
  • Ausleben des Beamtentums (Eine Entschuldigung an Beamten die für ihr Geld richtig arbeiten müssen)

Ansichten

Bilder gibts unter LILYGO EP32 S2 V1.1.

Programmierung

Bibliotheken

Die beiden benötigten Bibliotheken USB.h und USBHIDMouse.h sind ab der Version 2.0 in der ESP32 Bibliothek enthalten.

Testprogramm

ESP32-S2 – Controller auswählen

Demos gibts in den Beispielprojekten s.u.

ESP32-S2 – Beispielprogramme

Das Beispiel zur MouseButtonControl habe ich als Basis für meine Bestrebungen genutz und mein eigenes erstellt:

Das Programm aufspielen und die Dip-Schalter auf HID Modus (OTG) umstellen.

Lilygo ESP32-S2 - Umstellen auf OTG.

Probleme

Mouse hält den Computer nicht am Leben.

Evtl. ist die Zeit zwischen den Bewegungen zu gering, so dass der Computer dennoch in den Standby-Modus geht.

Einfach den Wert für das Delay verlängern. Ruhig auch mal auf 2000 stellen dann sieht man die Mouse springen.

Sonstiges

Bewegungen der Eigenen Mouse erfassen

Stefan (siehe Kommentare) schlägt vor die Schaltung in die Mouse zu integrieren, zum einen könnte man die Mousebewegungen dann mit tracken zum anderen bräuchte es bei geschickter Verdrahtung noch nicht einmal OTG Fähigkeit.

Evlt. wäre auch ein durchgeschleifter USB Port etwas, ein Arduino Clone mit Hostshield. Die eigene Mouse an den Hostshield angeschlossen und die Daten der Mouse einfach weiter an den Rechner übertragen. Pausiert die Mouse übernimmt der Ardunio Clone.

Fazit

Das Programm war schnell geschrieben und funktioniert, in den nächsten Tagen werde ich dem Usertest übergeben.

Verwandte Beiträge

Quellen

https://github.com/espressif/arduino-esp32 (Lib zum nachschlagen der USB und Mouse Bibliothek)

https://ericdraken.com/usb-mouse-jiggler/ (Er hat ein ähnliches Projekt mit einen anderen Board gemacht)

https://github.com/seife/marble_fx

https://github.com/seife/marble_fx_digistump

6 Gedanken zu „ESP32-S2 das Spiel mit der Mouse

  1. In der Tat nutze ich einen Mouse Jiggler, allerdings auf Basis eines Arduino micro. Während ich im Büro Verständnis habe, dass eine Sperre nach kurzer Zeit erscheint, dami niemand anders auf vertrauliche Daten zugreift, wenn man gerade nicht im Büro ist, ist es doch nervig, sich quasi nach jedem längerem Telephonat, sonstigem Gespräch, Besuch der Kaffeemaschine, Toilette etc, wieder Einloggen zu müssen.
    Im Büro aus Datensicherheit sinnvoll – aber als Alleinlebender im Homeoffice sicher nicht.
    Die Idee, den Mausjiggler nur bei Bedarf zu betreiben, klingt nicht schlecht. Wie wäre es, Maus oder Tastatur mit ps/2-Connector am Controller zu betreiben, und damit zu USB oder BT HID zu konvertieren? Da gibt es ja schon Projekte zu. Wenn 2 Minuten keine Eingabe, dann könnte der Mausjiggler einspringen, jede echte Bewegung deaktiviert ihn wieder bis zum nächsten Timeout…

  2. Hatte gehofft hier einen Hinweis zu finden für die Nutzung des ESP32-C3 als HID, leider schien das nur Click-Bait (würde ja passen zu jemandem der den armen Beamten hilft sich vor der Arbeit zu drücken) da der Artikel ja nur den S3 erwähnt, mit dem HID ja kein Problem ist.
    Wäre schön wenn der Titel korrigiert würde

  3. Finde ich zwar mehr als nur bedenklich solche Mitarbeiter zu haben aber alle tricks kennt auch die Personalabteilung keine Sorge. Man findet solche geräte aber an jeder ecke seit es Telearbeit gibt. Nennt sich Mouse Jiggler https://amzn.to/3UiKn70 Einfach effektiv günstig.

  4. Hallo Stefan,
    vielen Dank für deinen Kommentar, in der Tat reicht da ein Tiny aus. Um die OTG Funktion des ESP zu testen ist es eine nette spielerei und wer nur einen Hammer hat für den ist die ganze Welt ein Nagel ;).
    Als günstiges Beispiel hatte ich in den Quellen auch auf den Tiny verwiesen:
    https://ericdraken.com/usb-mouse-jiggler/
    Deine Links habe ich jetzt noch zusätzlich mit in die Quellen aufgenommen.

    Habe mir auch ein paar der Tiny board der bestellt und wollte das nochmal mit einem Atmel und günstiger testen.
    https://de.aliexpress.com/item/32409396629.html?gatewayAdapt=glo2deu&spm=a2g0o.order_list.0.0.21ef5c5fL9oQ38

    Die Idee mit der Mouse finde ich gut, habe ich unter sonstiges übernommen.

    Gruß
    Stefan

  5. Dazu ist ein ESP32-S2 vollkommener Overkill. Da reicht ein Arduino Leonardo-Clone (z.B. „CJMCU Beetle“ für einen sehr passenden Formfaktor) oder gar ein Digispark (ATTiny85) aus.

    Am besten ist es, wenn man das in die Maus einbaut, so daß nach ende der Mausbenutzung noch 30 Minuten gewackelt wird, und dann aufgehört wird, falls der Beamte beim Mittagsschlaf verschlafen sollte… 😉 Beispiel: https://github.com/seife/marble_fx und https://github.com/seife/marble_fx_digistump

    BTW: der Titel spricht von ESP32-C3, aber der Text von ESP32-S2..?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert