Skip to content

Broadcasting Sleepy Thread Device with a BME280 sensor on a Nordic nRF52840 Dongle (PCA10059). Programmed with nRF Connect for Desktop/Zephyr.

Notifications You must be signed in to change notification settings

Brezensalzer/ot-sensor-sed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ot-sensor-sed

Broadcasting Sleepy Thread Device with a BME280 (SHT40) sensor on a Nordic nRF52840 Dongle (PCA10059). Programmed with nRF Connect for Desktop/Zephyr.

As there is no support for OpenThread in Arduino, I'm trying my luck with the Nordic nRF Connect SDK/Zephyr. After struggling with the new concepts in Zephyr (device tree and overlay files), here is the first working example. It broadcasts a JSON datagram with temperature, humidity and air pressure data from a BME280 I2C sensor over UDP and goes to sleep for 60 seconds.

  • Unsolved mystery: The dongle sucks about 1.6 mA in deep sleep, but it should be about 5µA.
  • Changed the sensor to an Infineon SHT40. Power consumption is now down to 600µA - still way to much.

Giving up on low power with the Zephyr SDK. It's just not possible with its core concept of a device tree.

  • the i2c bus and the device (sensor) is exclusively initialized during boot.
  • there is no way to power-up/initialize a sensor device during runtime
  • there is no way to de-initialize/power-down a sensor device during runtime

So I'm in a limbo now:

  • I have working Arduino BLE Examples which run below 5µA in deep sleep - but there is no OpenThread Library for Arduino
  • I have a working Zephyr OpenThread Example which wastes 600µA in deep sleep - not usable in real world scenarios with battery powered devices

About

Broadcasting Sleepy Thread Device with a BME280 sensor on a Nordic nRF52840 Dongle (PCA10059). Programmed with nRF Connect for Desktop/Zephyr.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages