SONSTIGE Grundätzliches zum SBus zu PWM Konverter JMT gefragt

Merak

Well-known member
#22
Wenn der Receiver nur das SBUS-Signal liefert, ohne die PWM-Ausgänge zu nutzen, dann geht das in Ordnung.
Ansonsten mit einem Y-Kabel an einem PWM-Ausgang einmal zum Servo, einmal zum Konverter gehen, das Signalkabel zum Konverter aber auspinnen.
Ich habe den Konverter direkt mit Strom versorgt. Die Plus-Leitung im SBus-Kabel habe ich gekappt. Mein Text bezog sich auf die generelle mechanische Empfindlichkeit des Multisteckers. Klar, zur Energieübertragung eignet sich weder der Stecker noch die Bindfäden an Verbindungsleitungen.

Helle, vielen Dank! Gut zu Wissen, dass es damit ein Kompendium zu diesem Konverter gibt.
 
Zuletzt bearbeitet:

Merak

Well-known member
#23
Ok, Mist. Ich bin gleich im nächsten Schritt wieder gescheitert. Ihr Leut ... ich glaub' ihr habt keine Vorstellung davon wie weit Ihr bereits seid. Wieviel Grundlagen ihr schon selbstverständlich drauf habt und wie nutzlos die Texte und Bilder sind, wenn einem Anfänger wie mir, in dieser Thematik eben diese Erfahrung fehlt :-(

Ermutigt duch die grundsätzliche Funktion des Konverters, wollte ich mich jetzt an den nächsten Schritt wagen und in mit SBUSDecoderCFG.exe mal konfigurieren. Wie war es anders zu erwarten - es geht nichts und die Software ist eher einfach aus dem Tritt zu bringen.
Könnt Ihr mir hier eventl. nochmal auf die Sprünge helfen:

1) Der einfache Teil ... damit der Decoder mit dem Rechner verbunden werden kann, benötigt er Betriebsspannung - einfach eine Empfänger-Spannungsquelle anschließen - richtig? Wie üblich einfach an irgendeinen PWM-Ausgang, korrekt?

2) PC_EN (PC enable?) mit GND brücken. Am Dekoder fehlt an dieser Position der mittlere Pin. Also einfach nur sowas wie ein Spektrum Bind-Plug aufsetzen:
1602682582320.png

Ist das auch korrekt? Muss der Konverter neu gebootet werden, also die Betriebsspannung neu angelegt werden, nachdem die Brücke steckt oder reicht es im laufenden Betrieb?

3) RX/TX mit dem USB Adpater verbinden - das ist wohl das Problematischste ...
Auf der Konverterhülle steht Rx und auf der Platine ist TX zu lesen. Das wird dann wohl der Anschluß sein. Auch hier fehlt am Konverter ein Pin. Wenn die Beschriftung der Hülle stimmt, dann ist Signal und Plus vorhanden und GND fehlt.
Nun zum USB-Adapter. Wie schließe ich Signal/Plus dort an? Ich habe 3 Adapter zur Verfügung, die alle schon erfolgreich zum konfigurieren entsprechender Komponenten genutzt wurden: Hyperion, Graupner und einen selbst gebauten (genutzt mit MPX).
Die haben einen üblichen Servostecker zum Anschluß der Komponente: GND, Plus und Signal. Ein notwendige Kreuzung ist dort wohl schon berücksichtigt (wie gesagt - sie funktionieren alle im anderen Kontext).
Wie verbinde ich jetzt Plus/Tx (vom Konverter) mit GND/Plus/Signal von meinen USB Adaptern?
Kann mir hier jemand zumindest in der Theorie weiterhelfen?

Wenn noch jemand ein paar Tips zur Vorgehensweise beim Troubleshooting hat, wäre ich auch sehr dankbar.
Meine Versuche endeten immer mit "Read Error - Used correct version?".
Manchmal gab es auch eine Fehlermeldung mit programminternen Hinweisen. Ich weiß überhaupt nicht wo ich ansetzen soll. Ich bin zuversichtlich, dass Windows das Device richtig anspricht, da ich in der Software je nach USB Adapter mal COM3 und mal COM5 auswählen konnte. Und wie gesagt, mit allen Adaptern habe ich schon erfolgreich gearbeitet.

Auf jeden Fall - vielen Dank!
 
Zuletzt bearbeitet:

Merak

Well-known member
#24
Ok, ich hab' das Ding soweit geknackt und kann das hier zu einem Abschluß für mich bringen. Die Info die ich jetzt noch anfüge, hat mir gefehlt. Jedenfalls in der Form. Im nachhinein, verstehe ich auch die bereits gelieferten Beschreibungen, aber wenn man alles zum ersten Mal sieht, fehlen einfach ein paar winzige Puzzleteile.
Ich hoffe es hilft jemanden in der Zukunft ...

1) Der Konverter kommt nicht so konfiguriert wie erwartet. Zumindest meiner nicht. Kanal 1 vom Empfänger wird an Kanal 1 UND Kanal 9 des PWM-Konverters ausgegeben. Kanal 8 des Empfängers kommt entsprechend an Kanal 8 und 16 des Konverters raus. Die beiden "Bänke" des PWM Konverters sind im Prinzip gespiegelt. Ich bin eigentlich davon ausgegangen, dass der Konverter direkt Kanal 1 bis 16 liefern kann. Ich muss mich diesbezgl. in einem früheren Test geirrt haben.

2) Der Konverter kommt (Stand Oktober 2020) mit der FW Version 2. Da ich keine Ahnung von Arduino habe, weiß ich noch nicht wie ich den auf FW V3 flashen kann. Gerne hätte ich die Möglichkeit einzelne Ausgänge als Schalter zu konfigurieren, was erst mit V3 kommt.
Ich versuche das in einem getrennten Thread zu knacken:
--> Flashen des JMT SBus zu PWM Konverter (Arduino)

3) Damit der Konverter sinnvoll genutzt werden kann (jedenfalls in meiner Anwendungen) muss ich ihn mit Hilfe des Programms SBUSDecoderCFG.exe konfigurieren. Wenn man einmal klar weiß wie alles zu verbinden ist und was man dazu braucht, scheint es sehr einfach und zuverlässig zu funktionieren. Zwingend notwendig ist ein USB-TTL Adapter:

1602953233109.png

Ich habe den abgebildeten im Makershop (sensus.de) via ebay gekauft (4,45Eur). Das hat super geklappt:

--> CP2102 USB TTL Adapter Arduino serieller Konverter + Kabel | eBay

Netterweise waren bei diesem USB-Adapter kleine einpolige Verbindungskabel dabei, die sich als sehr nützlich erweisen.
Die diversen im Umlauf befindlichen USB-Anschluß Adapter von Graupner, MPX, Hyperion usw. eignen sich hier nicht, da sie bereits mit zusätzlicher Elektronik ausgestattet sind.

4) Der Konverter benötigt KEINE separate Anschlußspannung für die Konfiguration. Die wird direkt vom USB-Adapter geliefert. Auch das war neu für mich. Ich bin die ganze Zeit von einer separaten Stromversorgung ausgegangen.
Einfach die +5V und GND des USB-Adapters mit Plus/GND irgendeines Servo Anschlußes des Konverters verbinden. Ich habe hier gelernt, dass der Aufdruck +5V auf dem USB-Adapter einen Ausgang für 5V kennzeichnet und nicht einen Eingang der 5V benötigt.

5) Am Konverter muss noch PC_En gebrückt werden. An diesem Anschluß fehlt der mittlere Pin. Einfach den obersten mit dem untersten Pin verbinden. Ich habe dazu einen Bindestecker wie er für die Spektrumempfänger verwendet wird genommen (siehe meine Abbildung weiter oben). Es tut aber auch eines der beim USB-Adapter beiliegenden Kabel.

6) Jetzt noch Rx des Konverters mit Tx des USB Adapter verbinden, sowie TX des Konverters mit Rx des USB-Adapter. Was mich hier völlig aus dem Tritt gebracht hatte und verhinderte, dass ich existierende Texte verstand, war die Bezeichnung auf der Platine des Konverters. Der Anschluß hat nur 2 Pin und die Beschriftung befindet sich jeweils auf der anderen Platinenseite. Entgegen der anderen PWM-Anschlüsse des Konverters ist hier der äußere Pin eben nicht GND.
 
Zuletzt bearbeitet:

Merak

Well-known member
#26
Ja cool! Vielen Dank! :)
Schick' mir einfach per PN Deine Adresse! Ich schick' Dir den Konverter mit versandfertigem Rückumschlag!
:)
 

Bussard

Erfahrener Benutzer
#30
So, mal eine Zwischen-Info:

Den SBUS-Konverter von @Merak habe ich jetzt 2 Tage, darauf ist ein Atmega168 verbaut. Mit der Firmware V2 läßt er sich über den Configurator umprogrammieren und macht anscheinend, was er soll. Das flashen der Firmware auf V3 über die serielle Schnittstelle klappte nicht (Arduino-IDE), scheinbar ist der vorprogrammiert verbaut worden (kein Bootloader seriell). Wenn sich das bestätigt (bin da nicht so firm), ist man mit dem Fertigmodul auf die V2 beschränkt, heisst 16x PWM oder mit PPM gemixt sind möglich.

Ein Versuch, einen Arduino Nano (ATMEGA 328) mit V3 zu flashen, gelang auf Anhieb. Auch alle ausgetesteten Modi mit gemischer Aufgabe PWM, PPM und frei definierbare Schaltkanäle, haben am Mini-Logikanalysator genau richtig gearbeitet.

Hier ein paar Bilder:

PWM-Ausgabe von K1 bis K8, K9 bis K16 verhalten sich genauso
04 SBUS  V3 auf Arduino Nano K1-K8__ default.jpg


K9 bis K12 als Schaltausgänge, K13 bis K16 weiter als PWM
Für die Schaltausgänge gilt ~2000µs = low, 1000µs = high
06 SBUS  V3 auf Arduino Nano K9-K12__switch.jpg

Bank A (die ersten 6 .. 16 Kanäle, hier 9 Kanäle) als PPM-Ausgabe an Arduino-Ausgang D3
07 SBUS  V3 auf Arduino Nano K9-K12__switch___K3-PPM.jpg


Gruß Bussard
 

Bussard

Erfahrener Benutzer
#31
Ach ja, den Aufbau habe ich mit dem Receiver Jumper R8 gemacht, mit der midelic-Software lässt sich über den Sender der SBUS invertieren, so spart man am Arduino den zusätzlichen Inverter (siehe Doku):

08 Aufbau mit Arduino.jpg
 

Bussard

Erfahrener Benutzer
#33
Also brauche ich einen Arduino Nano (ATMEGA 328)? Den schliesse ich an, wie in der Software vorgegeben, der CP2102 USB TTL Adapter Arduino serieller Konverter fällt also weg.
Was muss ich wo beim Arduino anschliessen?
Was muss ich bei der IDE einstellen und laden?
Ist egal, ob Arduino Nano oder Pro Mini, ich nehme aus Bequemlichkeit lieber den Nano mit seinem USB-Anschluß, kein wiederholtes Gefummel mit dem Adapter und Kontaktschwierigkeiten. In einem Modell, wo man 16 Kanäle benötigt, ist sicher auch für 10mm mehr Länge und ein paar Gramm Platz. Beim Pro Mini werden die gleich benannten Pins (Löcher) genutzt - technisch gleichwertig.

SBUS-Converter mit Arduino nano.jpg

Um die Arduino-IDE (integrierte Programmier Umgebung) einzurichten, einfach nach dieser Anleitung vorgehen, wobei der Punkt Bibliotheksverwaltung ausgelassen werden kann.

Gruß Bussard
 
Zuletzt bearbeitet:

Bussard

Erfahrener Benutzer
#35
Bin nicht sicher, ob es an mir oder dem Musterexemplar liegt, seriell per UART mag er nicht geflasht werden. Werde es heute oder Morgen (es wird Flugwetter - also mal sehen ;) ) mit ISP-Programmierung versuchen - abwarten...
 

Bussard

Erfahrener Benutzer
#36
Von Github kreidler/SBus_Decoder über den Button "Code" und dann "Download ZIP" das Programm herunterladen und auf dem Rechner entzippen. In der Arduino IDE dann die Datei SBUS.ino öffnen. Das sieht dann etwa so aus, der Arduino sollte schon angeschlossen sein, dann kann nach der richtigen Boardauswahl und des Prozessors (ATmega328 mit oder ohne altem Bootloader) der vom Rechner zugewiesene COM-Port eingestellt werden (im Zweifel mit dem untersten der Liste anfangen).
Dann mit dem Pfeil nach rechts im oberen Oval compilieren und flashen. Das dauert etwa 30s.

Gruß

IDE zum flashen der V3.jpg
 

Bussard

Erfahrener Benutzer
#39
Ausreichend getestet haben ich das BG-Kaufmodul mit dem ATMEGA168. Das ließ sich auch nicht mit ISP-Programmierung zum Flashen eines Bootloaders überreden. Zum Test habe ich nebenbei bei ein paar alten Arduinos den "neuen" Bootloader aufgespielt, problemlos.

Dann eben die radikale Methode, die ich aber nicht unbedingt zum Nachmachen empfehle: einen Arduino mit V3 geflasht, den ATMEGA328 abgelötet und auf das Kaufmodul verpflanzt. Jetzt funktioniert dort die V3 in der 1x programmierten Grundversion, die sich ja nicht von V2 unterscheidet.
Zum Umprogrammieren ist es erforderlich, den auf dem gleichen ATMEGA-Pin arbeitenden SBUS nach dem fest verlöteten Inverter temporär abzutrennen. Das mache ich aber nicht mehr heute :sleep:

Gruß
 

Bussard

Erfahrener Benutzer
#40
Abschließendes von mir zum Kaufmodul von BG:
Die SBUS-Verbindung zum ATMEGA muß, wie vom Programmierer des Configurationstools (Kreidler) geschrieben, unterbrochen werden. Dazu habe ich den entsprechenden Leiterzug nach dem Inverter unterbrochen und einen Steck-Jumper verbaut. Dazu den PC-EN Eingang auf Masse brücken wie bisher, dann kann man mit einem USB-Serial-Wandler und dem Programmiertool alles wie gewünscht einstellen.
Eine wirklich gute Sache, Mischbetrieb von Servos und Schaltkanälen und/ oder PPM ohne weiteren Aufwand.

Fertig umgebaut mit ATMEGA328P-AU und SBUS-UnterbrechungsJumper.jpg

SBUS-PWM-Dekoder__BG_ (2a).jpg

SBUS-PWM-Dekoder__BG_ (10a).jpg

SBUS-PWM-Dekoder__BG_ (8a).jpg

Danke an @Merak für die Ausleihe des Moduls (geht Morgen zurück).

Gruß Bussard
 
FPV1

Banggood

Oben Unten