Integrating External Sensors into Annex RDS – Best Practices?

If doesn't fit into any other category ....
Post Reply
getawaycar
Posts: 1
Joined: Mon May 26, 2025 9:19 am
Been thanked: 1 time

Integrating External Sensors into Annex RDS – Best Practices?

Post by getawaycar »

Hi all,
I’ve been experimenting with Annex RDS on ESP8266 and I’m really impressed by how quickly I can get a GUI and I/O running. Now I’m looking to expand my setup by integrating a few external sensors — particularly I2C devices like the BME280 and some analog inputs.

Before I dive deeper, I’d love to hear from those with more experience:

Are there recommended ways to manage multiple I2C devices without running into address conflicts or stability issues in Annex?

For analog readings, have you found any methods to improve stability or filter noise using only built-in Annex tools?

Thanks in advance!
These users thanked the author getawaycar for the post:
lyizb
Rating: 3.85%
 
User avatar
cicciocb
Site Admin
Posts: 3237
Joined: Mon Feb 03, 2020 1:15 pm
Location: Toulouse
Has thanked: 645 times
Been thanked: 2281 times
Contact:

Re: Integrating External Sensors into Annex RDS – Best Practices?

Post by cicciocb »

[Local Link Removed for Guests] wrote: [Local Link Removed for Guests]Tue Jun 10, 2025 7:53 am Hi all,
I’ve been experimenting with Annex RDS on ESP8266 and I’m really impressed by how quickly I can get a GUI and I/O running. Now I’m looking to expand my setup by integrating a few external sensors — particularly I2C devices like the BME280 and some analog inputs.

Before I dive deeper, I’d love to hear from those with more experience:

Are there recommended ways to manage multiple I2C devices without running into address conflicts or stability issues in Annex?

For analog readings, have you found any methods to improve stability or filter noise using only built-in Annex tools?

Thanks in advance!
Hi and welcome to the group!

There aren't specific limits on the kind or number of I2C sensors you can connect to an ESP8266. However, you'll need to manage I2C addresses carefully to prevent conflicts, a common consideration for any I2C project. Fortunately, many I2C devices allow you to change their default address using pin strapping, so this usually isn't a major hurdle. You can find a helpful I2C scanner program in the documentation to identify connected devices.

When it comes to analog capabilities, the ESP8266 is quite limited. It features only one 10-bit ADC pin, and its readings can be noisy. The input voltage range is typically 0-1V, though many development boards include a voltage divider that extends this to 0-3.3V. For more robust analog measurements, you'll likely need an external I2C ADC like the ADS1115.

If you're just starting, I strongly recommend using an ESP32 instead. ESP32s are significantly more powerful, have more memory, and are fully supported by Annex (unlike the somewhat obsolete ESP8266). The ESP32 version of Annex RDS, in particular, supports many more sensors right out of the box, and the cost difference is negligible.

Regarding the ADC on the ESP32, it offers more input pins and a 12-bit resolution. However, in practical terms, the integrated ADC can still be unreliable and noisy, largely due to interference from the chip's RF components. Therefore, if your project requires precise and reliable analog inputs, I still suggest using an external ADC like the ADS1115.
User avatar
karlkloss
Posts: 359
Joined: Fri Aug 18, 2023 12:21 pm
Location: Local group
Has thanked: 62 times
Been thanked: 86 times

Re: Integrating External Sensors into Annex RDS – Best Practices?

Post by karlkloss »

It should also be mentioned, that the ESP32's I2C pins can be mapped to nearly every IO pin.
So, should you have I2C devices with the same addresses, just use a separate port pin for SCL for each of them, and switch them accordingly before talking to the devices.
BeanieBots
Posts: 586
Joined: Tue Jun 21, 2022 2:17 pm
Location: South coast UK
Has thanked: 341 times
Been thanked: 189 times

Re: Integrating External Sensors into Annex RDS – Best Practices?

Post by BeanieBots »

[Local Link Removed for Guests] wrote: [Local Link Removed for Guests]Tue Jun 10, 2025 7:53 am For analog readings, have you found any methods to improve stability or filter noise using only built-in Annex tools?
You can't beat hardware for filtering but it is possible with software too.
A simple but effective method is a simulated running average.
Vave = (Vave*N + Vnew)/(N+1) where N = number of samples.
Lookup "Kalman Filter" for more complex methods but it's not simple!
lyizb
Posts: 308
Joined: Fri Feb 12, 2021 8:23 pm
Has thanked: 162 times
Been thanked: 117 times

Re: Integrating External Sensors into Annex RDS – Best Practices?

Post by lyizb »

[Local Link Removed for Guests] wrote: [Local Link Removed for Guests]Tue Jun 10, 2025 7:53 amNow I’m looking to expand my setup by integrating a few external sensors — particularly I2C devices like the BME280 and some analog inputs.
Welcome to the forum. Annex is great for working with I2C devices. I would echo Francesco in saying that you'd be far better off in extending your use of Annex if you start with ESP32 devices--I use S2Mini, C3Supermini, and S3Zero a lot:

S2Mini: https://www.aliexpress.com/item/1005004569194019.html
C3Supermini: https://www.aliexpress.com/item/1005006406538478.html
S3Supermini: https://www.aliexpress.com/item/1005006406538478.html

If you're interested in the LVGL graphics extensions which Francesco is working on now, the S3Zero of S3SuperMini are the best compact options.

When working with I2C, I've found this I2C scanner code useful:

Code: [Local Link Removed for Guests]

'I2C Address Scanner (Annex)
'print in the console the address of the devices found
I2C.SETUP 37, 35  ' set I2C port on pins 21 and 22 (sda,scl)

for i = 0 to 120
  i2c.begin i
  if i2c.end = 0 then
     wlog "found "; i , hex$(i)
     pause 10
  end if
next i

wlog "Done"
end
(Of course you need to set the correct I2C pins for your hardware.)
Post Reply