Will Apache #NuttX OS talk I2C with Bosch BME280 Sensor? (Temperature + Humidity + Air Pressure) ... Let's find out!
Apache #NuttX OS doesn't have a BME280 Driver ... Let's test the BMP280 Driver instead (Air Pressure only)
We patch the I2C Address and Device ID in the #NuttX BMP280 Driver ... So it will work with BME280
https://github.com/lupyuen/bme280-nuttx#change-i2c-address-and-device-id
Here's how we register the BMP280 Driver at #NuttX Startup
https://github.com/lupyuen/bme280-nuttx#register-bmp280-driver
#NuttX BMP280 Driver fails because the detected Device ID is 0 ... Let's find out why 🤔
Logic Analyser shows that #BL602 sent the wrong Register ID to BME280 ... Let's fix this 🤔
Here's how we connected our Logic Analyser to PineCone #BL602 ... For testing the #NuttX BMP280 Driver
https://github.com/lupyuen/bme280-nuttx/blob/main/README.md#invalid-register-id
#BL602 has a peculiar I2C Port ... We need to send the I2C Sub Address (Register ID) separately from the I2C Data ... This might cause the BMP280 Driver to fail
Here's how we patch the #NuttX BMP280 Driver to send the Register ID as I2C Sub Address (instead of I2C Data)
#NuttX BMP280 Driver loads OK on #BL602 ... After setting the Register ID as I2C Sub Address! 🎉
https://github.com/lupyuen/bme280-nuttx#bmp280-driver-loads-ok
#NuttX BMP280 Driver appears as "/dev/sensor/baro0" ... Let's read the device
https://github.com/lupyuen/bme280-nuttx#bmp280-driver-loads-ok
We enable the #NuttX Sensor Test App ... To test the BMP280 Driver
#NuttX BMP280 Driver says it's 29 °C with air pressure 1,006 millibars ... Yep looks right for Sunny Singapore by the Seaside 👍
#NuttX BMP280 Driver works OK with our BME280 Sensor ... But we're missing one thing: Humidity ... Can we port the BME280 Driver from Zephyr OS? 🤔
https://github.com/lupyuen/bme280-nuttx#port-bme280-driver-from-zephyr-os
Zephyr BME280 Driver looks similar to #NuttX BMP280 Driver ... So porting Zephyr BME280 Driver to NuttX might not be so hard 🤔
https://github.com/lupyuen/bme280-nuttx#port-bme280-driver-from-zephyr-os
Zephyr BME280 Driver builds OK on #NuttX (with a few tweaks) 🎉 ... Now we wrap the Zephyr Driver as a NuttX Driver
https://github.com/lupyuen/bme280-nuttx#wrap-zephyr-driver-as-nuttx-driver
Our #NuttX Driver Wrapper wraps around the Zephyr BME280 Driver ... So it works like a NuttX Driver
https://github.com/lupyuen/bme280-nuttx#wrap-zephyr-driver-as-nuttx-driver
Enable the I2C Port and I2C Character Driver on Apache #NuttX OS ... So it will talk with BME280
https://github.com/lupyuen/bme280-nuttx#configure-nuttx