DIY leichtgewichtige verschlüsselte Funkübertragung

6 Kommentare

Der erste Hackergarten Stuttgart fand am 23. Juli 2015 statt. Das Ziel dieses Hacks war ein verschlüsseltes Ping-Pong zweier embedded Funküberträgern.

Die Idee für den Hack stammt vom Heimautomatisierungsprojekt eines Hackers. Anscheinend gibt es Nachholbedarf im Bereich verschlüsselter Funkübertragungs-Protokolle – sowohl Software als auch Hardware. Wenn man etwas richtig haben will, muss man es eben selbst machen (DIY – Do it yourself).
Das Ziel dieses Hacks ist der Aufbau einer Funkverbindung zwischen Gateway und KNotizn, mit einem anschließend verschlüsseltem Ping-Pong (Anfrage-Antwort).

Verwendete Hardware

Beim Hackathon war folgende Hardware im Einsatz:

Tipp:
Aufgepasst, der RFM69HW hat eine Betriebsspannung von 3.3V. Der angeschlossene Arduino benötigt also einen 3,3V Ausgang oder ihr verwendet ein Netzteil mit 3.3V Spannung.

Verwendete Software

Tipp:
Der Seeeduiono hat einen FTDI-USB-Chip. In dieser Anleitung wird gut erklärt, wie man den richtigen 
USB-Treiber installiert.

Aufbau

Da man mit der Arduino-Software nur einen seriellen Monitor anzeigen lassen kann, empfielt es sich, ein separates Programm hierfür zu haben (z.B. CoolTerm), einen weiteren Rechner, oder den seriellen Monitor von Arduino zu Arduino umzuschalten.

Tipp:
Wir hatten zwei Macs. Das erleichterte das gleichzeitige Hacken.

Hardware-Aufbau

Arduino-RFM69HW-Verdrahtung

Die Verdrahtung von Arduino und RFM69HW Quelle: https://electronichamsters.files.wordpress.com/2014/09/dd_basic.png

Tipp:
Die Verbindungsdrähte und „Antenne“ des RFM69HW waren bereits angelötet (die Antenne ist für die 
Verwendung in einem Raum vermutlich redundant). Wir mussten also nur die Drähte des RFM69HW an 
den Arduino anschließen.

Software-Aufbau

Die Arduino-Software lässt sich wie im Getting Started Guide beschrieben installieren. Als nächstes kopiert man die Bibliothek-Verzeichnisse (RFM69 and SPIFlash) in das Arduino-Bibliotheken-Verzeichnis (Standard ist hierfür $home/Arduino/libraries (analog unter Windows)).

Die RFM69-Bibliothek hat auch entsprechende Beispiele (im Verzeichnis Examples).

Die Beispiele namens Gateway und Node sind bereits einsatzbereit. Versuche das Kompilieren: Öffne die Beispiel-Datei in der Arduino-Software und führe die Verifizieren-Funktion aus (der Knopf mit dem Häkchen-Zeichen oder im Menü unter Sketch-> Überprüfen/Kompilieren)

Code-Änderungen

#define FREQUENCY RF69_433MHZ
//#define FREQUENCY RF69_868MHZ
//#define FREQUENCY RF69_915MHZ

in

//#define FREQUENCY RF69_433MHZ
#define FREQUENCY RF69_868MHZ
//#define FREQUENCY RF69_915MHZ

Lade ein Beispiel auf jeweils einen Arduino und überprüfe die Funktion mit dem seriellen Monitor (Menü Werkzeuge->serieller Monitor) . Es sollten Textausgaben zu sehen sein.

Notiz: 
Setze den baud-Wert des seriellen Monitors auf 115200 oder ändere diesen Wert in beiden Code-
Beispielen.

Wir haben das Gateway-Beipiel auf den SainSmart UNO und das Node-Beispiel auf den Seeeduiono 
hochgeladen. Das Hochladen auf den Seeeduiono hat seine Tücken. 
Man muss der Reset-Knopf während des Hochladens gedrückt halten und sofort nach Abschluss 
loslassen, sonst funktioniert es nicht. 
Wird der Reset-Knopf zu früh oder zu spät losgelassen, muss man den Vorgang wiederholen.

Wenn beide Arduinos vorbereitet sind und eine Stromversorgung haben, sollte man nun auf dem seriellen Monitor sehen, dass der Gateway Daten vom Node empfängt.

Ergebnis

Trotz der einen oder anderen Hürde haben wir es geschafft, eine Verbindung zwischen Gateway und Node aufzubauen. Die Ausgabe des Node zeigte, dass gesendet wurde und die Ausgabe des Gateway, dass es auch empfangen wurde.

Somit haben wir den Ping-Teil des Zieles erreicht.

Nichtsdestotrotz haben wir es nicht geschafft, dass der Node eine Empfangsbestätigung vom Gateway empfing bzw. ausgab. Der Pong-Teil des Zieles wurde somit nicht erreicht.

On-Scene Setup

Aufbau am Platz

Ausblick

Erste Aufgabe für den nächsten Hackergarten Stuttgart wird es daher sein, das Pong zum Laufen zu bekommen. Außerdem haben wir uns ein neues Zeil ausgedacht, sozusagen eine Daseinsberechtigung für unseren Funkübertragungsaufbau. Da die Idee aus einem Heimautomatisierungs-Projekt stammt, ist es naheliegend, tatsächlich einen Hackergarten zu beschaffen und für diesen ein automatisches Bewässerungssystem zu entwickeln. Natürlich muss das System dann auch mittels verschlüsseltem Funk kommunizieren.

Update

Wir haben ein Hackergarten Github-Repo angelegt:
hackergarten-stuttgart/EWHA

Es gibt ein Fortsetzungsprojekt:
Driving a Servo on Arduino from a remote Arduino over secured radio

Christian Streibl
  • Studium Dipl.-Inform. Med.
  • Software-Entwickler DKFZ Heidelberg – Bild-/Singalverarbeitung
  • Software-Entwickler Swarco Traffic Systems GmbH – Verkehrsinfrastruktur-EDV
Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Artikel von Christian Streibl

Embedded

DIY encrypted lightweight radio transmission

Weitere Inhalte zu Embedded

Kommentare

  • 10. Mai 2016 von Jendrik

    Hi,
    ich versuche mich gerade am Gateway – Node Beispiel. Jedoch ohne Erfolg, es findet keinerlei Übertragung statt.
    Habt ihr einen 3V Arduino verwendet? Ich fürchte gerade, dass ich meine RFM69 zerschossen habe, weil ich keinen Logic Level Converter verwendet habe. Aber wenn ich das richtig sehe, habt ihr das auch nicht getan oder?

    • Christian Streibl

      11. Mai 2016 von Christian Streibl

      Hallo Jendrik,

      wir haben bei den verwendeten Arduinos drauf geachtet, dass diese einen 3V-Anschluss haben und haben den auch verwendet. Der RFM69 geht bei 5V in der Regel kaputt.
      Du hast Recht, wir haben kein Logic Level Converter verwendet.

      Allerdings haben wir anfangs noch am Code ein paar Anpassungen machen müssen. Schau am besten nochmal ob Du da alles richtig hast, oder verwende eifach den Code im GitHub Repository.

      Viel Erfolg und Grüße,
      Christian

  • 11. Mai 2016 von Jendrik

    Hi Christian,
    danke für deine Antwort. Die Speisung des Chips läuft bei mir auch über die 3,3V Buchse des Arduinos. Nur kommen aus den Pins 10-13 auch 5V?

    Ich hab mittlerweile 20mal kontrolliert ob alles richtig angeschlossen ist ^^ Traue mir da auch am ehesten Fehler zu… Aber nein, es passt alles. Was musstet ihr denn am Code anpassen?

    • Christian Streibl

      11. Mai 2016 von Christian Streibl

      Hi Jendrik,

      hier eine Info zu Digital Pins.
      Und hier das Repository zum nachschauen, welchen Code wir verwendet haben.

      Tips:
      Überprüfe nochmal die Lötstellen am RFM69 und ob auch alle Drähtchen richtig an den Digital Pins dran sind.
      Überprüfe ob der „serielle Monitor“ Nachrichten vom RFM69 ausgibt. Erst wenn Sender und Empfänger einzeln laufen, kannst Du versuchen sie zu verbinden.
      Falls das alles nicht hilft, versuch Pin 13 mit nem anderen Pin zu tauschen. Dafür musst Du dann aber die Libs entsprechend ändern…

      Gruß,
      Christian

  • 20. Juli 2016 von Peng Peng

    “ Wenn man etwas richtig haben will, muss man es eben selbst machen (DIY – Do it yourself).“
    Wie man an eure Beispiel sent gut LernerkKann UUnderiI have lass JetstarmMaldie – ach blöde Tastertur. Vielleicht sollte ich zu meiner Unfähigkeit auch nen Blog aufmachen?
    Kommt dieses Hacken eigentlich von Hackfleisch? Und das Ping hier im PC bei mir hackt auch immer voll, aber manchmal kommen sogar Rückantworten – auch ohne Pong. Da muss Microsoft wohl mal wieder ein Update aufspielen. Kann euch ja zum Glück nicht passieren mit euren leichtgewichtigen Macbooks. Richtige Hackertools habt ihr da aufgefahren. Aber bei dem Ergebnis auch total gerechtfertigt. DIY eben. Ich freue mich schon sehr auf einen Bericht aus eurem Hackergarten. Da könnt ihr bestimmt richtig rumhacken. Und nichts kaputt machen. Und den Müll könnt ihr danach vielleicht sogar kompostieren. Hier muss man ihn leider lesen, wenn man mal kurz nicht aufpasst.

    • Christian Streibl

      20. Juli 2016 von Christian Streibl

      Hallo Peng Peng,
      den ersten Spruch kenne ich, kann aber nur bedingt zustimmen.

      Auf Deinen vermeindlichen Blog bin ich gespannt.

      Zur Etymologie von Hacken hab ich hier einen Wikipediaartikel gefunden: https://de.wikipedia.org/wiki/Hack

      Wenn Du in der Nähe von Stuttgart bist, komm doch mal zum Hackergarten: http://www.meetup.com/Hackergarten-Stuttgart/

      Es gibt auch noch andere Hackergarten. Wo und wann die stattfinden kannst Du hier sehen: http://hackergarten.net

      Das mit dem Müll sehe ich bei deinem Kommentar rekursiv, da er keinen mir erschließlichen Mehrwert für den Blogeintrag bringt.
      Wenn Du Dir etwas mehr Zeit nimmst, kannst Du vielleicht auch etwas mehr ins Detail gehen und entweder die Fehler aufzeigen, oder Deine Definition von Müll darlegen?

      Gruß,
      Christian

Kommentieren

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