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!
Integrating External Sensors into Annex RDS – Best Practices?
-
- Posts: 1
- Joined: Mon May 26, 2025 9:19 am
- Been thanked: 1 time
Integrating External Sensors into Annex RDS – Best Practices?
- These users thanked the author getawaycar for the post:
- lyizb
- Rating: 3.85%
- 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?
Hi and welcome to the group![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!
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.
- 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?
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.
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.
-
- 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?
You can't beat hardware for filtering but it is possible with software too.[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?
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!
Re: Integrating External Sensors into Annex RDS – Best Practices?
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:[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.
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