Ethernet attached sensors NetworkTables or API?

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.

Thoughts?

NT4 all the things.

While far from complete or clean, I offer this as a starting point.

3 Likes

Thanks for the link!

I have an i2c lidar coming soon I hope to enable soon via Ethernet.

Any other suggestions? Maybe the Rev sensors themselves?

1 Like

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.

I thought about a Raspberry Pi but then decided against it. Supply issues make them really hard to get.

The esp32-ethernet modules are available and pretty cheap. The downside is no NetworkTables port.

Even a raspberry pi zero is hard to get. I did see some various SBCs out there with i2c. I’ll take a look some more.

maybe it could get those preferences by setting them as networktables entries?