Arduino, RFM95 and BME280 unstable temperature readings

I am building a LoRa client with the following configuration:

  • Arduino Pro Mini (8MHz, 3.3V)
  • RFM95 (SPI)
  • BME280 (I2C)
    powered directly from 2 AA Batteries (I removed the Voltage Regulator from Arduino).
    With lower RF Power everything seems to be fine, but with higher RF Power i see unstable temperature readings:

without rf95.send()
20:24:32.947 -> 24.25
20:24:41.216 -> 24.32
20:24:49.538 -> 24.14

Power +6db Temp
20:18:09.017 -> 24.47
20:18:17.340 -> 24.12
20:18:25.710 -> 23.64

Power +20db Temp
20:20:29.994 -> 24.35
20:20:38.363 -> 21.15 (!)
20:20:46.686 -> 18.14 (!!)

I guessed a power supply problem, but Voltage and Current seems to be OK (see attachment)
Did anyone have the same problem?

Strom_20db_130mA.jpg

Arduino_RFM95_BME280.jpg

Strom_20db_130mA.jpg

Arduino_RFM95_BME280.jpg

loraclient.ino (4.59 KB)

With lower RF Power everything seems to be fine, but with higher RF Power i see unstable temperature readings

So if instead of some low voltage AAs, what happens if you supply the circuit with a regulated 3.3v ?

It would be unusual to need to use 20dBm of power with a LoRa device, 10dBm which is often the legal limit for unlicensed use is normally plenty.

For the transmitter to affect the temperature reading you would assume you would somehow need to be reading the temperature when the transmitter is active.

If you read the temperature sensor, store the result, and then transmit the packet, its difficult to see how the transmitter power level could affect the sensor ....................

I tested it also with 3 AA Cells and the built-in voltage regulator of Arduino, but the same problem.
even with +10db power, i can see the temperature going down. It is getting worse the more RF power.

What i dont understand is, there are 8 seconds between readings (see above table), and the during readout of BME280, the RFM95 should be still sleeping...

What you seem to be suggesting is that the code or microcontroller that is reading the sensor can see into the future and somehow knows your later going to turn on the transmitter and thus increase the current consumption from the battery\regulator.

I solved the problem:
now I use the BME280 library from https://github.com/finitespace/BME280 instead of Adafruit_BME280_Library.
I get stable and acurate readings with all RF Power settings...
@srnet: thank you for your inspiration :slight_smile:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.