HIDeKey

Als Abschlussprojekt und Vorbereitung auf meine Betreuertätigkeit für die Mikrocontroller-AG des MMI’s habe ich mich näher mit dem USB-Bus und dem darauf aufbauenden HID-Protokoll befasst.

HIDeKey ist ein kleiner USB-Stick, der als HID-Tastatur vom Rechner erkannt wird und beliebge Zeichenketten und Tastenkombinationen an den Host-Rechner senden kann.

Mein Ziel war es ein kleinen Hardware-Dongle zu entwickeln welcher Passwörter, TANs und Onetime-Tokens direkt an jeden beliebigen Rechner senden kann. Meine Passwörter sind im verschlüsselt EEPROM des Mikrocontrollers gespeichert. Beim Drücken, des Tasters auf dem Stick, wird das Passwort eingegeben.

Als Hardware nutze ich die zuvor vorgestellten USBasp Programmieradapter aus China, deren Firmware ich durch eine eigene ersetzt habe. Mit einem zusätzlichen Taster lässt sich so über ein kleines Menü zwischen 10 User-Passwort-Kombination wählen.

Neue Passwörter können mit einem kleinen Konsolen-Programm direkt über den Rechner einprogrammiert werden.

HIDeKey soll auch zur Generierung von One Time Passwords (OTP) genutzt werden können. Da er sich wie ein gewöhnliche USB-Tastatur verhält, kann er auch unterwegs am Schlüsselbund in Internet-Cafes und Rechner-Pools genutzt werden.

Sourcecode & Schaltpläne etc. gibt es wieder per git. In meinem Wiki ist auch noch etwas Dokumentation gesammelt.

HIDeKey ist wie die meisten meiner Prrojekte als OpenSource veröffentlicht. Ich freue mich über jede Verbesserung, Erweiterung oder andere Beiträge zu diesem Projekt 🙂

Quiz Buzzer

P1040386Für die einige Spiele unseres Abischerzes benötigten wir Buzzer wie man sie aus den TV-Shows „Schlag den Raab“ oder „Familien Duell“ kennt. Als Techniker war es meine Aufgabe diese zu besorgen. Schnell stellte ich fest, dass diese gewöhnlichen Buzzer, die eigentlich für den industriellen Einsatz bestimmt sind, für unseren Ramen viel zu teuer waren. Bei Preisen von ca. 50€ pro Buzzer brauchten wir eine Alternative.

Ich entschied mich den kompletten Buzzer inklusive Elektronik selbst zu bauen. Die Auswertung wird hierbei von einem Computer übernommen. Die Buzzer simulieren eine USB-Tastatur mit nur einer Taste. Dank des Projekts V-USB, ein Software USB Stack für Atmel AVR Mikrokontroller, der auch das USB-HID Protokoll beherscht, konnte die Platine recht übersichtlich gehalten werden. Es wird nur ein TinyAVR45 und etwas „Vogelfutter“ benötigt 🙂 Die Mikrokontroller Firmware konnte ich leicht abgewandelt von Flip übernehmen.

Der Taster an sich besteht aus zwei Plastik-Muffen und einer Plastikkugel aus dem Bastelbedarf, die rot lackiert wurde. Ein Stoßdämpfer aus dem Modellbau sorgt für die nötige Rückstellkraft.

Quiz Buzzer weiterlesen

Selfmade Nokia N810 Micro USB OTG Kabel

Eine nette Kette von Adaptern
Eine nette Kette von Adaptern

Mein Nokia N810 verfügt über einen USB OnTheGo Controller. Dieser ermöglicht es das N810 auch als USB Host zu nutzen. Man kann also seine Tastatur, Digicam, USB Stick, Drucker und andere USB Geräte anschließen. Tastaturen und USB Sticks werden automatisch erkannt und von Maemo eingebunden. Beim Rest bedarf es etwas Handarbeit. Besitzt man einen Seriel zu USB Wandler (mit PL2303 Chipsatz) kann man auch sämtliche Geräte mit einem seriellen Port am Tablet betreiben. Dazu benötigt man nur zwei entsprechende Kernelmodule.

Rechts seht ihr mein Tablet zusammen mit meinem Garmin eTrex. Zugegebenermaßen sieht diese Kette aus Adaptern etwas wagemutig aus, aber sie funktioniert bestens. Ich konnte bereits MaemoMapper dazu bewegen das Garmin GPS zu nutzen. Minicom und Avrdude sind bereits von mir portiert 😉 und müssen nur noch gepackt und hochgeladen werden.

Nach dem Laden der oben genannten Kernelmodule mit:

sudo gainroot
insmod usbserial.ko
insmod pl2303.ko

wird nach dem Einstecken des USB zu Seriell Wandler ein neues Device in /dev/ttyUSB0 angelegt. Dieses ist mit /dev/ttyS0 eines normalen Linux Rechners vergleichbar und kann somit von jedem Linux Programm angesprochen werden. Ich freue mich schon jetzt mein N810 zum Analysieren des Debug Outputs der AVRs Mikrocontroller meines Tetrabots benutzten zu können. Mit Webcam, GPS, Bluetooth, Audio IN/OUT wird sich das Tablet später vielleicht auch einmal ideal als Gehirn eines Roboters eignen.

Um die OTG Funktion nutzen zu können muss der Controller jedoch erst in den OTG Modus versetzt werden. Dies kann manuell durch den Kernel geschehen oder automatisch. Die OTG fähigen USB Stecker (Mini und Micro USB) verfügen über 5 Pins. Also einen Mehr als ihre größeren Geschwister. Wird dieser 5. Pin auf Masse gezogen schaltet sich der Controller automatisch in den OTG Modus. Leider gibt es für die automatische Variante noch keine entsprechende Adapterkabel im Handel. Also hab ich mich mal wieder selbst ans Werk gemacht. Inspiriert von einem Blogeintrag im Nokia Forum entschied ich mich das mitgelieferte Kabel (CA-101) umzukonfektionieren. Jedoch legte ich dazu den kompletten Micro USB Stecker aus seiner Gummihülle frei. Diese wurde später durch ein Stück Schrumpfschlauch ersetzt. Hier also jetzt die Anleitung für die automatische Version.

Warnung: Für die folgende Anleitung ist gutes Handwerkliches Geschick beim Umgang mit dem Lötkolben erforderlich. Die Abstände der Lötpunkte sind nur ca. 0,5 mm breit.

Werkzeug

  • scharfes Messer
  • Lötkolben
  • Saitenschneider
  • Pinzette

Materialien

  • Lötzinn
  • Schrumpfschlauch

Los gehts:

  1. Wir schneiden das USB Kabel ca 10 cm vor dem großen USB-A Stecker und ca 1 cm vor dem Micro USB Stecker ab.
  2. Die Gummihülle des Micro USB Kabels entfernen.
  3. Die Metallschirmung des Steckers vorsichtig entfernen.
  4. Die Farbbelegung des Steckers notieren
  5. Das Kabelende des USB-A Steckers abisolieren und wieder an den Micro USB Steckers löten. Wahlweise kann man hier auch eine USB-A Buchse nehmen.
  6. Jetzt wichtig: Von hinten auf den Micro USB Stecker gesehen müssen die zwei rechten der fünf vergoldeten Dräte durch einen kleinen Klecks Lötzinn kurz geschlossen werden. Falls ihr euch unsicher seit welche ich meine, könnt ihr euch hier nochmal das Bild anschauen.
  7. So jetzt noch drauf achten, dass beim Anbringen der Schirmung kein Kurzschluss entsteht und das ganze mit einem Schrumpfschlauch überziehen.

Diese Version benötigt noch einen USB-A Female to Female Adapter. Das Kabel kann nicht mehr als Verbindungskabel zu einem Rechner benutzt werden. Dazu könnt ihr euch ja einfach ein neues kaufen. Ich habe meines für 30 Cent bei Amazon erstanden 😉

So siehts dann aus:

P1030694

P1030704

Viel Spaß!

Super Nintendo Controller am USB Port

Heute hab ich es letztendlich doch geschafft das SNES Controller 2 USB Projekt von Raphaël Assénat nachzubauen. Nach einem erfolglosem Anlauf (ich hab wohl den MCU beim Löten verbruzelt) musste ich nochmal komplett von vorne beginnen :-/.

Es können bis zu vier SNES oder NES Kontroller aufeinmal mit dem Rechner verbunden werden.

Vor ca. einem Jahr baute ich bereits das Gehäuse und versah die Kontroller mit neuen Steckern. Damals benutzte ich aber noch den LPT Port um die Kontroller abzufragen. Mein neuer Laptop besitzt aber nur noch USB Ports. Also musste ich das ganze etwas umfunktionieren.

Also noch einmal das Breadboard ausgepackt, MCU geflasht und wieder ein schönes Layout für meine Lochrasterplatine entworfen. Diesmal aber mit IC-Sockel für den kleinen ATMega8.

Dieses Projekt kommt ohne einen extra Wandler-IC für die USB Verbindung aus und besteht deshalb nur aus einer Hand voll Bauteilen. ES wurde AVR-USB von Objective Development eingesetzt.

Die angeschlossenen SNES Kontroller gibts günstig bei eBay.

Super Nintendo Controller am USB Port weiterlesen