I’ve been playing with an ESP32 and different i2c based sensors. I’ve tried a couple different IMUs and a color/proximity/gesture sensors.
So far they work well. The Arduino libraries provide good examples and I can get fast and easy communication to them through coap.
But…
Thinking about how these would be integrated with the RoboRIO I’d have to document how to integrate a coap library.
Since these are already network based I thought maybe I could utilize NetworkTables and just have the values available to the bot there.
My intent here is not to replace the Rev sensors. Those integrate a nice package for a minimal cost.
If made available in NetworkTables all the logging/display/ coprocessor access etc would “come for free”. Downside is the port of NetworkTables client to ESP32 / Arduino.
I think a very-ideal solution would involve a nice web-based UI to have the user tell the processor what device is plugged into each I2C port, and perhaps configure some sample rates or other settings on each. Then, the device broadcasts relevant data from each device on NT.
This functionality would probably be best done on a Raspberry Pi for ease of implementation. The STM32 device targeted in that repo was specifically for the intent of doing sensor fusion in real-time onboard, at a high sample rate.
That project is currently stalled pending other life priorities, and a lot of difficulty finding a permutation of hardware that could be manufactured for a reasonable cost.