OpenTX - Multiplex MLINK Konverter

gruni

User
Hier mal ein wenig besser ins Bild gesetzt.
Offtopic off.
Das "naja" wäre dein Testlot.
Soll ich Dir mal nen Meter schicken?

Grüsse Gruni
 

Anhänge

  • Best.jpeg
    Best.jpeg
    15,4 KB · Aufrufe: 76
  • Good.jpeg
    Good.jpeg
    20,5 KB · Aufrufe: 78
  • Naja.jpeg
    Naja.jpeg
    20,2 KB · Aufrufe: 69

kalle123

User
##OFF TOPIC##

Gruni, die Rolle 60/40 müsste nächste Woche kommen. Ich fang doch jetzt im Rentenalter nicht damit an, den Bleigehalt in meinem Blutkreislauf abzusenken .... :D

Glaube, ich hab deinen Fehlkauf bestellt .... Schaun mer mal, dann sehn mer scho.

Naja, dich (in den Zwängen der Arbeitswelt stehend) zwingt man wegen REACH.
Ich hatte im Office in Ratingen ne alte Weller mit ner Rolle Draht im Schrank. Mein Vorgänger hatte die nur, um seine Kippen damit an zumachen. Dann kam mal so ein Sicherheitsfutzi aus Mannheim. In der Küche ein DIN A4 Warnblatt an die Spülmaschine (man könnte ja mal an den Spültabs lutschen) und ich kriegte so ein Blatt an den Schrank mit der alten usseligen Weller .... Der hat wirklich gedacht, ich kau aus Langweile am Draht. Waren keine Biss Spuren dran .... :cool:

cu KH

##OFF TOPIC##
 

kalle123

User
Jetzt wieder zum Thema.

Hoffe, Ralf gibt mir mal seine Antwort auf meine Zweifel zur Verdrahtung (siehe #1139).

Denn drin ist der Code ...

Hab den 841 mal mit avrdude ausgelesen und das sieht gut aus. NUR

ich seh das Original von Ralf so

:100000001DC037C09EC135C034C033C042C231C0EC
:1000100030C02FC12EC00EC12CC02BC02AC029C099
:1000200028C0AEC126C025C024C023C022C021C024

(also 16 byte)

und mein Ausgelesenes sieht so aus

:200000001DC037C09EC135C034C033C042C231C030C02FC12EC00EC12CC02BC02AC029C095
:2000200028C0AEC126C025C024C023C022C021C020C01FC01EC01DC01CC01BC011241FBED1

(32 byte)

Schei....., oder wo kann man das einstellen??

cu KH
 

elral

User
Hallo Kalle,
Ralf, so, dein hex ist drauf. (Flash.txt)
Nur, wenn ich mir dein Bild hier anschaue, gerate ich ins Schleudern ...
Der Weisse -> FrSky PA1/D1
Richtig
Der Gelbe <- MPX und ich seh im Bild oben PB1/D9
https://github.com/watterott/Wattuino/blob/master/hardware/Wattuino-Nanite841_v11.pdf
Du schreibst oben aber PA0 :confused:
Das war ja genau der Sinn, den M-Link Anschluß weg vom PB1 zu nehmen da beim Nanite ein PullUp auf dem Board ist. Deswegen die Software Änderung um einen anderen Eingang nutzen zu können, neu also den PA0. Das Bild muss ich dann akltualisieren.
Dann, liegen an dem von dir verwendeten MPX Modul 5V an? Beim HFMG3 hier sind das 3.3V. Oder fährst du da 3.3V nochmal über den LDO vom Nanite?
Der Nanite hat gar kein Spannungsregler, also direkt mit der Spannung vom M-Link Anschluss. Und ich dachte die wäre bei allen Ausführungen 3,3V. Das messe ich heute dann mal nach.

Viele Grüße

Ralf
 

kalle123

User
Der Nanite hat gar kein Spannungsregler, also direkt mit der Spannung vom M-Link Anschluss. Und ich dachte die wäre bei allen Ausführungen 3,3V. Das messe ich heute dann mal nach.

Hi Ralf.

Stimmt, seh anscheinend schon automatisch nen Spannungsregler, wenn ich auf einen Schaltplan schau. :)

Nur die Zener, um den Signalpegel zu begrenzen.

Dann will ich mal probieren und was aufbauen.

Nebenbei, das Aufspielen von hex files mit https://github.com/SpenceKonde/ATTinyCore geht einwandfrei. NUR, wenn ich von der im YT Video verwendeten Version 1.2.3 im boardmanager (Arduino IDE) auf irgendeine höhere Version (aktuell ist 1.4.1) wechsele, geht nix mehr. Nada!

Der Betreuer von ATTinyCore ist im Arduino Forum aktiv https://forum.arduino.cc/index.php?topic=469304.0
Werde mich da mal melden, nur hab ich momentan meine Zugangsdaten fürs Forum nicht mehr.

Gruß KH
 

kalle123

User
So, hatte gestern abend mal kurz den 841 am Sender dran. Es kam was rüber, aber näher hab ich da nicht rein geschaut.

Nun kommt es. Hatte jetzt schon mal meine beiden Konverter in der Hand (1x mit Ver. 2017-04-16 und 1x mit Ver. 2017-02-28 ). Also warum nicht mal die aktuelle Firmware aufspielen?

Damit fing es dann an und es wurde ein langer Abend!

Also zuerst mal mit dem USBasp und der aktuellen Arduino IDE den Bootloader auf die Pro minis und mal 'Blink' aufgespielt. Soweit so gut. Dann die Ver. 1_01.hex aufgespielt mit der Arduino Befehlszeile. Soweit so gut und angeschlossen.

Angeschlossen an den Sender und ..... NIX!

Hab ich mir irgendwas geschossen??? Irgendwas defekt?

HFMG3 gewechselt, Sender geöffnet und serielle Buchse im Batterieschacht überprüft, Oszi raus gekramt.

Die HFMG3 lieferten Daten nur die Pro minis lieferten nix.

Die Zeit verstrich. Aber ich hatte da noch einen Konverter auf Teensy Basis im Regal liegen. Angeschlossen und voila ... Telemetrie. Also müssen es die Pro minis sein!

Die hex Firmware direkt mit dem USBuart auf die Pro Minis gespielt und ... da ist sie wieder, die Telemetrie.

Dieser Hinweis auch noch mal in Richtung Andreas, der wohl ein gleiches Problem hat .....

Gruß KH (muss jetzt erst aufräumen, hier sieht es schlimm aus ;))
 
Zuletzt bearbeitet:

kalle123

User
Hallo Andreas.

Gestern Abend hab ich hier ziemlich 'am Rad gedreht'.

Was mich da 'gerettet' hat.

IMG_20201218_121139.jpg


Mit dem 'alten' Teensy Adapter (re) funktionierte es. Sensoren, MPX RX und Taranis OK! WICHTIG!!!! :)

Also musste was mit den Pro minis sein. Und bei Claus hier hat es ja auch direkt funktioniert. Der hatte DIREKT mit nem Pololu Progger das hex file geflashed. Das hab ich dann auch gemacht mit nem USBasp.

Nur, das war meine 'alte' Telemetrie mit der Sensorik.

jP9WrdZl.png


und das seh ich momentan

WyvtEGxl.png


Warum jetzt die IDs anders sind und was was ist??

Noch was. Hab bei Reinhardts Notizen das gefunden

Diese (LED) kann in der Taranis X9E z.B. in einem freien Schalterloch platziert und über einen passenden
Vorwiderstand mit dem Port B0 und Masse verbunden werden. Die externe Status-LED arbeitet
dann synchron mit der LED auf dem Arduino Board.


Die LED kommt da (wird wohl D8 sein?) noch mit dran, damit ich zukünftig was seh.

Jetzt zu dir Andreas. Das Problem ist, wir beide wissen nicht, ob und was bei dir (hardwareseitig) ok oder ev. nicht ok ist. Insbesondere die HFMG3. (Ein Oszi am Telemetrieausgang des Moduls würde da schnell Klarheit bringen)

Also warte bitte noch mal ab, was Reinhardt sagt.

Gruß KH
 
Hi Kalle,

da hast Du sehr schön den Unterschied zwischen dem Konverter mit und ohne IDs dokumentiert.
Neben VFAS, Curr und VSpd wird noch für zwei Temperaturwerte die vordefinierte ID verwendet.
Steht alles in der Anleitung. :)

Das Steuersignal für die externe Status-LED wird auf B0, das Signal für die LED auf dem Board an B5 ausgegeben.
 

elral

User
Hallo Kalle,
irgendwie habe ich jetzt völlig den Überblick verloren bei Dir...
Mit welchen Versionen funktioniert es bzw. nicht (1.0 / 1.01)?
Oder sind die Unterschiede bei den Hex Files mal mit bzw. ohne FrSky ID's?
Bei den proMini's immer die 16MHz Variante? Oder auch mal 8MHz?
Wäre auch mal von Andres interessant.

Bei den Bootloadern und den ganzen USBuart Kram und vor allen Dingen der Arduino IDE kann ich leider nicht weiter helfen. Das alles ist ein Graus für mich. Ich habe mich vor vielen Jahren dazu entschieden, den Bootloader von HagenRe für alle ATmegas zu nutzen. Und den habe ich immer mit dem Atmel Studio und einem AVRDragon (mittlerweile ein Diamex USB-ISP Programmer) aufgespielt. Mit dem Atmel Studio kann man auch schön die Fuses setzen.

Grüße

Ralf
 

kalle123

User
@Reinhardt Werbik

Hi Reinhardt.

'schön dokumentiert' der war gut. Mein Blutdruck ist wieder auf normal und kommende Nacht werde ich wohl besser schlafen :)

Sagen wir mal so, mit gefällt die ID Version besser.

Aber sag bitte mal was dazu, warum ich mit der von mir mal propagierten Aufspielvariante (Arduino IDE, Pro mini mit Bootloader, FTDI o.ä., IDE Kommandozeile) so auf den Ars... gefallen bin. Und ich mach mir da auch Gedanken, weil ich Andreas dieses Vorgehen mal empfohlen hatte.

Beißt sich da was mit dem standard Bootloader?? (Du nimmst ja wohl optiboot).

Zu der B0 Sache noch. Nicht jedem (unbedarften Frickler wie mir) mag sofort klar sein, welchen Pin du da jetzt meinst. Musste da erst mal nachschauen, aber sicher sinnvoll!

LEDs sind dran, Version steht drauf, werde die nachher mal in schwarzem Schrumpfschlauch ein schrumpfen. Da seh ich von den LEDs auf den boards nix ;)

BTaxU7Ll.png


@elral

Hi Ralf.

Ich nehm die aktuelle 1.01 mit IDs. Sieht auf den ersten Blick hier besser aus. Ich nehm grundsätzlich die 5v/16MHz. Andreas wollte unbedingt in das MPX HFMG3 Modul einbauen und dort die 3.3V auf der MPX Seite abgreifen. Aber irgendwas ist bei Andreas mit dem Modul schief gelaufen. Reinhardt hat ja vor kurzem die 3v/8MHz Firmware hier eingestellt.

Aber auch Dank meiner 'eifrigen' Posterei verliert man hier den Überblick. Hänge also unten nochmal die beiden 1.01er Versionen an.

Ich hab einfach nur mit nem USBuart und Burn-O-Mat geflashed (Bin auf Linux unterwegs und Avrdude will WIN und mono kommt mir nicht aufs System). 328P gewählt und druf ...

Zu der Bootloader Sache, hoffe Reinhardt sag da noch was zu.

So, bleibt gesund und lasst euch nicht jeck machen - KH :)
 

Anhänge

  • Konverter_FrSky_IDs_v1_01.hex.txt
    9,1 KB · Aufrufe: 81
  • Konverter_v1_01.hex.txt
    7,7 KB · Aufrufe: 77
Hallo zusammen,

bei meinen ersten Versuchen mit dem standardmäßigen Bootloader des Arduino Pro Mini hatte ich auch Probleme, wie von Kalle bereits angedeutet.
Das Konverter-Programm wurde zwar korrekt geladen, aber beim Übergang vom Bootloader auf die Applikation hat sich irgendwas aufgehängt.
Hat man nach dem Laden die BOOT RESET Fuse gelöscht, lief der Konverter einwandfrei.
Mit dem Arduino Uno gab es keine Probleme, und ich habe damals rausgefunden, dass das Uno bereits den Optiboot standardmäßig draufhatte.
Ich habe dann auch auf das Pro Mini den Optiboot draufgespielt, und von da an gab es keine Probleme mehr.
Also meine Empfehlung ist ganz klar, den Optiboot zu verwenden.
Dass dieser sehr kompakt ist und nur wenig Speicherplatz braucht, ist auch kein Nachteil.
 

kalle123

User
@AndreasN

Hi Andreas.

Ich fasse mal kurz zusammen.
Kann sein, dass 2017 oder so die Methode 'einfach' mal ohne Probleme ging. Inzwischen hat es andere Arduino IDE, andere hex Codes ...
Nur ich bin damit gestern Abend in ne Sackgasse mit gekommen. Meine Befürchtung war, ich hab mir irgendwas geschrottet. Shit happens ;) Mit 5V kannst du eigentlich nicht viel zerstören, nur die JST Buchse des seriellen Port im Batteriefach des Sensors hat mir beim dauernden An- und Abstecken Sorgen gemacht.

Wenn du weiter machen möchtest, es gibt andere Wege, so einen hex Code auf nen Arduino zu packen. Absolut kein Hexenwerk und es braucht nicht viel an Hardware dazu.

Ich setze mich auch gerne mal dran, und schreib eine kurze Anleitung dazu.

NUR, du brauchst ein funktionierendes MPX Modul ........ ?????

cu KH

PS. Hab mal nachgeschaut in der aktuellen Arduino IDE

Der Pro mini ist da in boards.txt mit dem bootloader gelistet

## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P
## --------------------------------------------------
pro.menu.cpu.16MHzatmega328=ATmega328P (5V, 16 MHz)
.
.
.
.
pro.menu.cpu.16MHzatmega328.bootloader.file=atmega/
ATmegaBOOT_168_atmega328.hex
 
Zuletzt bearbeitet:

elral

User
Hallo zusammen,

für mich sind das alles Argumente für einen weiteren Anwender des Konverters den Nanite841 zu nutzen. Dieser hat ja bereits den USB Anschluss mit an Board, es muss unter Windows nur ein Treiber installiert werden und das Flash Programm auf der Kommando Ebene ausgeführt werden.
Der ist zwar etwas teurer als ein Pro Mini, aber damit ist dann kein zusätzlicher USB-seriell Wandler nötig, kein ISP Programer um ggf. einen neuen Bootloader aufzuspielen, direkt am HF-Modul mit 3.3V zu betreiben oder auch mit 5V an einer seriellen Schnittstelle, ziemlich klein ... ;)

Kalle, von daher wäre es gut wenn Du bei Gelegenheit eine Rückmeldung geben könntest, wenn es bei Dir auch funktioniert. Ach so, es ist im übrigen die Version ohne ID's ;)

Hilft Andreas jetzt auch nicht weiter, da er ja schon einen proMini hat.
Wenn ich das richtig nach verfolgt habe könnte Andreas auch die Probleme mit dem Bootloader haben.

Andreas,
war der schon aufgespielt oder hast Du den aufgespielt. Das habe ich jetzt nicht nachvollziehen können.

Reinhardt,
beim M-Link SW-UART lädst Du den Timer bei der 16MHz Variante zur Erkennung des Startbits auf TCNT=250, damit kommt man doch an die Flanke des ersten Bits. Ich hätte eher das doppelte der 8MHz Varainte erwartet (TCNT=30 @ 8MHz).

Viele Grüße

Ralf
 
Hi Ralf,

auf dem Nanite Board ist natürlich auch ein Bootloader drauf, denn wie soll er sonst irgendwas laden.
Es ist der Micronucleus Bootloader, der ebenfalls völlig problemlos funktioniert.

Was das Vorladewert für den Timer des SW UART angeht, den kann man nicht theoretisch am grünen Tisch berechnen.
Hier gehen unterschiedliche Laufzeiten ein, daher muss man das mit einem entsprechenden Oszi oder Logik-Analyser experimentell ermitteln.
Ich habe dazu immer einen Peak an einem freien Portpin erzeugt, der genau den Moment des Einlesens beim SW UART markiert.
Dann verändert man den Vorladewert solange, bis der Peak beim ersten Datenbit in der Mitte liegt.
Das folgende Codeschnipsel zeigt das (hier bereits auskommentierte) Setzen und Rücksetzen dieses Testsignals.
TEST_HIGH und TEST_LOW sind Makros, die den Test-Pin auf High bzw. Low setzen.

TEST.PNG
 
Hallo zusammen, vielen Dank für eure Hilfe, leider habe ich nich keine Zeit gefunden, die Sache mir anzuschauen. Ich schätze es ist bei mir auch der Bootloader. Ich habe es laut Video-Anleitung mit Arduino IDE geflasht...

Bei meinem Modul funktioniert alles bis auf die Telemetrie. Hab es mit 5- Servos und 5 Kanalempänger getestet. Es geht. Auch mein Multiplex Telemetrie-Display am Com-Port des Moduls zeigt mir die Telemetrie Daten an. Nur an meiner Taranis geht es (noch) nicht.
 

kalle123

User
Auch mein Multiplex Telemetrie-Display am Com-Port des Moduls zeigt mir die Telemetrie Daten an. Nur an meiner Taranis geht es (noch) nicht.

DAS war bei mir ja auch so.

Ich seh da mehrere Möglichkeiten.

#1 Reinhardt sagt ja mit dem optiboot boatloader besteht das Problem nicht.
In C:\Program Files (x86)\Arduino\hardware\arduino\avr findet sich die Datei boards.txt und da sind wohl die bootloader für die div. Arduino boards hinterlegt. Sieh #1155.
Könnte mir vorstellen, den dort hinterlegten ATmegaBOOT_168_atmega328.hex durch den beim UNO zu findenden optiboot/optiboot_atmega328.hex zu ersetzen. Aber dazu muss der neue bootloader auf den Pro mini.
Und das geht m.W. nur über einen ISP (in system) Programmer.

#2 So, du vergiss den ganzen Kram mit dem bootloader und flashed direkt den hex Code (Konverter_FrSky_IDs_v1_01.hex oder Konverter_v1_01.hex) auf den Pro mini.

Aber es läuft, wie ich das momentan sehe, auf einen Progger (ISP Programmer) raus.

Das hier ist mein ganzes Equipment dazu. Hat nicht viel gekostet (aus China) ;)

CwVi14jl.png


Unten Mitte meine beiden USBasp's. Rechts meine Schmierzettel. Oben Mitte Verlängerungskabel 10 pol und Adapter 10 -> 6 pol. (Damit kannst du direkt auf den ISP Anschluss z.B. vom Arduino UNO gehen. Links DIY Adapter und billige Mikroclips.

Anschluss USBasp an Pro mini wie auf Schmierzettel oben rechts. (5V, GND dürften klar sein, RST ist reset und SCK ist clock. Frag mich nicht, was sich hinter MISO und MOSI verbirgt ....)

Programme, die ich dann zum Aufspielen nutze Burn-O-Mat (simpel) oder Avrdude (bischen mehr technisch)

Now it is up to you :)

Gruß KH
 

elral

User
Hallo zusammen,

Reinhardt,
ich wollte auch nicht sagen das der Nanite841 keinen Bootloader hat. Sondern vielmehr einen Bootloader, der direkt mit der Konverter Software läuft und auch keinen USB-seriell Wandler zum programmieren braucht. Für jemanden der sich nochmal einen bauen möchte und wenig bis gar keine Erfahrung mit ATmegas hat sicherlich ideal.
DIe Impulsausgaben habe ich gesehen. Für die 8MHz Variante (proMini) habe ich das nochmal über verschiedene Werte für den Timer probiert und jedes Mal neu geflasht. Zum einen habe ich die untere Grenze ermittelt bei der der Empfang noch funktioniert, zum anderen die obere Grenze. Für den endgültigen Wert habe ich mich dann genau in die Mitte gelegt. Funktioniert beim pro Mini und beim Nanite mit dem gleichen Wert (der Nanite hat einen anderen Mittelwert, was aber bei dem internen Oszillator nicht verwunderlich und auch zu erwarten ist, deswegen nehme ich den vom pro Mini). Dieser Wert weicht auch etwas von Deinem ab, vielleicht hole ich dann doch mal meinen LA raus.
Für die 16MHz Variante hätte ich aber einen Wert erwartet, der ziemlich genau der doppelte ist. Und nicht einen der sogar größer ist als den der Bitlänge. Die Firmware in beiden Varianten unterscheidet sich gerade mal um 2Byte, ist also identisch. Der Compiler wird also keinen "wilden" Optimierungen bei der ein oder anderen Variante gemacht haben. Oder ich habe da einen Denkfehler.... Naja, ist aber auch wahrscheinlich eher akademisch, es nutzen ja genug die 16MHz Variante :)

Andreas,
wenn Du magst kannst Du Dich mit mir per PN in Verbindung setzen. Ich hätte einen Nanite oder einen proMini übrig, fertig progammiert und getestet.

Viele Grüße

Ralf
 
Ansicht hell / dunkel umschalten
Oben Unten