Naze32 Flash ueber Bluetooth

Status
Nicht offen für weitere Antworten.

mha

Neuer Benutzer
#1
Hallo,

ich habe ein Naze32 mit einer 2015er Version von baseflight laufen. Da das Board ziemlich verbaut ist, habe ich den UART herausgefuehrt um einen BT Adapter anzuschliessen. Das funktioniert soweit, d.h. ich kann den Konfigurator starten und mich ueber den BT Adapter mit dem Board verbinden. PIDs usw einstellen geht alles. Jetzt wollte ich betaflight ausprobieren, schaffe es aber nicht per BT zu flashen (STM32 - timed out). Bevor ich das Naze freilege um an den USB Adapter zu kommen: hat es schon jemand erfolgreich geschafft per BT zu flashen?

Danke

Michael
 

Ralf W.

Erfahrener Benutzer
#2
Das Bluetooth am Kopter wird von der Firmware betrieben, die Du ersetzen willst. Das würde dem Bluetooth mittendrin den Ast absägen, auf dem es sitzt. Per USB-Kabel wird der Bootloader aktiviert. Das klappt. Der Bootloader enthält aber keinen Treiber für Bluetooth.
 

mha

Neuer Benutzer
#3
Hallo Ralf,

danke, aber von BT muss der bootloader auch nichts wissen. Das BT Modul haengt am zweiten UART, d.h. er muesste nur auf beiden UARTs kommunizieren koennen. Koennte allerdings sein, dass im bootloader die Nutzung des ersten UART (an dem der interne USB/seriell Wandler mit der USB Buchse haengt) hart programmiert ist. Weiss das jemand?

Danke

Michael
 
#4
mhmm... Dachte dass ich letztens als ich den Cleanflight Flasher (App, Android) mal kurz ausprobieren wollte, nur USB möglich gewesen wäre... Wohl aus dem Grund was der Michael schreibt....
Kann mich aber auch täuschen, dass man doch BT auswählen könnte ;)
 

mha

Neuer Benutzer
#5
Soweit ich das sehe, ist auf meinem Board (Naze32 Rev. 5) ein STM32F103CB Microcontroller. Der Bootloader ist bei den STM32 im ROM. Gut so, kann keiner totschiessen oder auf Neuenglisch bricken. Nachteil, der Bootloader ist nicht modifizierbar. Lt. Application Note AN2606 Seite 52 (http://www.st.com/content/ccc/resou...df/jcr:content/translations/en.CD00167594.pdf) muss man um in den Bootloader zu kommen den Boot0 pin auf high setzen und den Boot1 pin auf low. Auf den Boards liegt Boot1 hart auf Masse, Boot0 ist ueber zwei Pads gegen VCC (siehe FLIP32 Schaltplan http://static.rcgroups.net/forums/attachments/2/7/9/8/1/5/a5796215-218-FLIP32.jpg) gefuehrt. Hat man die Boot Pins richtig belegt, lauscht der STM32F103 am UART1 und wartet dort bis er ein 0x7F sieht. Dann initialisiert er und setzt per Autobaud die richtigen Parameter. Dummerweise ist auf den Naze Boards UART1 auf die interne USB to UART Bridge (Silabs CP210x) verdrahtet, siehe FLIP32 Schaltplan im Anhang. So spart man sich ein FTDI, muss aber immer mit USB dran. Lieber waere mir hier, dass die UART pins RX, TX, VCC und GND rausgefuehrt waeren. Dann koennte man ein FTDI oder BT anschliessen.

Schlussfolgerung 1: mit dem internen Bootloader des STM32 geht Flashen ueber die zweite serielle Schnittstelle an die man die BT Module anschliessen kann, nicht.

Aber bringen Baseflight, Cleanflight und Konsorten vielleicht eigene Flashroutinen mit? Mal sehen was die das machen. In Github findet man z.B. das Baseflight Startup Programm fuer die STM32f10x Microcontroller (https://github.com/multiwii/baseflight/blob/master/src/baseflight_startups/startup_stm32f10x_md.s Das ist das Programm, das nach jedem Reset des Microcontrollers laeuft, z.B. auch nach Power on. Der Kern nach Initialisierung und der Entscheidung, ob in den Bootloader gesprungen wird ist das hier:

; Reboot to ROM
LDR R0, =0x1FFFF000
LDR SP,[R0, #0]
LDR R0,[R0, #4]
BX R0
ENDP

Also nichts mit der Annahme, dass Baseflight, Cleanflight usw. eigene Flashroutinen oder gar einen eigenen Bootloader mitbringen. Es wird ganz simpel in den STM32 Bootloader im ROM gesprungen. Somit ist das ganze beschraenkt auf das was der STM32 Bootloader bietet. Und das ist wenig. Nur Kommunikation ueber UART1.


Schlussfolgerung: meine eigene Frage muss ich mit Nein beantworten. Flashen per BT ueber die zweite serielle Schnittstelle ist nicht moeglich. Ich muss jetzt mein Board ausbauen. Verdammt.

Oder liege ich komplett falsch? Der Kommentar im Firmware Flashteil der Konfigurator Apps zu BT macht micht immer noch stutzig.

VG Michael
 

Ralf W.

Erfahrener Benutzer
#6
Lieber waere mir hier, dass die UART pins RX, TX, VCC und GND rausgefuehrt waeren. Dann koennte man ein FTDI oder BT anschliessen.
Bei meinem Naze32 Rev.6 sind die Rx und Tx des UART1 in der Mitte der Platine als durchkontaktierte Lötaugen zugänglich. Dort habe ich mein Bluetooth angelötet und kann entweder über USB oder über Bluetooth mit dem PC oder dem Handy Kontakt aufnehmen. Aber Flashen kann ich (bisher?) nur über USB-Kabel.
 

mha

Neuer Benutzer
#7
Ja, habe gestern noch einen Schaltplan der V4 gefunden (http://fpvwiki.com/images/7/70/Naze32_rev4_schematic.pdf). Dort sieht man, dass RX und TX des ersten UARTs an den CP2101 gehen und parallel auf die beiden pads TP1 und TP2 herausgefuehrt sind. Habe dann ein FTDI angeschlossen und siehe da Flash funktioniert. Warum das dann mit dem BT Modul nicht geht erschliesst sich mir nicht. Ist aus Sicht Naze ja auch nur ein FTDI. Vielleicht liegt es ja auch an der Art der Stromversorgung. Mit FTDI versorge ich das Naze direkt aus dem FTDI. Mit dem BT Modul geht das nicht, weil es ja keine 5V liefern kann. Mit BT Modul versorge ich das Naze per Lipo und BEC so wie es auch flugfertig versorgt wird. Naja, jetzt ist Betaflight ohne Ausbauen drauf.
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten