Arduino Bootloader - welcher ist für uns optimal?

kalle123

User
Hi Holger.

ES IST VOLLBRACHT! applaus.gif

AVRootloader geflashed.

Deinen Adapter (CP2102 + 2.7K) angeschlossen, AVRrootloader.exe gestartet und .....

1.JPG

Hab ein oXs hex für ein BPM180 Vario geflashed und es funktioniert.

Hier die Schaltung mit Uno, BMP180 und FrSky X6R.

IMG_20190327_095144.jpg

und das kommt da am Sender an.

IMG_20190327_095137.jpg

Das war ne schwere Geburt ...

Grüße KH
 

onki

User
Hi Kalle,

ich hoffe jeute Abend auch ein OXS auf den neuen ProMini mit BL Bootloader flaschen zu können.
Ich bräuchte da einen "Spielsensor" für meine X9D.

Ich werde berichten.

@Holger: Ich bin leider kein ESP Spezi. Ich könnte mir aber schon vorstellen, das man dort eine Art Timeout einstellen kann. OTA Firmwareupdate wäre natürlich ein Traum. Obwohl sich bei OXS eigentlich nix mehr tut. Aber bei den anderen Jeti-basierten Sensoren geht sicher noch was (EX-Bus, Rücksetzung und Variosteuerung über EX-Bus Signal, etc.)

Gruß
Onki
 

kalle123

User
Hi Kalle,

ich hoffe jeute Abend auch ein OXS auf den neuen ProMini mit BL Bootloader flaschen zu können.
Ich bräuchte da einen "Spielsensor" für meine X9D.

Ich werde berichten.

Jetzt kommst du aus der Deckung, Onki ;)

'flaschen' ist gut, wie viele denn?

Grüße KH

PS. Ich hab mir screenshots von den entsprechenden Schritten gemacht und werde mir das in ne Doku packen. Aber ob das für mich ein Weg sein wird, zukünftig oXs zu flashen? Alleine der Abgleich von Spannungs- und/oder Stromsensoren. Musste da immer mehrfach Schleifen durchlaufen. Gain, offset justieren, aufspielen, schauen, dann wieder von vorne. Halt bis es passte.
 
ES IST VOLLBRACHT!

Woran lags denn jetzt genau? Hilft vielleicht dem ein oder anderen mit dem gleichen Problem.

...
Aber ob das für mich ein Weg sein wird, zukünftig oXs zu flashen? Alleine der Abgleich von Spannungs- und/oder Stromsensoren. Musste da immer mehrfach Schleifen durchlaufen. Gain, offset justieren, aufspielen, schauen, dann wieder von vorne. Halt bis es passte.

Das ist in der Tat etwas nervig und auch teilweise etwas "fummelig" die Config-Datei anzupassen. Deshalb bin ich gerade am programmieren für mein Curralt projet, damit ich die ganzen Einstellungen über die Fernbedienung durchführen kann.
Ich persönlich fliege ja Graupner HOTT und da gibt es zwei Modi:
  • Den Binär-Modus: Hier werden die Sensordaten (Höhe, Spannung, Einzelzellenspannung, Vario, Geschwindigkeit, etc.) in einer Grafik dargestellt. Je nach angeschlossenem Sensor (VARIO, EAM, GAM, ESC, GPS) ist die Grafikdarstellung etwas anders. Einstellen kann man hier nichts, ist reine Anzeige der Sensordaten
  • Den Text-Modus: Hier wird nur Text im Display dargestellt (8 Zeilen mit je 21 Zeichen). Man kann aber z.B. Einstellungen (z.B. Gain und Offset, Alarmschwellen, etc.) verändern.

Gibt es eine solche Möglichkeit bei FrSky auch?
Bei Multiplex geht es nicht. Da muss zu jeder Konfigurationsänderung der Sensor an den PC angeschlossen werden.

Grüße

Niko
 

onki

User
Hallo Niko,

passt nicht ganz in deine Frage aber schau dir mal z.B. das Projekt hier an.
https://github.com/nightflyer88/Jeti_VarioGPS-Sensor

Dort kann der Stromoffset beispielsweise über die Jetibox (die ich persönlich hasse) eingestellt werden und auch sonstige Konfigurationen (Sensortyp, etc.) über die JB vorgenommen werden. Man muss quasi nur einmal kompilieren und der Rest geht über die JetiBox.

Ist beim XSensor auch so.
https://github.com/ThLehmann/XSensor

Leider sind die nicht für den BLBootloader geeignet, da sie über Hardware UART kommunizieren. Ein zusätzliches Kabel möchte ich hier tunlichst vermeiden.

Problem bei Jeti ist und bleibt die dämliche Jetibox (bzw. die Emulation im Jetisender) mit ihrem unterirdischen Bedienkonzept aus den 80ern.
Alle meine Kumpels im Verein mit Jeti (mich eingeschlossen) hassen das Ding inständig.
Der moderne Weg über eine gerätespezifische BIN-Datei, die die Bedienoberfläche enthält und den Gerätemanager ist leider von Jeti mit hohen Hürden verstellt, die es dem Privatmann unmöglich macht, dort entsprechend tätig zu werden. Da sollte dringend was getan werden. Von mir aus auch eine Konfiguration via Lua-Skript.
Aber die Konkurrenz ist ja in den Startlöchern sodass hier womöglich Bewegung rein kommt.
 
Moin
Wie wäre es wenn man mal gemeinschaftlich eine einfach anpassbare GUI bastelst, die über das AVRootloader Protokoll direkt ins EEprom schreiben kann. BLHelisuite ist z.B. nichts anderes als ein erweiterter AVRootloader-EEprom-Editor. Dann wäre die ganze Einstell und Kalibierier-sache völlig unabhängig von der Fernsteuerung, sowie auch für völlig andere Projekte nutzbar (Brunnenpumepensteuerung ;))

Das Hott Textmenü nutze ich selber auch nur ungern, da es sooooo trrrääääääggggeeee ist.

@ Onki, das geht schon über dasselbe Kabel, nur muss dann eine andere Baudrate her, mache ich bei meinen ganzen Hott Sensoren auch so.
 

kalle123

User
Nico, ich denk mal, da waren einige Punkte, die mich da scheitern ließen:

- hier laufen mehrere Sachen parallel

- dann kamen so Einwürfe wie "... der Jet Adapter geht immer ..."

- dann vielleicht AVRootloader -> sign -> MPP irgendwo

- dann vielleicht falsches/unpassendes hex file

usw.

Gruß KH
 
Das Hott Textmenü nutze ich selber auch nur ungern, da es sooooo trrrääääääggggeeee ist.

Träge, ja. Aber die Einstellungen macht man in der Regel ein mal. Dann hält sich der Frust in Grenzen, zumal man alles eingebaut lassen kann und nicht immer wieder ausbauen und an den Programmieradapter hängen muss

Wie wäre es wenn man mal gemeinschaftlich eine einfach anpassbare GUI bastelst, die über das AVRootloader Protokoll direkt ins EEprom schreiben kann. BLHelisuite ist z.B. nichts anderes als ein erweiterter AVRootloader-EEprom-Editor. Dann wäre die ganze Einstell und Kalibierier-sache völlig unabhängig von der Fernsteuerung, sowie auch für völlig andere Projekte nutzbar (Brunnenpumepensteuerung ;))

Hmmmm, das klingt interessant. AVRootloader hat ja eine DLL, die man einbinden kann. "Problem" aber auch hier: Ich muss den Sensor vom Empfänger trennen und an den Programmieradapter hängen. Selbst mit anderer Baud-Rate als das Temeletrieprotokoll für den Bootloader und Y-Kabel müsste ich den Empfänger ja irgendwie ruhig stellen damit der mir nicht in meine Übertragung zum Bootloader rein spuckt.
Also nur eine geringe Komfortverbesserung gegenüber Config ändern, neu compilieren und flashen (vor allem wenn man z.B. den oXs Configurator wiederbelebt).
Aber definitiv was, über das man mal nachdenken könnte.

Grüße

Niko
 

rkopka

User
Ich hab zwar noch einen MySmart USB Light aber der mag mit der Arduino IDE und anderen irgendwie nicht so recht.
Mit Arduino geht meiner einwandfrei.

Einfach in programmers.txt ergänzen:

mySmartUSB.name=mySmartUSB light
mySmartUSB.communication=serial
mySmartUSB.protocol=stk500v2
mySmartUSB.program.protocol=stk500v2
mySmartUSB.program.tool=avrdude
mySmartUSB.program.extra_params=-P{serial.port}

RK
 
Irgendwie komme ich hier als Einsteiger grad überhaupt nicht mit!
Lese viel verstehe recht wenig, finde die Möglichkeiten aber sehr interessant.
Ich arbeite mich gerade in die Arduino/Jeti Sensor Sache ein.
Ich habe auch schon diverse Arduinos programmiert.
Habe mir dafür diese Version ausgesucht, da verstehe ich langsam auch was ich wo ändern kann/muß damit sich was ändert.
was ich bisher aus diesem Thema rausgelesen habe ist, das es eine Möglichkeit gibt den Arduino über das Servokabel zu flashen.
Dazu muß auf dem Pro Mini ein anderer Bootloader drauf, soweit verstehe ich das.
Und jetzt stehe ich genau an der Stelle, und laufe im Kreis und finde den Ausgang nicht mehr.
Welchen Bootloader brauche ich dafür, und wie bekomme ich den aud den Pro Mini?
 
Hi Micha,

du brauchst dazu den AVRootloader. Diesen kannst du dir nach deinen Wünschen selbst konfigurieren und um AVR Studio 4 kompilieren. Oder du schaust mal hier im Thread welch .hex files zur Verfügung gestellt worden (vielleicht passt ja einer).
Anschließend musst du den Bootloader (.hex file) per. ISP auf den Arduino flashen und die Fuses entsprechend setzen. Dann sollte es laufen.
Das eigentliche Programm kannst du dann mit dem AVRootloader GUI via. Servokabel flashen.

Grüße

Niko
 

kalle123

User
Hab das hier (war ein anderer post, wo das los ging) mal geschrieben.

http://www.rc-network.de/forum/show...or-mit-Vario?p=4759748&viewfull=1#post4759748


Holger hat die bootloader in seinem post vom 27.03.2019, 08:05 mit rein gepackt.

Du brauchst da Hardware und Software, um den entsprechenden bootloader auf den Pro mini zu packen.

Hardware, ich nehme da einen USBasp, aber es gibt da viele Wege, z.B. geht es mit einem Arduino Uno oder Nano auch.

Software, ich nehme AVRdude oder AVRdudess, aber ARR8 burn-o-mat geht auch und viele mehr.

Damit hast du erst mal den richtigen bootloader auf dem Mini.

Jetzt geht es weiter.

Du brauchst jetzt von deiner Anwendung ein hex File, einen 1 wire Adapter und mit dem AVRootloader kannst du deine Anwendung über '1-wire' auf den Pro mini flashen.

Das mal in Kurzform.

cu KH
 
Dann werde ich mich mal dran machen, den Bootloader auf den Pro Mini zu bekommen. Das geht ja mit dem Uno, so wie ich das gelesen habe. Danach geht es weiter, so hoffe ich.
 
So nach etlichen Stunden des probieren, werde ich das mal auf einen späteren Zeitpunkt verschieben.
Irgendwie bekomme ich den Bootloader schon gar nicht auf en Pro Mini.
Habe es mit dem Uno versucht, aber irgendwas klappt einfach nicht, bin halt Anfänger.
Mal sehen wann der Funke überspringt.
 
Hallo

Geht ihr eigentlich bei den 5V Arduinos direkt vom Sensorpinn des Arduinos auf den Empfänger?
Gibt es da keine Probleme mit der zu hohen Spannung am Empfänger Eingang?

Ich habe da vor einiger Zeit mal eine Schaltung gefunden
wo am D4 des Arduinos ein 1,8K Wiederstand mit einer 3,3V Z-Diode in reihe zum Ground ging
und zwischen Wiederstand und Z-Diode der Abgang zum Empfänger wahr!

Die Schaltung habe ich bis jetzt bei den 5V Arduinos (bei HOTT und JETI) immer verwendet!
Dann geht der 1-Wire Bootloader aber leider nicht!

Gruß Hollender
 

Geni

User
Hallo,
ich habe einen weiteren Versuch mit einem Neue Pro Mini gemacht nach dem Vorschlag von Holger.
Es funktioniert nicht, wie muss ich die Meldung der Zeile AVRootloader.inc(113) verstehen?
Wire1.jpg

Gruss Geni
 

mha1

User
Hallo

Geht ihr eigentlich bei den 5V Arduinos direkt vom Sensorpinn des Arduinos auf den Empfänger?
Gibt es da keine Probleme mit der zu hohen Spannung am Empfänger Eingang?

Ich habe da vor einiger Zeit mal eine Schaltung gefunden
wo am D4 des Arduinos ein 1,8K Wiederstand mit einer 3,3V Z-Diode in reihe zum Ground ging
und zwischen Wiederstand und Z-Diode der Abgang zum Empfänger wahr!

Die Schaltung habe ich bis jetzt bei den 5V Arduinos (bei HOTT und JETI) immer verwendet!
Dann geht der 1-Wire Bootloader aber leider nicht!

Gruß Hollender

Ob 5V Pegel ohne Gefahr für die Empfänger funktionieren hängt davon ab, welcher Empfänger das ist. Genauer gesagt, welcher Microcontroller im Empfänger verwendet wird. Einige haben 5V tolerante digitale Eingänge, andere nicht. Die GR-16 und GR-24 z.B. sind safe, die haben PIC24 Microcontroller, die 5V tolerant sind. Die Gyroempfänger haben andere Prozessoren, deshalb auch die unterschiedlichen Flashprogramme. Der GR-24pro hat z.B. einen STM32, der wahrscheinlich nicht 5V tolerant ist. Um genau sagen zu können, ob das direkte Anschließen mit 5V Pegel mit einem bestimmten Empfänger geht, muss man den Empfänger aufmachen, schauen, welcher Prozessortyp genau verbaut ist und dann Datenblatt studieren. Wenn es irgendwie geht, sind die 3.3V Arduinos immer die bessere Wahl.
 
Fuse

Fuse

Hi,

AVRs benutzen einigen Config Bytes, die Fuse, um Eigenschaften des Prozessors festzulegen. Durch diesen Fuse wird unter anderem festgelegt ob nach Rest einem Reset zum Anfang des Programmspeichers oder zum Bootlader am Ende des Programmspeichers gesprungen wird. Um einen Bootlader zu aktivieren reicht es nicht das Programm aufzuspielen, sondern es müssen die Fuse richtig gesetzt werden. Je nach Bootladeroptionen ist der Bootlader unterschiedlich lang und der Fuse-Wert passend einzustellen.
Zum Übersetzen des AVRootlades sind zwei Durchläufe notwendig. Schaut bitte genau in den Quellcode. Da wird für den 1. Durchlauf 0x0000 eingetragen und für den 2. Durchlauf der wert von "used cseg" aus der compiler-Ausgabe.

.set BootCodeSize = 484 ; set to 0, compile and set to value in [.cseg] Used, compile again

es gibt dort noch eine ganze Reihe Einstellungen die richtig zu konfigurieren sind, damit der Bootlader funktioniert.

Viel Erfolg
 
Ansicht hell / dunkel umschalten
Oben Unten