Betaflight & BMP280

GTChris

Well-known member
#1
HiHo Ihr lieben.

Ich hatte noch einige BMP280 aus einem anderem Projekt rumliegen, und dachte mir, dass ich doch einen davon in meinen 5" Quad bauen kann. Also kurz bei Github die Kompatiblitätsliste der Sensoren durchgeschaut und festgestellt: JA BMP280 kann an Betaflight betrieben werden und ist auf manchen FC´s sogar direkt an board. Auf meinem T-Motor HD F4 FC ist auch platz auf dem Layout für den blanken sensor.
Also kurzerhand mein Teststation rausgekramt, den BME280 an den I2C bus von dem darauf befindlichem Atmega gehäng und i2C scanner laufen lassen: Antwort auf 0x76. Schnell bmp280 code draufgeflasht und siehe da: Sensor geht und gibt Temperatur und Druck sauber aus.
Lange rede wenig Sinn: Der Sensor funktioniert definitiv aber an meine Flightcontroller leider nicht.

Verbunden ist er wie üblich mit dem I2C (SDA/SCL), GND und der 3V Schiene. In betaflight habe ich unter dem Configurationstab Baro aktiviert und im Zuge der Fehlersuche auch die Configuration über die CLI gemacht.
Was habe ich bisher versucht ?
- Baro getestet (check)
- Settings via CLi gesetzt: I2C Adresse, Baro Typ, Schnittstelle, Anzahl der I2C Teilnehmer.

Achja Betaflight V4.4 ist geflashed. Funktioniert wunderbar, erkennt nur leider immer noch nicht den Baro.

Hat jemand von euch ähnliche Probleme / Lösungen / Ideen ?


beste Grüße
 
#2
Eine Idee kann ich beitragen. Der F4 im Matek F405 hat z.B. zwei i2c Ports, einer ist ausschließlich für Baro, der andere für andere i2c Sensoren. Hier beschrieben:
(EOL)Flight Controller F405-WING – Matek Systems
Ich würde mal SDA und SCL vom Baro-Anschluss testen, wenn das für dich lötbar ist. Flussmittel sollte zur Hand sein, denn eine Brücke ist beim Handlöten ohne Flussmittel bei der Padgröße fast nicht zu vermeiden.
Im BF Code findet man möglicherweise auch Hinweise zu den i2c Ports.
 
Erhaltene "Gefällt mir": GTChris

GTChris

Well-known member
#4
Habe diesen FC verbaut: F4 (HD Version)_Flight Controllers_FPV_T-MOTOR Store-Official Store for T-motor drone motor,ESC,Propeller
Der hat nur einen I2C Port. Der zweite Port wurde vermutlich nicht vom uC aufs Board geführt. Da der Sensor via CLI konfigurierbar ist, dachte ich, das er nativ unterstützt wird. Aber ja guter Tipp. Hatte mir die Tage einen Fork von Betaflight gezogen, um das OSD Problem mit der DJI Air Unit anzugehen. Da werde ich mal nach dem script für den BMP280 suchen. Da ihn aber ein ganzer Haufen Fc´s und auch mein FC in anderer Version direkt on Board mitbringen, dachte ich, das wäre implementiert.
Hab leider @home kein SMD Lötwerkzeug (HeatGun etc) um dem BME280 direkt aufs board zu bringen.
Deswegen hängt er am I2C Port.

Tante EDIT sagt:
Habe gerade gesehen, dass man im Betaflight Konfigurator ne Build Configuration setzen kann, wenn man classicmode deaktiviert. Ich flashe morgen den FC mal neu mit der Option BARO. Evtl. hatte ich die beim letzten Update nicht mit dabei. Tatsächlich weicht auch meine I2C Adresse von den normalen BMP280 Modulen ab. Die hatte ich aber beim ersten versuch schon von hand / via CLI gesetzt.
1672177844809.png
 
Zuletzt bearbeitet:
Erhaltene "Gefällt mir": KM|fpv

GTChris

Well-known member
#5
Bringt leider nichts. Ich habe gerade neu geflashed mit Baro in der build configuration und auch die settings für den baro über die CLI gesetzt. Leider erkennt BF ihn trotzdem nicht. Laut Github scannt derFC auch nach i2C Adressen, wenn die Adresse auf 0 gesetzt ist. Aber auch das ist nicht der Fall.



Code:
Entering CLI Mode, type 'exit' to return, or 'help'

#
# Building AutoComplete Cache ... Done!
#
# set baro_bustype
baro_bustype = I2C
Allowed values: NONE, I2C, SPI, SLAVE
Default value: SPI

# set baro_hardware
baro_hardware = AUTO
Allowed values: AUTO, NONE, BMP085, MS5611, BMP280, LPS, QMP6988, BMP388, DPS310

# set baro_hardware = BMP280
baro_hardware set to BMP280
# set baro_i2c_address
baro_i2c_address = 0
Allowed range: 0 - 119

# set baro_i2c_address = 118
baro_i2c_address set to 118
# set baro_i2c_device
baro_i2c_device = 1
Allowed range: 0 - 5
Default value: 0
 

GTChris

Well-known member
#6
Got it!Baro is running!
Code:
# set baro_i2c_device
baro_i2c_device = 2
Allowed range: 0 - 5
Default value: 0
"baro_i2c_device" setzt die Nr. des I2C Ports!!!, an welchem der Baro hängt. Ist etwas ungünstig formuliert. statt baro_i2c_device hätte man es wohl baro_i2c_port nennen sollen. Der mit SDA/SCL gekennzeichnete I2C Port auf den meisten Boards ist Port 2 des uC. Port 1 ist in der Regel inaktiv und hängt auf den RX/TX Pins irgendeines Uart Ports. Kann aber auch genutzt werden, wenn der Uart Port frei ist.
 
#7
Moin moin in die Runde,

ich hänge mich hier mal dran. Zwar vermutlich nicht gleiches Problem aber es geht auch um den BMP280. :)

Ich habe den BMP280 auf dem FC.
Er wird anscheinend auch von Betaflight erkannt. (Hängt bei mir an i2c_device Port 1)
Im cli der Befehl 'status' spuckt ihn aus.
Im Konfigurator ist Barometer aktiviert, im OSD ist 'Höhe' ebenfalls aktiviert.
Allerdings steht der Wert in der Brille immer bei 0.

Bedeutet das Ding ist hinüber oder muss ich noch etwas konfigurieren?
Kann ich über die cli einen Messergebnis vom BMP280 anfragen?

Gruß
 

GTChris

Well-known member
#9
Das hängt am Code nicht am Board. das Board verbindet nur 2 Pads (I2C) mit dem uC und hängt noch zwei Pull up Widerstände dazu. wenn du im Sensors Tab den Baro hast, funktioniert er auch. Altitude zeigt er mir aber auch mit baro nicht an. Höhenangabe klappt auf 2-3m genau wenn man in der CLI
Code:
set position_alt_source = BARO_ONLY
setzt.


versuch mal:
set position_alt_source = BARO_ONLY

save
 
Zuletzt bearbeitet:
#12
Heho,

ich habe mit dem Copter auch noch ein Twitch-Problem auf der Yaw Achse ... Würde mich also nicht wundern wenn der FC generell eine Macke hat.

Ich habe Baramoter im Konfigurator eingeschaltet, im OSD die Ausgabe für 'Höhe' aktiviert.
Wenn ich fliege steht im OSD im Feld 'Alt' immer eine 0. Die Anzeige ändert sich auch nicht.

Altitude zeigt er mir aber auch mit baro nicht an.
Wie meinst du das? Hast du im OSD auch 0 stehen? Oder stehe ich auf dem Schlauch?
Ist nicht der Sinn des Barometers das ich die ungefähre Höhe angezeigt bekomme?

Ich werde deine Einstellung im cli mal testen.

Gruß
 

GTChris

Well-known member
#15
Jetzt habe ich ein neues Problem.
Leider bekomme ich über ELRS keine Höheninformation über die telemterie. offensichtlich hat man die höhe nur vom GPS, welches ich nicht verbaut habe. gibs nen umweg um die höhe des baros über die telemetrie auf open tx zu bekommen ?
 

Jo_Nopp

knowitnothing
#16
ist 4.4 schon ein offizielles Release oder noch Beta?
 

radla

Well-known member
#17
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten