Arduino Bootloader - welcher ist für uns optimal?

onki

User
Hallo,

Ich hab es im anderen Fred ja schon angeschnitten. Welcher Bootloader ist der ideale für unsere Zwecke?

Optiboot ist sehr resourcenfreundlich. Leider schaffe ich es nicht den auf meine ProMini Klone mittels MySmart USB Light zu flashen.
Versuche es die Tage mit einem ISP geflashten Nano (ist auch praktisch wegen des integrierten USB-Wandlers).

Ich meine irgendwo gelesen zu haben, dass Optiboot auch das Flashen über einen wie bei den Telemetrie gearteten Anschluss erlaubt (RX mit TX über 4k7 verbunden, Signal kommt dann auf TX ). Stimmt das?

Das wäre für mich ein Grund der Sache noch etwas auf den Grund zu gehen. da mich die 6 herausstehenden Pins am ProMini immer stören beim einschrumpfen.
Hab mir auch schon überlegt eine Art Programmierzange zu bauen, jedoch sollten die Programmierpins eingeschrumpft sein was dies Vorhaben zunichte macht.

Bis jetzt nutze ich eine gewinkelte Steckerleiste dir ich umgedreht einlöte um möglichst kurze Pins zu erhalten. Danach ziehe ich die schwarze Basis heraus und schrumpfe die 6 Pins zusammen ein. Somit kann ich den Schrumpfschlauch zur Programmierung abziehen.

Ein Flashen über den TM-Stecker wäre aber eleganter, platzsparender und einfacher.

Oder wie handhabt ihr das so, wenn man möglichst kleine Lösungen bauen möchte?

Gruß
Onki
 
Moin Onki

Ganz klar der AVRootloader vom Hagen. Das ist ein One-Wire Bootloader mit dem flashen über das Servokabel möglich ist. Funzt mit nahezu allen "älteren" Atmegas + Attinys.
Ich benutzte den für alles im Modellbau, USB war früher... ;)

BLHeli benutzt z.B. auch intern den AVRootloader, in der BLHeliSuite ist er unter Hex-Files in etwas ausgereifterer Version 2enthalten. Die Suite kann man dann sogar zweckentfremden und nutzen, und so direkt Paramter ins EEprom schreiben, und auch über die Suite flashen.

Adapter funzt alles Mögliche, Hott Jeti Progadapter, SerialUSBAdapter mit dem Widerstand, ein in der BLHheli-Suite als Adapter geflashter Nano, u.s.w.
 
Moin
Von hier http://www.rc-network.de/forum/showthread.php/728204-Curralt-kleiner-günstiger-Stromsensor-mit-Vario
Mach ich mal hier weiter, damit nicht der Thread zu sehr entgleist.


@Kalle, ich habe es gerade mal durchgearbeite, hat bei mir sofort funktioniert, ,al im Ablauf, um evtl zu schauen was Du anders gemacht hast ?
eine Pro Mini habe ich nicht da, einen Nano, der aber gleich sein sollte, 16Mhz (!!!), und den 328p. (das attiny im asm ist ne Hinterlasenschaft in der Beschreibselung ;))

Den Bootloader aus dem Paket 328p_16Mhz_19200_PD4_ONKI.hex draufspielen

dazu klemm ich den Nano an den ISP (hier der 1$ USB-Tiny-ISP)
100_3030.JPG




Und spiele den Bootloader mit AVRDUDESS drauf:
Wichtig sind auch die FuseBits !
N1.png


Nun den One-Wire Adapter, ich habe hier den von Hott, Jeti sollte da gleich sein.
weiß an D4
100_3031.JPG


Nun AVRootloader öffnen, wie im Bild einstellen, connect device drücken, der Knopf zeigt dann "About connect" in Fettschrift.
Nun den Onewire einstecken (bzw den Arduino resetten"). Wenn verbunden steht Disconnect device im Knopf
N2.png
 

kalle123

User
Hi Holger.

Machen wir hier weiter. Kann ja eigentlich nur ne Kleinigkeit sein, wie immer ....
:D

Das ist mein Versuchsaufbau. Pro mini 328 5V 16 MHz aus nem Multiwii. Sensor BMP180 und ISP Anschluss.

Hab da zuerst ein oXs Vario drauf geflashed und das über FrSky X6R und Taranis gecheckt. OK.

IMG_20190325_073547.jpgIMG_20190325_073522.jpg

Hier mal das Flashen des loaders, mal mit avrdudess

avrdudess.JPG

Mit dem von dir vorgeschlagenene Adapter (TX RX GND und 2.7k) seh ich im Protokoll noch nicht einmal 'Switch to 1-wire mode'. Mit dem Jeti Adapter (FTDI und Diode) seh ich zumindest das.

Unbenannt.JPG

Ich bin so vorgegangen nach Aufspielen des Loaders:

- Adapter (GND und Signal) an den Arduino.

- 5V an die Schaltung

- AVRootloader gestartet - Connect - Programm und dann Reset auf dem Arduino.

Irgendwie blöd ....

Grüße KH
 

onki

User
Hallo Kalle,

Ohne jetzt der Experte zu sein aber muss der Rootloader nicht vorab gestartet werden und dann die 5V dran?
Der Bootloader ist ja nur kurz aktiv und startet danach das Hauptprogramm.

Ich nutze jetzt als ISP Programmer einen umgerüsteten Nano. Dort hab ich Reset von der Steckerleiste isoliert und den Pin stattdessen mit Ausgang 10 verbunden. Damit hat das flashen geklappt. Hochladen mit Onewire hab ich mangels Zeit noch nicht gemacht.

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

Wie schauen denn eure "Zangenadapter" so aus? Ich hab da noch keine rechte Idee.

Gruß
Onki
 

kalle123

User
Hi Onki,

versuch die Reihenfolge nachher mal zu ändern....

'Versuch macht kluch :)'

Was meinst du denn mit "Zangenadapter" ??

Gruß KH
 
Moin Kalle
Evtl das Häkchen für Erase Flash & EEprom aktivieren, weil der neue Bootloader kleiner ist als der Alte Bootloader. ?

Kommt die Fehlermeldung im AVRootloader umgehend (dann ist Streß mit Adapter), oder sucht der erstmal eine halbe Ewigkeit (das wäre normal) ?
Den Jeti, hast Du den mal probiert ?


Am sichersten liefen bei mir bisher immer die in der BLHelisuite erstellten Nanos als Adapter, die funzen überall, auch an allen Reglern.

Da habe ich ein Servokabel drann, daran baumelt so ein 6er Würfelstecker (wie ISP), die einen Dreierseite dann mit 5V, auf der anderen Seite ohne.
Weil am Nano stumpf nur der Pin "geschaltet" wird, ist das damit unabhängig von irgendwelchen Pullup oder sonstigen Widerständen, und rennt wie nen Traktor.
 

onki

User
Hallo Kalle,

Die ProMini haben, im Gegensatz zum Nano, die notwendigen ISP-Pins ja etwas auf der Steckerleiste verstreut. Daher schwebt mir eine Art Zange mit Kontakten dran vor um einen neuen ProMini darin einzzuspannen um den Bootloader zu flashen.
So eine Kontaktleiste hab ich schon und mit einer Leimzange klappt das auch schon ganz gut.
Kann am Abend ja mal ein Bild davon machen.

Gruß
Onki
 

kalle123

User
@Holger.

Hab es nochmal probiert. Einmal auf WIN 10 (dualboot) in dann unter Linux mit WIN 7 in vbox. Nix. Renn da gegen eine Wand. Dauert immer ne Zeit ...

Ich warte jetzt mal, was Onki macht und sagt.

avrdudess.JPGavrooloader.JPG

@Onki.

Wenn ich Pro minis aus Fernost rein kriege, werden die erst mal schnell gecheckt, bevor die in ein Kästchen hier rein kommen. Sieht so aus

IMG_20190325_151731.jpg

Für den bootloader würde ich z.B. so was machen. Geht einwandfrei. Ich hab da überlange Stiftleisten (auf dem Steckbrett links) und etwas Kunststoff dahinter geklemmt. Wenn ich 8h lang 'bootloader' brennen müsste, dann vielleicht was anderes/besseres, aber so!?

IMG_20190325_152626.jpg

PS. Dein Vorschlag mit der Reihenfolge beim AVRootloader. Habs probiert, nix. Aber du kriegst ja die Aufforderung, RESET zu drücken am Pro mini und dann kommt ja der bootloader ....

Gruß KH
 
Hallo zusammen,

man kann ein jungfräuliches Board auch zum Flashen kontaktieren, indem man entsprechende Stiftleisten in den durchkontaktierten Lötaugen verkantet.
Habe ich sowohl mit den zwei mal drei Anschlüssen für ISP, als auch mit den Header-Anschlüssen für Flashen mit Bootloader schon oft gemacht.
Es reicht meistens, wenn man die Stifte einsteckt und das Board dann ein wenig beschwert.

Ich benützte übrigens für die pro Mini ausschließlich den Optiboot, mit dem ich noch nie Probleme hatte.
 
Hi,

ich habe immer

.equ UseAutobaud = 1 ; Baudrate detection

eingestellt, dann kann man mit beliebiger Baudrate proggen.
FTDI können invertierte Signale ausgeben. Z.B wenn man nicht uart sondern COM/V24 erzeugen will. Das geht mit FT_Prog zu ändern/kontrollieren. Evtl mal einen bootlader mit

.equ UseUartInvert = 0 ; invert UART levels (for RS232 drivers such as MAX232)

übersetzen. Wäre zumindest nicht das erste mal das Problem.
Ich benutze den Bootlader auf fast allen meinen Schaltungen.
Der Bootlader startet nach jedem Reset. Also Power-On als auch Reset-Pin. Ob Connect und dann Power-On oder Power-On, Connect und dann Reset ist egal.

ich habe noch ein AVE-Studio 4.19 für den Bootlader installiert. Geht das inzwischen auch mit neueren Versionen?

Gruß Sven
 
Hallo Sven
Danke für den Tip, darum habe ich wahrschelinlich keine FTDI :rolleyes:

AVR Studio nutze ich garnicht, ich kopiere einfach immer die .inc und eine avrasrm2.exe ins Verzeichniss, und haue es dann manuell durch :
wine avrasm2.exe -fI -o 328p_AUTOB_INVERT_PD4.hex AVRootloader.asm



@ Kalle, nach Svens Vorgabe:
Anhang anzeigen 328p_AUTOB_INVERT_PD4.hex.txt
 
Das einzige was mir noch einfällt, den Arduino auch kmpl über den Adapter mit Strom zu versorgen, um gleiches Spannungspotential sicherzustellen (3,3V vs 5V).
Den Arduino wirklich mal nackig nur an diese 3Strippen.
Oder mal einen anderen Pin, warum auch immer, oben in meinem Zip sind ja HEXs zu allen D-pins.

Bei mir laufen die alle auf Anhieb mit allen Adaptern (cp21xx, Graupner Hott, Nano als Adapter, auch der extra rausgekramte FTDI mit 2k7 in der Leitung), ohne jegliche Probleme.
(auser die eine mit Invert=0, die rennt mit keinen meiner Adapter).

Autobaud funzte auch, braucht etwas mehr Speicher, und man läuft die Gefahr das sich der Bootloader am Telemetrieport hinhängt, weil der Bootloader dann auch auf die Signale vom Empfänger reagiert, und man nicht auf eine andere Baudrate ausweichen kann.

Beim Niko war der Bootloader so klein, da er die EEprom Funktion deaktiviert hatte.
.
Den EEprom-Editor vom AVRootloader missbrauche ich gerne als einfachst-GUI für z.B. Kalbrierwerte und sonstige Einstellwerte, die man da einfach reinschreiben und dann ins EEprom speichern kann:
Bildschirmfoto zu 2019-03-26 08-48-09.png

Geänderte Wert sind dann solange rot, bis sie man sie ins EEprom gespeichert hat, man kann die Werte links in HEX, oder auch rechts im ASCII-Feld direkt überschreiben.
Bildschirmfoto zu 2019-03-26 09-43-20.png

Das lesbare ASCII auf der rechten ist im Setup fix in eine Variable gewandelt, wenn man aber aus dem Arduino ins EEprom schreiben will, ist das so eher ungeschickt.
 
Mein "Lieblingsadapter" sieht so aus:

Nano mit Servokabel und 6er Würfelstecker, eine Seite mit und eine ohne 5V in der Mitte, D3 ist Orange.
100_3033.JPG

Erstellen kann man den ganz einfach am USB Kabel in der BLHelisuite als "Arduino BLHeli Booloader" (nicht 4Way-Interface !!).
57600Baud für die älteren Nanos, 11520 für den neueren Nanos, einfach ausprobieren:
Bildschirmfoto zu 2019-03-26 09-05-42.png

Der schluckt dann wirklich ALLES, und natürlich auch die BLHeliregler, die ja alle vom Werk auch den AVRootloader draufhaben.

Der EEprom-Editor ist mit den normalen Serialadaptern bei den ungequarzten Attinys manchmal etwas zickig, k.A. warum, mit dem Nano-Adapter funzt das absolut zuverlässig.
 
Der Vollständigkeit halber zum Threadtitel sollte man auch den TinySafeBoot erwähnen, der auch den One-Wire Upload beherrscht.
http://jtxp.org/tech/tinysafeboot.htm
Ich hatte den eine zeitlang benutzt, da er auch exotischere Prozessoren ansprechen kann, in meinem Fall war es der Attiny841.
Den Komfort mit der schönen Oberfläche gibt es hier aber nicht, allg. war der Weg etwas steiniger als mit dem AVRootloader, bis alles funktionierte.

Der Autor hat mittlerweile eine zweite Version geschaffen, den OWL, das ist ein aboluter Ein-Weg uploader, der keine Rücksignal benötigt.
http://jtxp.org/tech/onewayloader.htm

Interessant finde ich die Möglichkeit über LED und Fototransistor/Fotodiode zu flaschen :) (sprich, mein Lichtsensor im Solarflieger;))

owlintairgapoptors232.png

owlintairgapoptoft232.png




NEUE WEGE FÜR TELEMTRIE - SENSOREN ? ...
Oder man beschreitet mal neue Wege (in unserem Alter:eek:) und nimmt einen von den neuen ESP8266 Arduinos, die gibt es spottbillig schon ab Fingernagelgrösse, und flasht bequem über WLAN
https://www.az-delivery.de/blogs/az...rammieren-uber-wlan-entwurf?ls=de&cache=false

oder übers Phone:
https://play.google.com/store/apps/details?id=com.bluino.esploader&hl=en_US
 

onki

User
Hallo Holger,

Super Sache. Allerdings möchte ich zu denken geben, dass ein Sensor mit eingebautem WLAN in einem Flugmodell denkbar ungeschickt ist. Der stopft dann auch wieder den Empfänger zu und ist sehr nahe dran.

Sicher ist da genügend Luft nach oben aber so richtig wohl ist mir bei der Sache nicht. Im nicht-RC-Bereich wie z.B. der Schwerpunktwaage ist der ESP eine wirklich tolle Sache aber im RC-Bereich finde ich das nicht so der Brüller.
Ich habe mittlerweile eine X9D, die ich für jüngere Schüler (z.B. beim Ferienprogramm) u.a. als Schülersender einsetzen möchte. Da ist noch ein TGs Modul im Zulauf und dafür wollte ich (wenn das denn klappt) noch einen Telemetrioekonverter basteln. Das wird sicher ein Fall für den neuen Bootloader. Dazu muss ich aber erst schauen, ob das auch in der Entwicklungsphase ein Vorteil ist da das flashen aus der Arduino IDE schon ziemlich bequem ist.
Für einen OXS Sensor ist der aber mal gesetzt weil das eher unproblematisch ist.

Gruß
Onki
 

kalle123

User
Das ganze Spiel jetzt mal mit nem Uno gemacht.

Macht den Aufbau und die Haptik einfacher.

- AVRootloader '328p_AUTOB_INVERT_PD4.hex' geflashed. OK.

- Dann mit den 1-wire Adaptern, die ich hier hab

FrSky (FTDI inv.), MPX (CP2102) und Jeti (FTDI) mit original Adapterschaltung (Diode) und statt dessen auch Holgers Vorschlag (2.7k)

probiert.

Das 'Beste', was ich sehe 'switch to 1-wire mode ..... no device found'

Im Moment fällt mir nix mehr ein.

Gruß KH
 
Moin Kalle
Invert war nach Sven sein Vorschlag für einen Versuch exotischer Exotenadapter, rennt bei mir mit keinem Adapter.

UNO -OK ich mache mal den Gegenversuch.

Ich will den D12-Pin, weil es sich mit dem Adapter direkt zu GND stecken lässt (pure Bequemlichkeit),

Kurzer Blick ins Pinout: http://marcusjenkins.com/arduino-pinout-diagrams/: D12 ist PB4

Aus meinem Zip-Paket http://www.rc-network.de/forum/show...-uns-optimal?p=4762146&viewfull=1#post4762146 habe ich also 328p_19200_PB4.hex per ISP auf den UNO gebeamt.

Fusebits passten von Werk, gleich wie vorher auch beim Mini. L: FF H: DF E: FD

Nun den einfachen cp2101 mit 2K7 zwischen GND und D12 gesteckt, den ISP zur Stromverorgung dranngelassen, (eigentlich nicht empfehlenswert, da der ISP auch D12 mitbedient)

AVRootloader
Sign: BOOTLOADER
19200 Baud

Connect, und schon war ich drauf (wenn der Bootloader frisch geflasht wurde, braucht es meist kein Reset).
Gegenversuch mit Hott-Adapter und Nano-Adapter ---funzt.

100_3038.JPG

Evtl. mal nen frischen AVRootloader, das nicht die exe oder die config irgendwie zerschossen ist ? Weil, irgendwas muss es ja sein ;)
https://github.com/damadmai/AVRootloader



@ Onki, ich habe keine Erfahrung mit den ESP. Könnte man nach einer gewissen Startzeit nicht einfach das WLAN deaktivieren ?
Was ich so lesen konnte, es gibt nur einen ADC, das ist ein bissl mager für Sensoren, und wenn das WLAN an ist, bringt der ESP wohl mächtig Rauschen in den ADC und die Sensorik, so das, so oder so, dann deaktiviert werden müsste.
 
Ansicht hell / dunkel umschalten
Oben Unten