Betaflight mit GPS an Softserial, geht das?

Knuspel

Erfahrener Benutzer
#1
Hi,

vielleicht kann mir hier jemand helfen, da mir langsam die Ideen ausgehen. Habe ein BN 220 GPS, das ich an meine Mamba F405 mini packen möchte. Leider sind die 2 Uarts schon mit Crossfire und DJI belegt, wovon ich auch nicht abrücken will (das GPS soll nur Daten liefern, ich möchte damit nicht den Rescue Mode nutzen!).

Meine Idee war nun den freien PPM Pin als Softserial RX zu nutzen und den freien LED_STRIP als Softserial TX zu nutzen. Damit der Prozessor nicht zu viel Stress bekommt bin ich von 8kHz Looptime auf 2kHz runter.

Problem : BF konfiguriert das GPS automatisch auf 57600 baud un 10Hz, was zu viel für den SS ist. Mir würden 2Hz schon reichen, da ich wie gesagt nur grobe Informationen haben möchte wo der Copter gerade so ist.

Frage: Was muss ich denn im uCenter einstellen, damit BF glücklich ist? Mein Ansatz war 19200baud, 2Hz, alle NMEA Nachrichten aus, nur die wichtigen UBX Nachrichten an. Nur welche sind das???

Ideen und Ratschläge höchst willkommen :)

PS: Ich weiß, die Softserial Geschichte ist nicht optimal. Aber ich habe mich beim Kauf leider vergriffen und will es erstmal versuchen hinzubekommen.
 

Knuspel

Erfahrener Benutzer
#2
Also laut BF Quellcode:

// Enable UBLOX messages

0xB5, 0x62, 0x06, 0x01, 0x03, 0x00, 0x01, 0x02, 0x01, 0x0E, 0x47, // set POSLLH MSG rate

0xB5, 0x62, 0x06, 0x01, 0x03, 0x00, 0x01, 0x03, 0x01, 0x0F, 0x49, // set STATUS MSG rate

0xB5, 0x62, 0x06, 0x01, 0x03, 0x00, 0x01, 0x06, 0x01, 0x12, 0x4F, // set SOL MSG rate

//0xB5, 0x62, 0x06, 0x01, 0x03, 0x00, 0x01, 0x30, 0x01, 0x3C, 0xA3, // set SVINFO MSG rate (every cycle - high bandwidth)

0xB5, 0x62, 0x06, 0x01, 0x03, 0x00, 0x01, 0x30, 0x05, 0x40, 0xA7, // set SVINFO MSG rate (evey 5 cycles - low bandwidth)

0xB5, 0x62, 0x06, 0x01, 0x03, 0x00, 0x01, 0x12, 0x01, 0x1E, 0x67, // set VELNED MSG rate


0xB5, 0x62, 0x06, 0x08, 0x06, 0x00, 0xC8, 0x00, 0x01, 0x00, 0x01, 0x00, 0xDE, 0x6A, // set rate to 5Hz (measurement period: 200ms, navigation rate: 1 cycle)

Braucht es die 5 Nachrichten POSLLH, STATUS, SOL, SVINFO und VELNED. Mal kurz im uCenter geklickt und geschaut was so gesprochen wird ...

??:??:?? R -> UBX NAV-SOL, Size 60, 'Navigation Solution'
??:??:?? R -> UBX NAV-SVINFO, Size 28, 'Satellite Status and Information'
??:??:?? R -> UBX NAV-STATUS, Size 24, 'Navigation Status'
??:??:?? R -> UBX NAV-POSLLH, Size 36, 'Geodetic Position'
??:??:?? R -> UBX NAV-VELNED, Size 44, 'Velocity in WGS 84'

... macht 196 bytes pro Sekunde. Müsste also funktionieren?!
 

Knuspel

Erfahrener Benutzer
#6
Ich kann jedenfalls sagen dass es egal wie, einfach nicht klappt.

Habe mir also eine andere FC geholt mit mehr UARTs. Falls mal jemand auf das Thema hier stößt.
 

Spaceone

Well-known member
#7
Das klappt schon.
In Betaflight alles was Auto ist, auf aus. Speed fest auf 19200. Und ich nutze ein BN-220T der die Konfiguration im Flash speichern kann.
Den BN-220T an einen temporär freigemachten HW-UART anschliesssen. Nach dem Initialisieren durch Betaflight (Gallileo an), ohne den BN-220 vom Strom zu trennen, stecke ich den BN-220T an das Notebook und sende mittels Ublox einen "save" Befehl. Vorher habe ich den Speed noch auf 19200 runter konfiguriert.
 
Erhaltene "Gefällt mir": vantaro
FPV1

Banggood

Oben Unten