MAVLink-OSD alle Fuses gesetzt - Failed to talk to bootloader

Status
Nicht offen für weitere Antworten.
#1
Moin !

Ich versuche jetzt schon seit gestern Abend mein MinimOSD ans laufen zu bekommen. Leider bisher ohne Erfolg. Er sagt mir immer "Failed to talk to bootloader".

Habe dann mit Arduino den Bootloader neu geflasht. Hat auch geklappt. Fehler immer noch bei der Org Software.

Habe dann mal mit ARRDUDE die Fuses gelesen. Und nun stelle ich fest die sind alle gesetzt. Also die Fuses stehetn auf 00 00 00 Hex. :(

Fuses schreiben geht leider auch nicht. Da kriege ich einen Error "Error writing Fuses".

Was kann ich denn nun noch machen?

Grüße Dominik
 
#2
Moin !

Ich versuche jetzt schon seit gestern Abend mein MinimOSD ans laufen zu bekommen. Leider bisher ohne Erfolg. Er sagt mir immer "Failed to talk to bootloader".

Habe dann mit Arduino den Bootloader neu geflasht. Hat auch geklappt. Fehler immer noch bei der Org Software.

Habe dann mal mit ARRDUDE die Fuses gelesen. Und nun stelle ich fest die sind alle gesetzt. Also die Fuses stehetn auf 00 00 00 Hex. :(

Fuses schreiben geht leider auch nicht. Da kriege ich einen Error "Error writing Fuses".

Was kann ich denn nun noch machen?

Grüße Dominik
Hallo Dominik,

so ganz versteh ich deine Ausführung nicht, wenn du über die Arduino IDE den Bootloader, z.B. mit einem AVRISP-MK2 programmiert hast, gelten eigentlich die Fuses, die beim Arduino Verzeichnis unter \hardware\arduino\boards.txt definiert sind.
Versuch doch noch einmal über den 6-poligen ISP-Anschluß, die Fuses zu setzten.
Evtl. dann noch einmal über die Arduino IDE den Bootloader flashen.

Hier ein Auszug daraus, soweit ich mich noch richtig errinnere, nimmt man für MAV-Link den UNO sonst pro Mini:

uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard

Grüße Jörg
 

yuko

Neuer Benutzer
#3
Hallo,

die Meldung muss nicht bedeuten, dass der Bootloader defekt ist. Vielmehr sagt sie nur, dass die Datenverbindung nicht erfolgreich war.
Eine häufige Ursache ist, dass DTR nicht richtig verbunden ist oder der Adapter den Pin besitzt, aber nicht richtig unterstützt. Beim MAVLink-OSD lässt sich das Problem umgehen, indem man nach dem Klick auf Write oder Read innerhalb von etwa 2 Sekunden den Reset-Button am OSD betätigt.
Hier ist der Post, der mir damals weitergeholfen hatte: http://www.rcgroups.com/forums/showpost.php?p=28145350&postcount=75

Grüße,
Manuel
 

francisco

Erfahrener Benutzer
#4
^^ muss diesen Thread mal nach oben schieben.

Auch ich habe das Problem, dass sich mein Mavlink nicht flashen lässt.... any idea? Same Fehlermeldung, Failed to talk to bootloader.

Ich habe ein Mavlink OSD v2.0 und von CRIUS ein FTDI Tool. Benutze ArduCam OSD Config Tool for Plane 2.2.0.0.

Habe auf Reset gedrückt, hilft nichts. Habe Atmel Studio installiert und über die Tool Funktion "geschrieben", er sagt immer Write ok, aber laufen tut nichts

Any ideas?

Danke
 
#5
Was bedeutet ein FTDI Tool, du brauchst einen AVR STK 500 kompatiblen Burner, der über die Miso/Mosi Buchsen die auf dem Mavlink normal nicht mit Stiftleisten verlötet sind, programmiert wird?! Also nicht über die RX/TX Pins.

Grüße Jörg
 
#7
Ok, nochmal von vorne, hier ging es darum, das der Bootloader des Atmegas nicht startet, da die Fuses verstellt sind. Den Bootloader und Fuses bekommt man nur mit einem ISP_Programmer auf dem Atmega eingestellt. Der Bootloader macht dann den Atmega für die Arduino IDE über die seriellen Ports empfänglich, um dann das eigentliche Program/Firmware über diese zu flashen oder meinet wegen auch zu burnen;). Jetzt die Frage an dich, was ist jetzt dein eigentliches Problem? Warum nimmst du nicht die Arduino IDE zum flashen des Atmegas, da sind dann auch die entsprechenden Boards selektierbar und es funktioniert dann auch, oder es kommt eine Fehlermeldung.
 

francisco

Erfahrener Benutzer
#9
so....das sagt Arduino IDE:

"....avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
Fehler beim Brennen des Bootloaders...."

Ausgewählt habe ich:

Werkzeuge > Platine > Arduino Pro oder Arduino Mini
Prozessor > Armega 328 (5V, 16 Mhz)
Programmer > USBAsp

Port ist natürlich der COM Port, den das Device angibt...


Und ich habe meiner Meinung nach die richtigen Treiber drauf. Es lief ja auch mit dem vorherigen OSD. Dort konnte ich ihn flaschen. Leider ist der kaputt gegangen.

Was mich hier auch wundert ist, dass zwar beide rote LEDs leuchten (habe die Lötbrücken gemacht), aber ich nur 1 x die blaue LED leuchten hab sehen. Auch hat das OSD in der jetzigen Config kein Bild......

Vielleicht auch wieder kaputt?
 
Zuletzt bearbeitet:
#10
Hi Francisco,

Ich denke, du verwendest den FTDI Programmer mit der falschen Funktion, oder hast du dir nun einen USBasp ISP-Programmer zugelegt?
Also wenn du den FTDI an den 6 Pins in Reihe angeschlossen hast. Dann must du die Serielle Schnittstelle unter Tools auswählen und dann Upload drücken. Kommt dann die Fehlermeldung, das STK500 nicht mit Board kommunizieren kann, dann könnte der Bootloader ne Macke haben. Dafür ist dann der USBasp nötig und du mußt die zwei Dreireihigen Löcher mit Stiftleisten bestücken und dort entsprechend nach einem Anschlußplan dort anschliessen und dann über Tools-Bootloader installieren. Jetzt müßte ich nur wissen, was du wie genau probiert hast, damit ich dir die entsprechende Anleitung mal hier reinsetzen kann. Die Blaue Led zeigt eigentlich die Kommunikation an, vermute zumindestens mal, das du die Mavlink Firmware nicht drauf hast.

Grüße Jörg

PS: Hier mal eine Anleitung für den Bootloader, zwar mit Atmel Studio, aber hier sind sehr schön die einzelnen Programmer Typen zu sehen und deren Anschlussarten.
[video=youtube;JG34xJ6O6Ak]https://www.youtube.com/watch?v=JG34xJ6O6Ak[/video]

und hier mit Arduino
[video=youtube;ixt6GpePAOs]https://www.youtube.com/watch?v=ixt6GpePAOs[/video]
 
Zuletzt bearbeitet:

francisco

Erfahrener Benutzer
#11
okok.. ich besorg mir erst einmal so einen ISP Programmer... schaue mir die Videos an und versuche es... muss doch klappen!

Vielen Dank schon einmal für Deine Hilfe!
 

francisco

Erfahrener Benutzer
#12
so.... ISP Programmer ist da und ich habe hier noch eine gute Anleitung gefunden:

http://www.infinity-hobby.com/main/article_info.php?articles_id=405

Leider bekomme ich dies als Antwort:

avrdude: warning: cannot set sck period. please check for usbasp firmware update
.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.


avrdude done. Thank you.

Ich denke ich habe es geschrottet.... was meinst Du?
 

francisco

Erfahrener Benutzer
#13
das habe ich auch gefunden, interessant:

http://www.mikrocontroller.net/topic/241250#2535490

manche erzählen, dass man die erste Fehlermeldung ignorieren soll. Der hier meint genau das Gegenteil. Nur habe ich keine Möglichkeiten den ISP zu flaschen.. ist ja zum *spucken*.... Frage mich die ganze Zeit, warum ich das beim 1. OSD ohne den ganzen Stress hinbekommen habe *kopfkratz*
 
#14
Den ersten Fehler kann man ignorieren.

Bist du dir sicher dass alles korrekt verbunden ist?
Das MinimOSD bekommt auch Saft (= LEDs leuchten) wenn der Stecker vom USBasp falsch herum eingesteckt ist.
 

francisco

Erfahrener Benutzer
#15
2 Sachen:

1. der ISP Programmer wird geflasht, ein Freund hat das passende Equipment
2. was mich nervt ist, der Programmer hat 8 Kabel, das OSD 6 Pins. An einem Pin ist eine Markierung..finde nirgends im Netz eine Doku für ein Mavlink OSD in der Version 2.0

Danke
 
#16
Wenn ich es richtig in Erinnerung hab ist der Pin mit der Markierung Miso.

Müsste dann so belegt sein:

RST - SCK - MISO
GND - MOSI - VCC
 

francisco

Erfahrener Benutzer
#17
^^ Danke! Sobald ich den ISP Programmer wieder habe werde ich weiter testen. Wäre doch gelacht, wenn ich das nicht mit der tollen Unterstützung hier hinbekomme!
 

francisco

Erfahrener Benutzer
#18
avrdude -c avr910 -P com14 -p atmega8 -u -U hfuse:w:0xc9:m -U lfuse :w:0xef:m

Found programmer: Id = "AVR ISP"; type = S
Software Version = 2.5; Hardware Version = 2.0
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize = 8 bytes.

Programmer supports the following devices:
Device code: 0x01 = (unknown)
Device code: 0x02 = (unknown)
Device code: 0x03 = (unknown)
Device code: 0x04 = (unknown)
Device code: 0x05 = (unknown)
Device code: 0x06 = (unknown)
Device code: 0x07 = (unknown)
Device code: 0x08 = (unknown)
Device code: 0x09 = (unknown)
Device code: 0x0a = (unknown)
Device code: 0x0b = (unknown)
Device code: 0x0c = (unknown)
Device code: 0x0d = (unknown)
Device code: 0x0e = (unknown)
Device code: 0x0f = (unknown)
Device code: 0x10 = (unknown)
Device code: 0x11 = (unknown)
Device code: 0x12 = (unknown)
Device code: 0x13 = AT90S1200
Device code: 0x14 = (unknown)
Device code: 0x15 = (unknown)
Device code: 0x16 = (unknown)
Device code: 0x17 = (unknown)
Device code: 0x18 = (unknown)
Device code: 0x19 = (unknown)
Device code: 0x1a = (unknown)
Device code: 0x1b = (unknown)
Device code: 0x1c = (unknown)
Device code: 0x1d = (unknown)
Device code: 0x1e = (unknown)
Device code: 0x1f = (unknown)
Device code: 0x20 = ATtiny84
Device code: 0x21 = (unknown)
Device code: 0x22 = (unknown)
Device code: 0x23 = (unknown)
Device code: 0x24 = (unknown)
Device code: 0x25 = (unknown)
Device code: 0x26 = (unknown)
Device code: 0x27 = (unknown)
Device code: 0x28 = AT90S4414
Device code: 0x29 = (unknown)
Device code: 0x2a = (unknown)
Device code: 0x2b = (unknown)
Device code: 0x2c = (unknown)
Device code: 0x2d = (unknown)
Device code: 0x2e = (unknown)
Device code: 0x2f = (unknown)
Device code: 0x30 = AT90S4433
Device code: 0x31 = (unknown)
Device code: 0x32 = (unknown)
Device code: 0x33 = (unknown)
Device code: 0x34 = AT90S2333
Device code: 0x35 = (unknown)
Device code: 0x36 = (unknown)
Device code: 0x37 = (unknown)
Device code: 0x38 = AT90S8515
Device code: 0x39 = (unknown)
Device code: 0x3a = ATmega8515
Device code: 0x3b = (unknown)
Device code: 0x3c = (unknown)
Device code: 0x3d = (unknown)
Device code: 0x3e = (unknown)
Device code: 0x3f = (unknown)
Device code: 0x40 = (unknown)
Device code: 0x41 = ATmega103
Device code: 0x42 = (unknown)
Device code: 0x43 = ATmega128
Device code: 0x44 = (unknown)
Device code: 0x45 = ATmega64
Device code: 0x46 = (unknown)
Device code: 0x47 = (unknown)
Device code: 0x48 = (unknown)
Device code: 0x49 = (unknown)
Device code: 0x4a = (unknown)
Device code: 0x4b = (unknown)
Device code: 0x4c = AT90S2343
Device code: 0x4d = (unknown)
Device code: 0x4e = (unknown)
Device code: 0x4f = (unknown)
Device code: 0x50 = (unknown)
Device code: 0x51 = (unknown)
Device code: 0x52 = (unknown)
Device code: 0x53 = (unknown)
Device code: 0x54 = (unknown)
Device code: 0x55 = ATtiny12
Device code: 0x56 = ATtiny15
Device code: 0x57 = (unknown)
Device code: 0x58 = (unknown)
Device code: 0x59 = (unknown)
Device code: 0x5a = (unknown)
Device code: 0x5b = (unknown)
Device code: 0x5c = (unknown)
Device code: 0x5d = (unknown)
Device code: 0x5e = ATtiny4313
Device code: 0x5f = (unknown)
Device code: 0x60 = ATmega161
Device code: 0x61 = (unknown)
Device code: 0x62 = (unknown)
Device code: 0x63 = ATmega162
Device code: 0x64 = ATmega163
Device code: 0x65 = (unknown)
Device code: 0x66 = (unknown)
Device code: 0x67 = (unknown)
Device code: 0x68 = AT90S8535
Device code: 0x69 = ATmega8535
Device code: 0x6a = (unknown)
Device code: 0x6b = (unknown)
Device code: 0x6c = AT90S4434
Device code: 0x6d = (unknown)
Device code: 0x6e = (unknown)
Device code: 0x6f = (unknown)
Device code: 0x70 = (unknown)
Device code: 0x71 = (unknown)
Device code: 0x72 = ATmega32
Device code: 0x73 = (unknown)
Device code: 0x74 = ATmega6450
Device code: 0x75 = ATmega6490
Device code: 0x76 = ATmega8
Device code: 0x77 = (unknown)
Device code: 0x78 = ATmega169
Device code: 0x79 = (unknown)
Device code: 0x7a = (unknown)
Device code: 0x7b = (unknown)
Device code: 0x7c = (unknown)
Device code: 0x7d = (unknown)
Device code: 0x7e = (unknown)
Device code: 0x7f = (unknown)

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e9307
avrdude: reading input file "0xc9"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xc9:
avrdude: load data hfuse data from input file 0xc9:
avrdude: input file 0xc9 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xef"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xef:
avrdude: load data lfuse data from input file 0xef:
avrdude: input file 0xef contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude done. Thank you.





avrdude -c avr910 -P com14 -p atmega8 -U flash:w:usbasp.atmega8.2011-05-28.hex

Found programmer: Id = "AVR ISP"; type = S
Software Version = 2.5; Hardware Version = 2.0
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize = 512 bytes.

Programmer supports the following devices:
Device code: 0x01 = (unknown)
Device code: 0x02 = (unknown)
Device code: 0x03 = (unknown)
Device code: 0x04 = (unknown)
Device code: 0x05 = (unknown)
Device code: 0x06 = (unknown)
Device code: 0x07 = (unknown)
Device code: 0x08 = (unknown)
Device code: 0x09 = (unknown)
Device code: 0x0a = (unknown)
Device code: 0x0b = (unknown)
Device code: 0x0c = (unknown)
Device code: 0x0d = (unknown)
Device code: 0x0e = (unknown)
Device code: 0x0f = (unknown)
Device code: 0x10 = (unknown)
Device code: 0x11 = (unknown)
Device code: 0x12 = (unknown)
Device code: 0x13 = AT90S1200
Device code: 0x14 = (unknown)
Device code: 0x15 = (unknown)
Device code: 0x16 = (unknown)
Device code: 0x17 = (unknown)
Device code: 0x18 = (unknown)
Device code: 0x19 = (unknown)
Device code: 0x1a = (unknown)
Device code: 0x1b = (unknown)
Device code: 0x1c = (unknown)
Device code: 0x1d = (unknown)
Device code: 0x1e = (unknown)
Device code: 0x1f = (unknown)
Device code: 0x20 = ATtiny84
Device code: 0x21 = (unknown)
Device code: 0x22 = (unknown)
Device code: 0x23 = (unknown)
Device code: 0x24 = (unknown)
Device code: 0x25 = (unknown)
Device code: 0x26 = (unknown)
Device code: 0x27 = (unknown)
Device code: 0x28 = AT90S4414
Device code: 0x29 = (unknown)
Device code: 0x2a = (unknown)
Device code: 0x2b = (unknown)
Device code: 0x2c = (unknown)
Device code: 0x2d = (unknown)
Device code: 0x2e = (unknown)
Device code: 0x2f = (unknown)
Device code: 0x30 = AT90S4433
Device code: 0x31 = (unknown)
Device code: 0x32 = (unknown)
Device code: 0x33 = (unknown)
Device code: 0x34 = AT90S2333
Device code: 0x35 = (unknown)
Device code: 0x36 = (unknown)
Device code: 0x37 = (unknown)
Device code: 0x38 = AT90S8515
Device code: 0x39 = (unknown)
Device code: 0x3a = ATmega8515
Device code: 0x3b = (unknown)
Device code: 0x3c = (unknown)
Device code: 0x3d = (unknown)
Device code: 0x3e = (unknown)
Device code: 0x3f = (unknown)
Device code: 0x40 = (unknown)
Device code: 0x41 = ATmega103
Device code: 0x42 = (unknown)
Device code: 0x43 = ATmega128
Device code: 0x44 = (unknown)
Device code: 0x45 = ATmega64
Device code: 0x46 = (unknown)
Device code: 0x47 = (unknown)
Device code: 0x48 = (unknown)
Device code: 0x49 = (unknown)
Device code: 0x4a = (unknown)
Device code: 0x4b = (unknown)
Device code: 0x4c = AT90S2343
Device code: 0x4d = (unknown)
Device code: 0x4e = (unknown)
Device code: 0x4f = (unknown)
Device code: 0x50 = (unknown)
Device code: 0x51 = (unknown)
Device code: 0x52 = (unknown)
Device code: 0x53 = (unknown)
Device code: 0x54 = (unknown)
Device code: 0x55 = ATtiny12
Device code: 0x56 = ATtiny15
Device code: 0x57 = (unknown)
Device code: 0x58 = (unknown)
Device code: 0x59 = (unknown)
Device code: 0x5a = (unknown)
Device code: 0x5b = (unknown)
Device code: 0x5c = (unknown)
Device code: 0x5d = (unknown)
Device code: 0x5e = ATtiny4313
Device code: 0x5f = (unknown)
Device code: 0x60 = ATmega161
Device code: 0x61 = (unknown)
Device code: 0x62 = (unknown)
Device code: 0x63 = ATmega162
Device code: 0x64 = ATmega163
Device code: 0x65 = (unknown)
Device code: 0x66 = (unknown)
Device code: 0x67 = (unknown)
Device code: 0x68 = AT90S8535
Device code: 0x69 = ATmega8535
Device code: 0x6a = (unknown)
Device code: 0x6b = (unknown)
Device code: 0x6c = AT90S4434
Device code: 0x6d = (unknown)
Device code: 0x6e = (unknown)
Device code: 0x6f = (unknown)
Device code: 0x70 = (unknown)
Device code: 0x71 = (unknown)
Device code: 0x72 = ATmega32
Device code: 0x73 = (unknown)
Device code: 0x74 = ATmega6450
Device code: 0x75 = ATmega6490
Device code: 0x76 = ATmega8
Device code: 0x77 = (unknown)
Device code: 0x78 = ATmega169
Device code: 0x79 = (unknown)
Device code: 0x7a = (unknown)
Device code: 0x7b = (unknown)
Device code: 0x7c = (unknown)
Device code: 0x7d = (unknown)
Device code: 0x7e = (unknown)
Device code: 0x7f = (unknown)

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "usbasp.atmega8.2011-05-28.hex"
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):

Writing | ################################################## | 100% 6.21s

avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.05s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x21 != 0x3b
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK

avrdude done. Thank you.


---snip---

hier das Ergebnis, der Verify schlägt fehl beim Flashen des ISP Programmers. Any ideas?
 
#19
Hallo Francisco,

Sieht ok aus, der verify kann fehlschlagen, wenn die Spannungsversorgung unstabil ist.
Also kurze USB Kabel und Programmier Verbindung ist meist ne Hilfe.
Habt ihr denn mal probiert, ob der USBasp von Arduino Ide noch erkannt wird?
Sonst nochmal das Hex-File flashen.

Grüße Jörg
 

didicl

Neuer Benutzer
#20
Hallo,

hatte gerade auch das Problem mit der Verbindung zum Mavlink OSD Modul. ArducamOSD meldete "Failed to talk to bootloader" und bei Arduino klappte es auch nicht so toll.

Bei mir funktionierte es, wenn ich die Resettaste am Mavlin OSD Modul gedrückt halte und beim Up- oder Download dann los lasse.

Würde mich mal interessieren ob das bei euch auch hilft, falls ihr das Teil nicht schon längst weggeworfen habt?

Gruss didiCl
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten