BME280 optimal mit MicroPython ansteuern

Hi Didi,

ja, Glitches aufgrund von Schluckaufs beim Sensortreiber o.ä. sollten wir auf jeden Fall minimieren und falls doch welche durchkommen, ggf. komplett wegfiltern können. Hierfür könnten wir uns auf industrieübliche(?) [1] Wertebereiche einigen, um festzulegen, was “plausibel” genau für designiert gültige Werte bedeuten soll.

Bzgl. des BME280 schnappte ich neulich auf, dass dort bereits ein IIR-Filter eingebaut sein soll.

Viele Grüße,
Andreas.


  1. Vielleicht gibts dafür ja bereits (halb-)offizielle Vorschläge, was so die üblichen Wertebereiche von °C, %hum, hPa, kg, you-name-it pro Einheit in unserer Anwendungsdomäne (environmental monitoring/sensing) angeht. Ansonsten nehmen wir halt den gesunden Menschenverstand zur Hilfe – der aber natürlich auch manchmal täuschen kann. ↩︎

Zumindest hört sich das für mich selbst sinnvoll an, hierfür kurzerhand einen diskreten Bandpass-artigen Filter zu verwenden. Ich bin da allerdings nicht sattelfest, haut das deswegen gerne vom Tisch, falls das irgendwie nonsense ist.

Hierzu wollte ich noch loswerden, dass der aktuelle Softwarestand im Repository in diesem Bereich noch etwas an den Feinheiten verbessert haben könnte, daher freue ich mich über die nächsten "Langzeit"tests von @MKO und @clemens. Wir hoffen, dass durch die kürzlich erfolgten Änderungen an den entsprechenden Routinen bei den DS18B20-Sensoren [1] und hier beim BME280-Sensor die Situation noch ein wenig verbessert wurde.


  1. Untersuchung und Verbesserung des Timings bei der Ansteuerung der DS18B20 Sensoren unter MicroPython ↩︎

BME280 forced mode recap

Wir haben gerade folgende Spur entdeckt.

Investigation

While the BME280 datasheet outlines on page 15 that

3.3.2 Sleep mode

Sleep mode is entered by default after power on reset.

we recognize the canonical libraries explicitly put the sensor into sleep mode when starting up

before further manipulating the control register in order to enable forced mode.

In contrast to that,

might actually put the sensor into normal mode, eventually ignoring the successive enablement of the forced mode.

By the way, the predecessor(?) driver GitHub - catdog2/mpy_bme280_esp8266: Driver for the Bosch BME280 for use with MicroPython on ESP8266 boards is acting in the same way here.

References

>>> bin(0x3F)
'0b111111'

Outlook

We just created a ticket with the upstream repository in order to hear what @robert-hh thinks about our findings.

2 Likes