DES / 3DES Verschlüsselungsbibliothek für Arduino
Für ein kleines Projekt auf dem Arduino Leonardo habe ich vor kurzem eine Crypto-Bibliothek gesucht, mit der ich DES und 3DES Nachrichten verschlüsseln und entschlüsseln kann. Leider bin ich nicht fündig geworden, bzw. zumindest nicht als Bibliothek für die Entwicklungsumgebung des Arduinos. Bei “Das Labor” gibt es aber eine hervorragende Crypto-Bibliothek für Atmel AVR Mikrocontroller – nichts anderes ist ja auch ein Arduino – also habe ich mir den DES / 3DES Teil geschnappt und ihn auf den Arduino portiert. Das Ergebnis habe ich, ganz der GPL folgend, auf GitHub verfügbar gemacht. Solltet ihr also in einem Sketch bei euch auch DES / 3DES Verschlüsselung benötigen, dann könnt ihr die Bibliothek verwenden. Wenn ihr Änderungen habt, dann nichts wie her damit (entweder als Patch oder als Pull-Request per GitHub).
Neues Atmel AVR Programmiergerät
Vor ein paar Jahren habe ich mir den USBasp nachgebaut und er hat eigentlich immer ganz gut funktioniert – bis auf eine Ausnahme: das Programmieren der Fuses. Irgendwie habe ich das mit dem Programmiergerät nicht hinbekommen und dann doch immer wieder mein altes Programmiergerät für den Druckeranschluß rausgeholt nur um die Fuses zu setzen. Wenn ich eine Schaltung mit 3.3V zusammengebaut habe, ist das Programmiergerät auch nicht mehr zu verwenden gewesen und deshalb konnte das so nicht bleiben. Ein neues Programmiergerät musste her. Nur welches? Gerade im Hobbybereich gibt es sehr viele, die auch noch in unterschiedlichen Preisklassen liegen und evtl. sogar mehr als nur die Atmel Mikrocontroller unterstützen.
Nach langem Überlegen und vielen Preis- / Featurevergleichen ist meine Wahl dann doch auf ein original Atmel AVRISPmkII gefallen. Warum ist eigentlich einfach zu erklären: Die günstigeren Modelle aus China oder Hong Kong haben bspw. keinerlei Support und man kann froh sein, wenn alles funktioniert. Vielleicht klappt es, vielleicht auch nicht. Dann gibt es die Varianten, die von unterschiedlichen Firmen angeboten werden und separate Programmiertools benötigen und z.B. nicht direkt aus dem AVR Studio heraus arbeiten. Auch nicht so das Wahre. Dann gibt es noch kompatible Programmiergeräte zum AVRISPmkII und zum Schluss sogar noch welche, bei denen man unterschiedliche Firmwares einspielen kann, um diverse Mikrocontroller zu unterstützen, bzw. serielle Schnittstellen oder einen kleinen Logic Analyzer, etc. Leider liegen die auch preislich mindestens gleich auf. Auch nicht das Richtige. Was man auch nicht vergessen darf: nicht alle Programmiergeräte unterstützen auch 5V und 3.3V. Das sollte heute aber üblich. Viele Programmiergeräte haben auch kein Gehäuse und fallen damit auch schon bei mir durch.
Den AVRISPmkII von Atmel habe ich jedenfalls bei Reichelt Elektronik für ~40 EUR bekommen und bin damit ganz zufrieden und wenn es Probleme gibt, kann man sich direkt mit dem Hersteller des Mikrocontrollers und des Programmiergerätes auseinandersetzen. Allerdings muss ich mir jetzt noch einen kleinen Adapter von 6pol. ISP beim AVRISPmkII auf 10pol. basteln, da meine bisherigen Projekte immer diesen Anschluss verwendeten, aber das ist ja das kleinste Problem
.
Neues Digitalmultimeter
Ab und an muss auch mal was erneuert werden, auch wenn das alte noch funktioniert. Aus diesem Grund habe ich mir erstmal ein neues Digitalmultimeter gekauft. Bisher hatte ich ein Digitalmultimeter von Knopex, mit dem ich eigentlich ganz zufrieden war, aber mittlerweile sind so Funktionen wie Autorange, Min/Max/Avg Berechnung oder auch der Anschluss an einen PC. Kurz, ich habe mir ein neues UNI-T UT61C gekauft. Für meinen Hobbybedarf absolut ausreichend.
Mit dem neuen Multimeter bin ich eigentlich auch ganz zufrieden, allerdings ist mir direkt aufgefallen, dass die Samplegeschwindigkeit des neuen Multimeters langsamer als die des Knopex ist. Für mich ist das nicht weiter schlimm, da ich notfalls noch mein altes Digitalmultimeter habe, aber für jemanden, der professionell damit arbeiten möchte, greift mit Sicherheit zu einem besseren Gerät. Bisher habe ich es auch noch nicht geschafft das Multimeter unter Linux zu verwenden, aber es wird schonmal erkannt. Das werde ich aber auch sicherlich noch hinbekommen…
Ab und an muss mal ein Prototyp her
Klar, wenn man etwas entwickelt, will man ja so schnell wie möglich fertig werden, aber ab und an ist es ganz praktisch, wenn man Teile seiner Ideen schonmal testen kann. Genau das habe ich mir bei meiner aktuellen Hardwarentwicklung gedacht und erstmal nur den Mikrocontrollerteil nachgebaut. Als Bonus habe ich an die Datenleitungen ein paar LEDs drangehängt, um zu sehen, ob das, was ich mir ausgedacht habe, auch wirklich so funktioniert. Der Mikrocontroller-Teil wird per USB Stack an den PC gehängt, weshalb ich auf dem Prototypen erstmal einen USB Bootloader installiert habe. Damit ist es mir möglich, Programme auch ohne ISP Programmiergerät auf den Prototypen einzuspielen und das sogar ohne spezielle Treiber auf der PC Seite. Der nächste Schritt ist die Implementierung einer Firmware, die ein Custom-Gerät simuliert und die ich dann mit einem kleinen Programm über einen USB Treiber ansprechen kann. Hört sich einfach an – ist es bestimmt auch, aber ich brauche dafür wohl noch ein Weilchen
.
Das ist jedenfalls der momentane Aufbau:
Mein kleines Netbook samt USBasp Programmiergerät (links unten) und dem Prototypen (links oben).