MikroKopter - Forum » Software, APPs & Programmierung » Turnigy USB bootloader

Turnigy USB bootloader

Neues Thema Antwort

Seite: 1 2 >

Autor Neuer Beitrag
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
Hallo Turnigy-User,

Die Turnigy 9X ist, besonders mit alternativer Firmware/Jeti Umbau/ ... eine ziemlich interessante Fernbedienung.
Da es hier aber recht häufig Firmware upgrades gibt bzw. bei der Konfiguration mit EEPE das hantieren mit dem ISP Programmer etwas umständlich und fehleranfällig ist,
habe ich mich daran gemacht einen Bootloader zu stricken.
Herausgekommen ist ist ein USB-Bootloader auf Basis von USBaspLoader.

Vorteil:
- minimale Hardware (2 ZDioden, 3 Widerstände) für den USB Anschluß
- meldet sich als USBasp
- schnell
- keine Probleme wegen der Schalterstellungen
- keine Gefahr die Fuses zu überschreiben



User image

User image

User image


Wer am Code interessiert ist.. kommt noch ..
Mitglied
Registriert seit: Jun 2008
Beiträge: 1001
Ort: Dachau
Einfach nur genial!
Du solltest es auch auf http://9xforums.com posten. Da gibts sicher noch mehr Leute die es interessiert.
Mitglied
Registriert seit: Sep 2008
Beiträge: 1034
Ort: Raum Goslar
coole Sache!
Mitglied
Registriert seit: Jul 2011
Beiträge: 8
Hallo,

das ist ja mal echt "COOL"

Wirds den "Code" auch für die er9x-jeti Version geben?

Gruß Clemens
Mitglied
Registriert seit: Dec 2009
Beiträge: 1819
Ort: im Norden von München
Hei,

das dürfte unabhängig von der Firmware sein!


Grüße,

Tom
Mitglied
Registriert seit: Apr 2009
Beiträge: 1434
Ort: Braunschweig
Der Bootloader ist unabhängig von der Applikation die auf dem µC läuft, man sollte im Linker Script nur vorsehen, dass die Applikation im Bereich des Bootloaders nix zu suchen hat ;). Ich hab mir mal einen AVR ISP Programmer gebaut, der auf Basis desselben IP Stacks funktioniert http://matze.efreun.de/?p=88. Man kann das ganze denke ich so erklären...
Bei diesem Bootloader ist es so, dass die Funke selber (bzw. der ATMega in dieser) vom Computer als AVR Programmer erkannt wird und das Flashtool (ich nutze z.B. immer avrdude) denkt es würde einen weiteren µC Programmieren. Aber anstatt den Source Code den der Bootloader bekommt in einen zweiten µC schreiben, schreibt der Bootloader es in seinen eigenen Speicher und merkt sich den Einstiegspunkt für der eigentlichen Applikation. Startet man die Funke nun, wird über irgendeine Bedingung geprüft (z.B. USB Stecker gesteckt) ob in den Bootloader gesprungen oder die Applikation gestartet werden soll.
Mitglied
Registriert seit: Feb 2012
Beiträge: 3
Ort: Rheda-Wiedenbrück
Hallo, das hört sich ja total interessant an. Bin nun seit einem guten Jahr stolzer besitzer einer TH9X anlage. Habe zudem ein Programmer.
Bin durch ein anderes Forum auf diese neue Art des Flashens gestoßen.

Meine Frage ist nun, was brauche ich, wie schließe ich das ganze an. Als 17Jähriger ein wenig kompliziert :D


Lg. Chris
Mitglied
Registriert seit: Jun 2008
Beiträge: 1001
Ort: Dachau
Hat das jemand mit der aktuellen FRSKY-Version getestet? Ist da noch genug Platz im Flash? Also für Bootloader + er9x?
Mitglied
Registriert seit: Jul 2008
Beiträge: 847
Ort: Friedberg in Hessen
Modellbauer16 meinte
.. besitzer einer TH9X anlage. Habe zudem ein Programmer.
Bin durch ein anderes Forum auf diese neue Art des Flashens gestoßen.

Willkommen im Forum Chris.

Ist garnicht so schwer. Schau die mal die 867 Beiträge :mrgreen: im Thread Turnigy 9X + Jeti-TU = Sender mit eingebauter Jeti-Box an.

Nicht erschrecken. Im ersten Post ist schon guter Hinweis. Auserdem ist shaddis Blog der für mich beste Einstieg. (Shaddi, ich hoffe, ich darf deinen Link hier posten. Sonst löschen wir ihn).

Dann ist die Projektseite th9x neben viel anderen auch noch interessant.
Mitglied
Registriert seit: Feb 2012
Beiträge: 3
Ort: Rheda-Wiedenbrück
Hallo, danke ;)

Also Jeti wollte ich mir jetzt nicht holen oder so. Möchte halt die günstigen Empfänger benutzen. (Als Schüler hat man nunmal nicht soviel) :D

Meine Funke ist ja schon über das normale verfahren geflasht.
Heißt also über eepe und dem Programmer.

Nun wie ist das jetzt mit dem USB. Was soll daran anders/besser sein?

Das System des Bootloader's habe ich noch nicht so richtig geschnallt


Chris
Mitglied
Registriert seit: Apr 2009
Beiträge: 1434
Ort: Braunschweig
Mit dem Bootloader brauchst du kein extra ISP Adapter mehr zum Flashen, sondern kannst deine Funke einfach mit einem "normalen" USB Kabel anschließen und brauchst auch nicht mehr die 6 Leitungen (Vcc, GND, Miso, Mosi, Clk, Reset) in der Funke, die du beim normalen Flashvorgang mit dem Programmer benötigst.
Mitglied
Registriert seit: Feb 2012
Beiträge: 3
Ort: Rheda-Wiedenbrück
Ok, kann aber ganz normal noch eePe benutzen?!

Dann brauche ich noch so einen USB anschluss. Findet man bestimmt eher als einen 6Poligen Wannenstecker mit Schneidklemme. So ein schei** teil habe ich die letzten wochen nämlich gesucht.

Das währe für die nächste Funke eine Idee. Oder sogar für die jetzige.

Heißt also, das ich jetzt meinen myAVR Programmer wieder verscherbeln kann?!

Chris
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
zu der Größe .. ich habe gerade mal nachgeschaut,
bei der ER9x Firmware ist die er9x-frsky die Größte:

build er699 er9x-frsky : 61944 byte
Damit würde der bootloader mit Display-Routinen nicht mehr passen. Der "stumme" braucht nur 2k und würde noch passen.

sonst (alles er699):
er9x - 56544 byte
er9x-jeti - 57106 byte
er9x-ardupilot - 58944 byte

th9x r268 - 44944 byte

bei diesen Versionen ist noch genug Platz vorhanden.
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
Modellbauer16 meinte
[..]
Heißt also, das ich jetzt meinen myAVR Programmer wieder verscherbeln kann?!


Nicht ganz .. der Bootloader muss ja erstmal auf den µC ;-)
Danach würde ich den ISP Programmer aber immer noch als backup behalten.
Mitglied
Registriert seit: Apr 2009
Beiträge: 1434
Ort: Braunschweig
Und das "schöne" am Bootloader ist, dass du dir nicht durch Zufall die Fuses zersemmelst ;) (aber das schrob Roy ja in seinem Eröffnungspost schon)

@Roy
In welcher Section hast du aktuell das Bild liegen? Das muss ja nicht zwingend in de Programmspeicher...

Die Funke steht bei mir noch auf der ToDo Liste, aktuell flieg ich noch mit ner alten 35MHz Anlage, daher mag die Frage überflüssig erscheinen... Kann man die Funke auch via seriellem Interface konfigurieren? Wenn ja könnte man ja überlegen ob man das im Betrieb nicht auch via USB rausdängeln möchte. Die Rawfunktionen hat man ja, da bräuchte man nur noch nen Middlewaretreiber um den Rest der Applikation anzubinden :)
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
@Dracos-Carazza
das Bild habe ich mit in den Programmbereich gepackt. Es wird direkt mit prog_mem_read gelesen und ans Display weitergereicht.
Die low-level data->display Routine habe ich von der er9x Frimware genommen (eigentlich 4: init, sendctl, setrefvolt und die Datenschaufel vom RAM display buffer hab ich geändert, dass sie aus dem flash schaufelt)
Das Bild ist direkt 128x64 Pixel groß (1kByte). Kleiner macht keinen Unterschied was die boot section angeht; der bootloader alleine für den mega64 ist ~2030 Byte groß (passt also in die 1kword boot section), die grundlegenden Displayfunktionen sprengen da bei weitem den 2kByte Rahmen, da ist dann auch noch genug Platz für das komplette Bild wenn ich hier sowieso die 2kWord boot section nehmen muss ;)
Ich hätte eigentlich noch genug Platz für eine upload-Animation, busy-Anzeige oder einen upload-counter.
Wenn ich wieder genug Zeit habe werde ich das mal angehen.. ;)
Mitglied
Registriert seit: Jun 2011
Beiträge: 659
Ort: Nähe Heilbronn
Wenn man schon soweit geht, könnte man doch auch gleich einen ATMEGA mit mehr RAM/ROM einlöten, dann ist Polen offen ;-)
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
Ja, theoretisch könnte man die Funke auch direkt über den USB konfigurieren. Wenn der USB-Anschluss schon mal dran ist .. ;)
Das wäre auch noch eine schöne Erweiterung für den er9x-Code. Die Dokumentation zu VUSB von obdev ist auch recht gut.
Jetzt fehlt nur noch Zeit ;)

hmm, für den Betrieb wäre es etwas heikel, die Funke müsste schon in einen Einlernmodus geschaltet werden. Da der USB in Software implementiert ist, erzeugt er eine ziemlich hohe Prozessorlast während der Kommunikation. Da zweifle ich gerade ob noch genug Zeit für die Steuerung eines Modells übrig bleibt. Es könnte kurze Aussetzer geben..
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
Eine kleine Platine habe ich auch mal entworfen. Der Lochrasteraufbau zwar bei der Entwicklung ok, ich möchte es aber auch richtig verbauen ;)

User image
Mitglied
Registriert seit: Apr 2009
Beiträge: 1434
Ort: Braunschweig
Roy Batty meinte
Ja, theoretisch könnte man die Funke auch direkt über den USB konfigurieren. Wenn der USB-Anschluss schon mal dran ist .. ;)
Das wäre auch noch eine schöne Erweiterung für den er9x-Code. Die Dokumentation zu VUSB von obdev ist auch recht gut.
Jetzt fehlt nur noch Zeit ;)

hmm, für den Betrieb wäre es etwas heikel, die Funke müsste schon in einen Einlernmodus geschaltet werden. Da der USB in Software implementiert ist, erzeugt er eine ziemlich hohe Prozessorlast während der Kommunikation. Da zweifle ich gerade ob noch genug Zeit für die Steuerung eines Modells übrig bleibt. Es könnte kurze Aussetzer geben..


Das stimmt wohl, aber sowas passiert halt wenn man in Software nen USB emuliert ;)
Für den dauerhaften Betrieb ist es definitiv nicht geeignet, aber für einen normalen "Konfigmodus" wäre es schon nett, dann müsste man nicht immer das Mäuseklavier bemühen 8)
Mitglied
Registriert seit: Sep 2010
Beiträge: 463
Ort: Ruppichteroth
Hi ich habe die Platine fertig doch die Software kann ich nicht herunterladen die Links führen ins Leere hat jemand einen Tipp?
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
Sat-Seb meinte
Hi ich habe die Platine fertig doch die Software kann ich nicht herunterladen die Links führen ins Leere hat jemand einen Tipp?

Moin ..
hab's mal wieder hoch geladen:
TurnigyUSBloader
Mitglied
Registriert seit: Sep 2010
Beiträge: 463
Ort: Ruppichteroth
Danke jetzt geht's weiter.
Nach der Installation des USB geht der Ail schalter nicht ist das Zufall oder hat das etwas damit zu tun?

Mit freundlichen Grüßen

Sat-seb
« Bearbeitet von Sat-Seb am 22.07.2012 14:02. »
Mitglied
Registriert seit: Sep 2010
Beiträge: 463
Ort: Ruppichteroth
Hallo zusammen.

Die Software ist jetzt drauf aber es läuft nicht wirklich.

Wie kann ich kontrollieren ob der Bootloader richtig arbeitet?
Mitglied
Registriert seit: Feb 2008
Beiträge: 41
Ort: Leverkusen
Moin..
der 'AIL'-Schalter sollte nichts damit zu tun haben, funktioniert bei mir auch ganz normal..
Die Kontrolle ob es läuft sollte ganz einfach sein; (wenn du die Version mit Anzeige genommen hast) 'Menu' gedrückt halten beim Einschalten und die Turnigy sollte im Bootloader starten. Er sollte dann als 'usbasp' ansprechbar sein.
Wenn avrdude (oder welches Programm auch immer) ein 'exit' sendet, wird der Bootloader verlassen und die Turnigy startet. Es gibt, falls das nicht gewünscht ist, im .zip auch eine Version die nicht selber den Bootloader verlässt sondern erst wenn 'Exit' gedrückt wird.

Neues Thema Antwort

Seite: 1 2 >

MikroKopter - Forum » Software, APPs & Programmierung » Turnigy USB bootloader