PPM Encoder mit RSAT2

Anleitung: PPM Encoder / PPM2PWM Converter bauen

Publiziert von Nils Waldmann

am

Viele aktuelle Flightcontroller unterstützen die Entgegennahme von Steuersignalen über nur ein Kabel. Ein beliebter Vertreter dieser One-Wire-Techniken ist PPM (Puls-Pausen-Modulation). Fängt man jedoch an sich mit Flächenmodellen zu beschäftigen, so kommt man um den Einsatz von Servos nicht herum. Kann der Empfänger dann nur PPM ausgeben, muss ein PPM Encoder zwischen Empfänger und Servos / ESCs übersetzten.

In dieser Anleitung beschreiben ich, wie ihr euch einen eigen PPM Encoder bauen könnt.

Im Modellbau kommen in den allermeisten Fällen zwei Arten der (analogen) Signalübertragung zum Einsatz. Diese ist zum einen PPM (Puls-Pausen-Modulation) sowie PWM (Pulsweitenmodulation).

In unserem Zusammenhang betrachten wir beide Verfahren im Kontext der Signalübertragung zwischen Empfänger (RX) und Servo, ESCs* oder einem Flightcontroller.

Während Flightcontroller* oftmals die Möglichkeit bieten, die Steuersignale vom Empfänger entweder per PWM, PPM, über ein serielles Protokoll oder gar digital entgegen zu nehmen, verstehen Standard-RC-Komponenten wie Servos* oder ESCs nur analoge PWM-Signale.

Was genau ist der Unterschied zwischen PWM und PPM in der Praxis ?

Wenn ein Flightcontroller per PWM an den Empfänger angeschlossen wird, äußert sich dieses rein äußerlich bereits daran, dass jeder Kanal, der benutzt wird, mit einem eigenen Kabel zwischen Empfänger und Controller verbunden werden muss. PPM (auch Summensignal) kommt hingegen mit einem einzigen Kabel aus, da die Signale aller Kanäle in einem definierten Zeitzyklus nacheinander übertragen werden.

PPM Encoder mit Servopins

Aktuelle PPM-Empfänger, wie beispielsweise der Jeti RSAT2* können, mit entsprechender Firmware, bis zu 16 und mehr Kanäle über ein einziges Kabel übertragen. Der große Vorteil im Flugmodellbau: Weniger Kabel, weniger Unordnung, weniger Gewicht.

Warum dann ein PPM Encoder?

Wer, wie ich, vollständig auf reine PPM-Empfänger (wie den RSAT2*) setzt, kommt damit im Multicopter-Bereich wunderbar klar. Egal ob Naza, OpenPilot, Cleanflight oder Betaflight, alle großen Flightcontroller-Distributionen können mit PPM-Empfängern umgehen. Wozu also einen teureren, schwereren vollwertigen Empfänger mit einzelnen Kanalausgängen kaufen?

Jeti RSAT2 Empfänger - PPM only

Problematisch wird es nur dann, wenn man ebenfalls mit Flächenmodellen rumspielt. Hier wird ein Großteil der Steuerbefehle von Servos umgesetzt. Natürlich könnte man einfach einen Flightcontroller, wie den CC3D* oder Naze32*, mit in das Flugzeug bauen und die Wandlerarbeit hier erledigen lassen, aber 1) sind diese Controller nur für diesen Zweck relativ teuer und 2) macht das Selberbauen Spaß! :)

Jeti RSAT2 Empfänger kaufen!*

Was genau macht ein PPM Encoder / PPM-to-PWM Coverter?

Eigentlich genau das, was der Name impliziert. Er nimmt ein One-Wire-PPM-Signal entgegen, wertete dieses aus und gibt es an die gewünschte Anzahl an Einzelkanälen aus. Er erlaubt also den Anschluss von PWM-Komponenten an einen PPM-Empfänger.

Benötigte Komponenten

Der hier vorgestellte PPM Encoder basiert auf der Arbeit des mikrocopter-Forenmitglieds „jreise„. Er hat die Firmware geschrieben, welche in einer Version für 8 und 12 Kanäle zum Download bereitsteht. Die Rechenarbeit wird von einem Atmel ATTiny 2313 Microcontroller* erledigt. Diese Chips sind mittlerweile sehr günstig und eignen sich daher sehr gut, für solche Bastelprojekte. Diese Anleitung soll euch Schritt für Schritt durch den Aufbau führen. Eine Anleitung mit Schaltbildern finden sich unter anderem auch direkt beim Erfinder (Leider ist die Website: jreise.de/ppm2servo/ mittlerweile nicht mehr erreichbar – siehe Kommentare).

Komponentenliste

  1. Atmel ATTiny 2313*
  2. Pin-Header für ATTiny* (optional, um den µ-Prozessor später noch herausnehmen zu können)
  3. Stiftleiste im 2,54-mm-Rastermaß*
  4. Kupferlackdraht* (Kabel funktioniert genauso, der Draht ist nur schön leicht)
  5. Lochrasterplatine 2,54 mm Lochabstand*
  6. Kondensator 10 V, 100 nF*

Werkzeuge

  1. Anständige Ausrüstung zum Löten*
  2. USBasp Programmierer* von oder kompatibel mit dem Treiber von Thomas Fischl
  3. Bread Board*
  4. Steckbrücken*

Ich empfehle den Bau nur, wenn man löt-technisch ein weniger versiert unterwegs ist und man keine Angst vor der Arbeit mit der Kommandozeile hat. ;)

Flashen des Controllers

Die größte Herausforderung ist eigentlich das Übertragen der Firmware auf den ATTiny 2313 Controller*. Im Gegensatz zum Arduino Uno*, bei dem die Programme einfache über die komfortable IDE über USB übertragen werden können, benötigt der Atmel Controller einen Programmer. Ein USBasp-Programmiergerät eignet sich für unsere Aufgabe und ist bereits für unter 20 Euro zu haben. Wer ESCs beispielsweise mit SimonK selbst geflasht hat, der hat ein entsprechendes Tool sowieso bereits zu Hause. Auf geht’s!

Schritt 1: WinAVR installieren. Diese Programmierer-Umgebung enthält das Tool AVRDude, welches wir zum Flashen des ATTiny 2313 benutzen. Bei der Installation darauf achten, dass die „PATH“-Option gesetzt ist. Damit lässt sich AVRDude global im System (Windows) über die Kommandozeile aufrufen.

Schritt 2: USBasp Treiber installieren. Wie das im Detail geht, vor allem unter Windows 8.1 und 10, ist auf der Downloadseite beschrieben. Eigentlich reicht die normale Installation und das anschließende Anstecken des Programmers aus, um den Treiber respektive den Programmer zum Laufen zu bekommen.

ATTiny 2313 Microprozessor kaufen!*

Schritt 3: Firmware Datei herunterladen. Im Mikrokopter-Forum sind zwei Versionen der Firmware verlinkt. Es gibt eine Version für 8-Kanäle und eine Variante für 12-Kanäle. Nachdem Download die entsprechende HEX-Datei in das gewünschte Arbeitsverzeichnis auf eurem Computer verschieben.

Schritt 4: ATTiny 2313* mit dem Programmer verbinden. Dazu werfen wir einen Blick ins Datenblatt des Controllers. Auf Seite 2 ist die Pin-Belegung der PDIP/SOIC-Version beschrieben. Wir konzentrieren uns auf: VCC, GND, PA2 (Reset), PB7 (SCL), PB8 (MISO), PB9 (MOSI). Die folgende Tabelle zeigt die korrespondierenden Anschlüsse am USBasp.

WICHTIG: Je nach Programmer können die Pins abweichen. Mein verwendeter Programmer hat 10-Pins mit Vollbelegung.

USBasp (Pin)ATTiny 2313
5V (2)VCC
GND (3 / 8 / 10)GND
Reset (5)PA2
SCK (7)PB7
MOSI (1)PB9
MISO (9)PB8

Ist die Verdrahtung erledigt, welche sich am besten auf einem Bread Board erledigen lässt, kann der Programmer mit dem Computer verbunden werden. Wenn alles „richtig“ ist, raucht jetzt nichts :D

Schritt 5: Fuses mit AVRDude setzten. ATTiny Controller werden über sogenannte Fuses (auch Fuse Bits) konfiguriert. Der Controller kann so den Bedürfnissen nach eingestellt werden. Ein sehr nützliches Tool zur Berechnung der Fuse Bits, welche in Hex-Code übermittelt werden müssen, ist der Engbedded Atmel AVR Fuse Calculator.

Im Auslieferunszustand hat unser µ-Controller die Fusebits:

lfuse: 0x64, hfuse: 0xdf, efuse: 0xff

Wir müssen „CKDIV8“-Option deaktiveren. Die richtigen Fuses heißen also:

-U lfuse:w:0xe4:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Angegeben ist dabei bereits die Kommandooption, wie sie von AVRDude verarbeitet wird.

Über Windows + R -> cmd -> avrdude tippen lässt sich das Programmiertool aufrufen. Über die Konsole in das Arbeitsverzeichnis navigieren indem die HEX-Datei liegt. Mit dem nachfolgenden Befehl werden die Fusebits richtig gesetzt. Erhaltet ihr an dieser Stelle einen Fehler, dass keine Verbindung hergestellt werden kann, so liegt es in 99% der Fälle tatsächlich daran, dass die Verdrahtung fehlerhaft oder nicht ordentlich ausgeführt wurde (Wackelkontakt). Nicht direkt aufgeben und alles noch einmal prüfen!

avrdude -c usbasp -p t2313 -B 4 -U lfuse:w:0xe4:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Hat das geklappt, kann direkt das Programm auf den ATTiny 2313 übertragen werden. Dieses geht mit:

avrdude -c usbasp -p t2313 -B 4 -U flash:w:ppm2servo.hex

AVRDude quittiert einem den Erfolg direkt, wenn alles geklappt haben sollte. Das war’s! Der Chip ist nun bereit seine Aufgabe als PPM Encoder aufzunehmen, dazu fehlt natürlich noch ein Teil der Hardware.

Schritt 6: Platinenlayout erstellen

ATTiny 2313 Microprozessor kaufen!*

Für eine simple Schaltung, wie diese hier, macht die Herstellung einer Platine mit geätzten Leiterbahnen wenig Sinn. Außer natürlich, man macht gerne alles ganz genau oder will extrem kompakt bauen. Ein Stück Lochrasterplatine* in der Größe von 25 x 35 mm tut es aber auch. Wichtig ist, dass der Controller, die Servopins und der Kondensator Platz finden. Ein allgemeines Layout vorzugeben ist hier schwierig. Jeder nutzt ein wenig andere Teile und es ist daher vernünftig, sich sein eigenes Layout zu überlegen.

Der PPM Encoder ist dabei so ausgelegt, dass er 8 PWM-Signalausgänge, einen PPM-Signaleingang sowie einen separaten Eingang zur Spannungsversorung hat, sollte diese nicht über das BEC* im Regler realisiert werden.

Anmerkung: Der Aufbau sieht keine Schutzwiderstände vor, um möglichst einfach aufgebaut zu sein. Sollte also eine Verpolung der Stecker stattfinden, kann der ATTiny 2313* zerstört werden!

In Anlehnung an das Beschaltungsbild von Jörg Reisener ist der die folgende Beschaltung entstanden. Extra ausgeführt ist hier der RESET-Pin, um spätere Umprogrammierung ohne großen Aufwand zu ermöglichen (alle anderen Programmier-Pins sind über die Servostecker* erreichbar).

Beschaltung ATTINY 2313 PPM Encoder

Übertragen auf die Lochrasterplatine* sieht das Ganze dann folgendermaßen aus. Wobei die Servopins an der oberen Seite angesiedelt sind. Alle roten Linien stellen elektrische Verbindungen dar. Benachbarte Verbindungen sind mit Lötzinn ausgeführt, längere Verbindungen mit Kupferlackdraht.

Lötbild PPM Encoder

Verlötet kann der PPM Encoder dann beispielsweise so aussehen:

PPM Encoder verlötet
PPM Encoder gerade verlötet

Mein erster Encoder besitzt ein leicht anderes Layout:

Fertig aufgebaut sieht der PPM Encoder dann so aus – einmal mit 90°-Pins* und einmal gerade:

PPM Encoder 90 Grad Pind Draufsicht
PPM Encoder - Gerade Pins Draufsicht

Schritt 7: Einschrumpfen. Ganz am Ende, nachdem die Funktion getestet ist und alles klappt, empfiehlt es sich, den neu gebauten PPM Encoder einzuschrumpfen.

Schlusswort

Ganz am Ende wird nun der Empfänger mit dem Input-Pin verbunden. Servos* und ESCs* finden an einem der acht Kanäle Anschluss. Je nach Fernsteueranlage muss nun noch die Servozuweisung im Sender erfolgen. Danach kann der PPM Encoder mit Spannung versorgt werden.

Entweder über den dediziert ausgeführten Anschluss oder über einen der acht Kanäle via Regler BEC. Wichtig ist, dass hier maximal 5V anliegen dürfen. Mit einem 6V-BEC* macht ihr den ATTiny kaputt! Also immer auf die richtige Versorgungsspannung achten!

Nachbauten

Unser Leser Uli G. hat den oben beschriebenen PPM-Encoder nachgebaut. Zugegebnermaßen viel schöner, als unser Encoder es jemals war. Vor allem das Gehäuse aus dem 3D-Drucker mit den seitlichen Befestigungslaschen ist sehr praktisch.

Bildquelle: Uli G.
Bildquelle: Uli G.
PPM Encoder Uli - 3D DruckgehäuseBildquelle: Uli G.

Während der Bauphase gab Uli uns noch den Tipp, dass das Program Zadig, welches dabei helfen kann, eurem USAP* den richtigen Treiber zuzuordnen. Falsche Treiber sind nämlich oft das Problem dafür, dass ihr den ATTiny* nicht mit AVRDUDE beschreiben könnt. Es erscheint dann ein Fehler, der eine fehlgeschlagene Verbindung quittiert.

An dieser Stelle noch einmal herzlichen Dank für den netten Austausch und die Bereitstellung der Fotos.

Du hast den PPM-Encoder ebenfalls nachgebaut? Schreib uns oder hinterlasse einen Kommentar! Gerne stellen wir auch deine Version für andere Leser vor! :)

ATTiny 2313 Microprozessor kaufen!*

Bleibt in Kontakt!

Wenn ihr über die neuesten Drohnen-News, Drohnen-Leaks, Drohnen-Gerüchte, Drohnen-Guides und Drohnen-Testberichte auf dem Laufenden bleiben möchtet, dann folgt uns gerne auf unseren Social-Media-Kanälen!

Außerdem freuen wir uns natürlich über eure Nachrichten oder Fragen in den Kommentaren!


Hinweis: Mit Sternchen (*) markierte Links sind Affiliate-Links / Partnerlinks. Mit einem Kauf über diesen Link erhalten wir als Seitenbetreiber eine Verkaufsprovision. So kannst du Drone-Zone.de ganz einfach unterstützen. Bitte beachtet, dass es sich bei Drone-Zone um eine reine Website zur Information und keinen Online-Shop handelt. Ihr könnt über unsere Seite keine Kaufverträge über die dargestellten Artikel abschließen und auch keine persönliche Beratung hierzu in Anspruch nehmen. Mehr Informationen dazu findest du hier.

Avatar-Foto

Nils Waldmann

Hi, ich bin Nils! Ich bin leidenschaftlicher Modellbauer, Hobby-Fotograf, Akku-Liebhaber und RC-Pilot. Ich berichte hier über die neusten Entwicklungen in der Drohnen-Branche und kümmere mich um detaillierte Anleitungen, Guides und Testberichte.

Bildquellen

  • PPM Encoder Uli – Platine: Uli G.
  • PPM Encoder Uli – Offenes Gehäuse: Uli G.
  • PPM Encoder Uli – 3D Druckgehäuse: Uli G.

Schon gesehen?

Droniq App Statusdetails

Droniq App für Drohnenpiloten ab sofort verfügbar

Die neue Droniq App für Drohnenpiloten steht ab sofort für Android- und iOS-Geräte kostenlos zum Download bereit. Die neue Drohnen-App tritt dabei das Erbe der bekannten DFS Drohnen App an. ... jetzt lesen!

DRL SIM auf der XBox im Drohnen Konfigurator

Drone Racing: DRL SIM für Xbox verfügbar

Die Drone Racinge League hat ihren neuen Drone Racing Simulator „DRL SIM“ nun ebenfalls für die Microsoft-Konsole Xbox One verfügbar gemacht. Das Spiel soll die Welt der Drohnenrennen noch mehr ... jetzt lesen!

Liftoff Drone Racing Multiplayer Screenshot

FPV Simulator: Liftoff Drone Racing kommt am 10. November

Der bereits Anfang des Jahres angekündigte FPV-Simulator Liftoff Drone Racing hat nun ein offizielles Release-Date bekommen. Ab dem 10. November 2020 soll das FPV Racing Game für die beiden Konsolen ... jetzt lesen!

CLI Guide Teaser

Der ultimative Betaflight CLI Command Guide für FPV-Profis

CLI steht für Command Line Interface und ist keine Erfindung, die es erst seit dem Betaflight Projekt gibt. In diesem Guide erfährst du alles über die richtige Verwendung des CLI ... jetzt lesen!

14 Gedanken zu „Anleitung: PPM Encoder / PPM2PWM Converter bauen“

    • Avatar-Foto

      Sehr cool! Gute Idee. Vielen Dank für’s Teilen.

      Grüße!

      Antworten
      • Avatar-Foto

        Danke, ist nur mega fummelig zu Löten :DD

        Aso und ich habe natürlich auch einen SMD Kondensator verbaut, sieht man bloß nicht…

        Antworten
        • Avatar-Foto

          Das glaube ich gerne! Ich habe damals einfach genommen, was ich gefunden habe an Teilen. Da war SMD keine Alternative :) Aber sehr schön zu sehen, wie klein man den Konverter bauen kann!

          Antworten
  1. Avatar-Foto

    Hallo, das Kopterform ist geschlossen worden. Hat jemand die Firmware Datei zum flashen? Würde den Encoder gerne nachbauen.
    Viele Grüsse
    Uli

    Antworten
    • Avatar-Foto

      Hallo Uli,
      oh das ist ja schade. Kein Problem, ich schicke dir eine Mail. Prüfe dein Spam-Ordner und gib doch bitte kurz Bescheid, ob du die Firmware bekommen hast.

      Viele Grüße,
      Nils

      Antworten
      • Avatar-Foto

        Habe die Downloadlinks unter „Benötigte Komponenten“ noch einmal verknüpft.

        Antworten
      • Avatar-Foto

        Hallo Nils,
        O. K., danke für die Info.
        Ich würde die Servos in jedem Fall direkt aus einem BEC mit Spannung versorgen.
        D. h. aus dem ATTiny weden dann nur die PWM-Anschlüsse und Masse zu den Servos geführt.
        Den ATTiny könnte man dann ggf. aus dem BEC über eine 5V Z-Diode versorgen.
        Soviel Strom wird er ja nicht verbrauchen, oder?
        Weiter oben wurde vermerkt, das keine Schutzwiderstände erbaut wurden.
        Wie müssten diese denn in die Aus- bzw. Eingänge angeschlossen werden?

        Gruß
        Peter

        Antworten
        • Avatar-Foto

          Hallo Peter,

          wenn die Servos an einem anderen BEC hängen, sollte das theoretisch auch funktionieren. Geprüft habe ich das jedoch nicht ohne Kondensator. Natürlich darf der Attiny dann nicht auch an demselben BEC hängen. Denn dann hätten wir wieder die Situation wie unten beschrieben.

          Zur Verpolung: Das hängt ein wenig von deinem Setup ab. Dazu kannst du mal in das Datenblatt deines ATTiny schauen, den maximal tolerierten Strom an den I/O-Pins suchen und dann entsprechend einer Betriebsspannung einen Widerstand wählen. Das muss leider individuell geschehen.

          Da du ja aber kein Plus durchschleifen willst, ist deine Gefahr vor einer Verpolung ja ohnehin schon stark reduziert.

          Viele Grüße,
          Nils

          Antworten
  2. Avatar-Foto

    Hallo Nils,

    Vielen dank für die schnelle Antwort. Deine Mail ist angekommen.

    Grüsse Uli

    Antworten
  3. Avatar-Foto

    Hallo,
    im oben angegebenen Schaltplan ist ein 100nF Kondensator eingezeichnet.
    Auf dem Lochraster sieht der Kondensator aber wie ein Elko aus?

    Gruß
    Peter

    Antworten
    • Avatar-Foto

      Hallo Peter,

      da hast du Recht. Mein Aufbau hat aber damals so ohne Probleme funktioniert. Im Grund soll der Kondensator ja vor allem die Eingangsspannung vor dem ATTinny glätten und verhindern, dass der Microcontroller aufgrund von Unterspannung aussteigt. Das ist wichtig, denn in der Regel hängen die Servos ja direkt an der gleichen Spannungsquelle. Bei hoher Spitzenlast bricht die Spannung kurzzeitig stark ein und der ATTiny bootet neu. Das leistete der Elko bei mir ebenfalls ohne größere Zwischenfälle.

      Grüße,
      Nils

      Antworten
  4. Avatar-Foto

    Hallo,

    ich bin auf der Suche nach einem PWM zu PPM konverter auf diesen Bericht hier gestoßen.
    Ist es möglich, ein PWM Signal eines PC-Lüfters auf PPM für einen Brushless Flugregler umzuwandeln?

    Gruß Tobi

    Antworten
    • Avatar-Foto

      Hallo Tobi,

      ich fürchte das wird mit dem Converter nicht gehen. Ausprobiert habe ich es aber nicht.

      Viele Grüße,
      Nils

      Antworten

Schreibe einen Kommentar