Hei,
I am trying to design a sensor network infrastructure for environmental noise and air quality measurements. There is a brilliant project with similar focus which is doing noise measurements with a Teensy 4.0 and providing data through a software I2C slave. As a controller platform I am considering Raspbian and OpenWrt. While the Rapsberry platform has the advantage of offering a lot of headroom for applications like ADS-B flight transponder data collection, the OpenWrt on a small travel router with USB connector is easier to set up for technically not so interested user. Ideally the transfer protocol could be used in both approaches.
How to transfer measurement data from the Teensy to the controller? While I2C works fine for the Raspberry it does not generally for the OpenWrt hardware. Furthermore it requires additionally wiring. The easiest way from a hardware side of view would be to use the USB interface. The Teensy would have just a single micro USB connector for power supply and data transfer to the host. Now, OpenWrt does not have a wide USB device support. There are no drivers packages to make the Teensy with its vendor ID 0x16c0 known to the system. Thus it is tempting to make use of a USB device/solution that is supported. Three categories come to my mind:
Does this approach make sense or are there much better solutions for getting a set of I2C sensors connected to an USB consumer?
Greetings,
buv
I am trying to design a sensor network infrastructure for environmental noise and air quality measurements. There is a brilliant project with similar focus which is doing noise measurements with a Teensy 4.0 and providing data through a software I2C slave. As a controller platform I am considering Raspbian and OpenWrt. While the Rapsberry platform has the advantage of offering a lot of headroom for applications like ADS-B flight transponder data collection, the OpenWrt on a small travel router with USB connector is easier to set up for technically not so interested user. Ideally the transfer protocol could be used in both approaches.
How to transfer measurement data from the Teensy to the controller? While I2C works fine for the Raspberry it does not generally for the OpenWrt hardware. Furthermore it requires additionally wiring. The easiest way from a hardware side of view would be to use the USB interface. The Teensy would have just a single micro USB connector for power supply and data transfer to the host. Now, OpenWrt does not have a wide USB device support. There are no drivers packages to make the Teensy with its vendor ID 0x16c0 known to the system. Thus it is tempting to make use of a USB device/solution that is supported. Three categories come to my mind:
- Plain serial
- Modbus
- I2C gateway
- Modification of usb_desc.h (and usb_desc.c?) using the VID and PID of the I2C-Tiny-USB project
- Writing a USB gateway class
Does this approach make sense or are there much better solutions for getting a set of I2C sensors connected to an USB consumer?
Greetings,
buv