RoadTest: STWIN SensorTile Wireless Node Dev Kit
Author: leven
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Dialog semiconductors DA14583 or DA14583 IoT Sensor Development Kits, ON Semiconductors IoT Development Kit, Silicon Labs Thunderboard Sense 2, But I think ST put the most and best sensors in this compact high-quality board.
What were the biggest problems encountered?: The biggest problem I encountered was that the highspeed datalogger example program seems to be very picky with the SD-card, at least with many sensors running at high sample rates.
Detailed Review:
The last few years I have been seeing more and more articles and talk about predictive maintenance, smart sensors, IoT and machine learning and AI. This development kit that also acts as a very comprehensive reference design is a good way for ST to demonstrate some of their high performance industrial sensors and allow for faster prototyping of new connected sensor nodes.
In the box is the STWINKT1 main sensor board itself, with an onboard BLE module but no WiFi. There is also a STLINK-V3MINI JTAG/SWD Programmer that can be used to program and debug on the processor on the STWINKT1 board, with the cable to attach them together. There is no USB cable, so you will have to provide two of those yourself, one for the STLINK and one for the STWINKT1. We also get a lithium ion battery, some nuts and screws to attach the STWINKT1 to the included case. Only I would rather call it a mount than a case as it leaves the board very exposed. I decided to solve this by designing and 3d-printing a cover for the included mount to turn it into something more similar to an actual case, hopefully without impacting the performance of the sensors too much. I have included the STL file for that cover in case anyone else needs it. The design of the cover was made easy thanks to the surprisingly extensive documentation of the kit, specifically the supplied mechanical CAD files for both the STWINKT1 board and the included partial case. Also lacking in package was the wifi module required to connect it directly to the cloud, for example Microsoft Azure using the supplied example.
{gallery} In the box, and case design |
---|
Before I started using it I studied the documentation, and there is A LOT of it. One issue I had with the quick start guide for the evaluation tool software seemed like it was a quick start guide for the whole board, but the firmware used in the quick start guide is not the same firmware as shipped on the board. The firmware the Quick Start Guide is for is the High-speed data logger, HSDatalog, firmware while the firmware actually on the board at the time of shipping is the predictive maintenance demo FP-IND-PREDMNT1. Both are available as downloads with both precompiled binaries and ready to use projects for the free STM32CubeIDE as well as for IAR and µVision. It is unclear to me why they ship one firmware on the board and made the otherwise good quick start guide for a different firmware. I think they could have made a similar quick start guide for the board as it is with the FP-IND-PREDMNT1 already on the board, as that firmware is easier to start up and play with to quickly see some of what the board can do.
{gallery} PREDMNT1 |
---|
As I mentioned the FP-IND-PREDMNT1 is the firmware that is on the board when it is delivered, so that was the one I tested first. I charged the included battery, downloaded and installed the STBLESensor application on my Android phone. After that it was just a matter of pressing the power button on the sensor board and paring it in the app. Once int the app and connected to the board you get access to the quick graphs and some simple analysis from the different sensors. I noticed that sometimes the board didn't want to connect to anything but i suspect that was due to low battery, or maybe some problem with the bluetooth stack or app on the phone. It would always find the sensor, but get stuck on “connecting” for several minutes until I gave up. Clearing the device cache in the app and rescanning didn't help. In the end I had to switch to using another phone to get it to connect reliably, from my Huawei P20 pro to my old Xiaomi mi6.
I recommend anyone interested to check out the documentation and source code on ST’s product site for this firmware:
The second firmware is a package with a four different firmwares and it can be found here together with the related documentation https://www.st.com/content/st_com/en/products/embedded-software/evaluation-tool-software/stsw-stwinkt01.html
The main one I’m interested in is the high speed data logger firmware. Others are one to demonstrate the WiFi connectivity that I don't have a module for, another is a BLE_SampleApp and the last is an example of how to stream sensor data to a pc via a USB Virtual COM Port class. The reason I wanted to use the SD-card was that is seemed like it should be the one to allow the highest sample rate of the most sensors with a big margin, but that could be wrong as I had big problems with this. After I unpacked the zip file with the source projects and precompiled binaries I had a look at the source, and tried compiling and debugging it and that worked. but when i tried changing the build target to release, without changing anything else, I got a compilation error so I think something in the configuration of the version I downloaded is wrong, but it is probably a minor issue with a file path or include. Since I had much I wanted to do I didn't spend more time trying to fix this and just used the included precompiled binary. I had some more problems with the programming finishing with errors, until I unplugged the USB cable and did it with the board running on its battery. I had the same issues with the BLE connection on this firmware, I could only get a stable connection to my mi6 and not the P20. Then I hit the next wall, that took away most of the time I had planned for the roadtest. The board, or maybe this firmware, seems to be extremely picky with the SD cards. First I tried with an 8GB Kingston C4 µSD card, the same as used in the user manual for the firmware package, formatted to FAT32 with 32KB allocation table according to the instructions. The board would crash every time I tried to start logging, no matter if i did it in the STBLESensor app or with the user button on the board. The LED would light up solid orange and it would not react to button presses and stop responding in the STBLESensor app. Once I managed to get a config file written to the card, but never any logged sensor data. I tried it with the USB cable connected, debugger connected, running only on battery, reflashed it a bunch of times and always the same result. So then I thought maybe there is an issue with the SD-card, and tried a 32GB SanDisk Ultra, not in the list but generally considered a good card and had the same results. Finally i managed to find an noname chinese 8GB SD-Card and thought “why not, lets try it” , and this time the orange LED flickered a bit before going solid and hanging, so I had some hope for this finally. Got in the app and turned off some sensors, and lowered the output data rate on others to try a much lower data rate. This got it working, the LED seems to be a busy indicator for the SD-card writes, and it would flicker during capture, and then light up briefly when finishing the log and then go off. I find this whole thing strange, there seems to be some severe compatibility issues with some or most µSD cards, or it is just completely infeasible to log all sensor data at the default rates to the SD-card, but that also feels strange. Would be nice with some warning about that, or even better some protection in the firmware from completely locking up and stopping to respond when trying to log too fast.
{gallery} STSW-STWINKT01 |
---|
When you have made some logs, or even before that if you just use the included example data provided, you can use the included matlab or python scripts to read the log files and plot the data. As I currently don't have matlab I can't test those scripts, but the plan was to use python to process the logs. Unfortunately I’m running out of time for the review so I’ll just show the plots from the included scripts. The readme for the script was a bit unclear which of the options are required and which are optional, but the command I used that works was “python HSDatalogPlot.py -a STWIN_001 -s all”. It worked for short logs, but apparently one has to be careful how much you log at a high speed if wanting to use these scripts, when trying a second time after logging just the mic and atmospheric data for about 30 minutes I got this error when trying to plot it, despite having 16GB ram, “MemoryError: Unable to allocate 768. MiB for an array with shape (100620000, 1) and data type float64”. Even just 10 minutes refused to open, I had to delete most of the mic data to get it to plot, and what little mic data remained appears corrupted.
{gallery} Logs from HSDatalog |
---|
The logs in the previous section are from a mix of heating up my 3d printer, and starting a print. I wanted to get some acoustic and acceleration data from a typical successful print and analyze that and compare it to data from failed prints, but that would require logging and analyzing a lot of data. The idea was that since I can easily hear most times when something goes wrong with a print due to warping or the print coming off the bed mid-print, it should be possible and a good demo project to use this sensor board to find the special crunching scraping sounds and send an alert when i’m not nearby.
I think the STWIN SensorTile Wireless Node Dev Kit is a very nice piece of hardware. I spent some time studying the schematics for the pcb, and it seems well thought out and provides a good place to start when designing a product using some of these components. They supply a good selection of demo firmwares and the scripts for analyzing logs. The supplied software is a good place to start, but there are limitations that could be better highlighted in the documentation and I had some different compatibility issues. The “How to use the STEVAL-STWINKT1 SensorTile Wireless Industrial Node for condition monitoring and predictive maintenance applications” Is a very good place to start and they walk through all the parts included in the package, and all the sensors on the board. It can be found -here- , or from the documentations tab on the ST product website. I included the cover I designed to protect the board, I it turned out rather nice, but the debug cable is unfortunately not possible to plug in while using it, but the USB cable plugs in fine. If you dont want to print the button extention a small screwdriver or toothpick can be used in the holes instead.Or maybe a flattened piece of filament.