Second in the series of Würth’s add-ons for the Feather ecosystem is the Würth Sensor FeatherWing – featuring four of Würth’s own sensors on-board – those being the WSEN-PADS absolute pressure sensor, the WSEN-ITDS 3-axis accelerometer, the WSEN-TIDS temperature sensor and the WSEN-HIDS humidity sensor.
All of these are connected via an I2C bus to the main Feather board. There’s also support for two SparkFun QWIIC devices and two WE-Sensor devices, thanks to the four connectors (one of each is pre-mounted, and two more are supplied).
As with all FeatherWings, this board is compatible with a wide range of microcontrollers. We successfully tested it with M0, M4 and ESP32-based systems – and it worked flawlessly.
There are two separate interface libraries that can be used with this FeatherWing – the platform.io Arduino-like library and the classic Arduino library. We’ve tried both of these, and they are both excellent and offer all the main features of these sensors.
The platform.io library worked perfectly – and we managed to run all the examples without any hiccups whatsoever. The Arduino library (well, in reality, it’s four separate libraries that Würth has provided) doesn’t offer support for reading more than one sensor at a time/per sketch – so we decided to tinker a little and fix this.
Namely, certain methods were defined multiple times in separate library instances, so we’ve unified the four libraries into one to take care of this – while preserving all the examples in a new folder architecture. If using multiple stock libraries is required, it can be achieved by including the header file under a namespace. This process didn’t take too much time, though, so we don’t consider it a huge deal.
The example that we’ve created to show-off the multi-sensor capabilities of the board uses the HIDS sensor to measure humidity and the TIDS sensor to measure the temperature – as opposed to using one sensor for both. We needed to manually set I2C addresses before every readout due to the read_temperature() and get_Humidity() not being able to grab the proper address on their own. Again, this was a minor fix.
The sensors themselves are high-performance, but also offer low-power modes. The accelerometer especially impressed by being able to detect the tiniest taps to the surface the FeatherWing was sitting on, and the humidity, barometric pressure and temperature sensors were all capable of detecting minuscule changes in these parameters. Holding a hand near the temperature sensor, for example, managed to get the temperature readout to start climbing. The barometric pressure sensor was also impressive, detecting altitude changes of under 50 cm.
The aforementioned low-power modes of the sensors are also quite important for some applications. The sensors have two main modes of readout – continuous and “single conversion”. The former keeps the sensor on all the time, while the latter shuts down the sensor after a single readout, conserving power. Unlike most other sensors available for the Feather ecosystem, these each come with an ASIC on-board, managing their setup and data conversion, meaning that no processing needs to be done by the MCU aside from a few simple I2C commands.
Some of the sensors also have built in signal-processing circuitry, like a low-pass filter.
Overall, the Würth Sensor FeatherWing is truly a great little board, adding some of the best compact sensors we’ve seen in an attractive, affordable package, retailing for about $54. Software support still needs just a tiny bit of a touch-up, but for the more experienced makers and designers, this sensor pack will be a valuable addition to the prototyping toolkit.
Download the modiﬁed library and application code on the magazine’s github: https:// github.com/magazinMehatronika/WSENUNIFIED
More informations about Sensor FeatherWing: https://www.we-online.com/catalog/en/SENSOR_FEATHERWING