RoadTest: Nordic Thingy:53 with Edge Impulse TinyML Solution
Author: emarte
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?: Some products/kits using TinyML such as Arduino Ble Sense to similar, not as powerful and versatile as this one but similar for some applications.
What were the biggest problems encountered?: Although it really worked great for what I did, this beast has a lot of documentation to start with. If you are not familiar with microcontrollers, some basic machine learning for applications using edge impulse, or haven't worked with some IoT technologies it could be a bit overwhelming as this device crushed all together
Detailed Review:
Hi Readers! This is My review
About Myself: I am a third-year Ph.D. Student in Electrical and Computer Engineering / Engineering Education at the University of Florida I have a lot of experience building embedded systems. I have worked programming in C/Assembly for several families of microcontrollers. I have used Machine Learning with Arduino and developed several projects using IoT.
Contact Information: email: marte.edwin@gmail.com | GitHub | Linkedin
Overview:
For this Roadtest I received one kit containing The Nordic Thingy:53 which is a versatile and powerful IoT device that provides developers with an excellent platform to create innovative applications. It has a compact design, a wide range of sensors, and most importantly machine learning capabilities which makes it an ideal tool for developing smart systems for various environments.
Among the most remarkable features of the Nordic Thingy:53 is its wide range of sensors, which include temperature, humidity, air quality, and motion sensors among others, and its seamless integration with edge-impulse helps to create machine learning applications in no time.
Unboxing:
The device is small and lightweight, with an appealing design. The first thing that caught my attention is that it does not come with a cable. Anytime I have a new board on hand the first thing I am looking for is how to plug it in and how to communicate with it. Usually, the first thing I do is grab the cable provided, plug it in, open the IDE if any, and fire the hello world application. For the thingy this is not the case, There is no cable, you have to provide your own USB-C cable for recharge.
The board comes with a 1350 mAh Li-Po battery which makes it suitable for portable applications. Another important feature of the battery is that the system also goes to sleep when no stimulus is received saving battery life. The device's low power consumption is a significant advantage, as it can run for extended periods, making it ideal for battery-powered applications.
In terms of connectivity, the Nordic Thingy:53 features and cloud connectivity and Bluetooth 5, enabling capabilities to connect to smartphones, laptops, or other devices. This feature makes it great to create IoT applications that can be controlled remotely, providing greater flexibility and convenience. With Bluetooth 5 connectivity is also possible to create mesh networks, allowing devices to communicate with one another, increasing the range and coverage of IoT systems. The Nordic Thingy:53's cloud connectivity also makes it easy to connect to the internet and transmit data to a cloud platform for further analysis.
Software and programming:
Three different software or apps are available for development and testing for this kit: the nRF Edge Impulse machine learning app, the nRF Programmer app, and the nRF Connect SDK. The Edge impulse Machine learning app makes it possible to create machine learning models through Edge Impulse making use of the available sensors, Wireless and seamless. This is the app I'll be using here in this road test. With the Programmer app, you can update the firmware anytime if needed and with the Connect SDK app, you can prototype and build your own firmware when needed.
More Product Information:
Creating a Machine Learning Project with the Thingy:53
For the first project test, I have decided to design a machine-learning motion sensor program capable of detecting different movement behaviors. Thingy:53 boasts a wide range of sensors that can be utilized in embedded machine-learning applications (a temperature sensor, a humidity sensor, an air quality sensor, an air pressure sensor, a color and light sensor, a 6-axis IMU (incorporating an accelerometer, and a gyroscope), a magnetometer, and a PDM (pulse density modulation) microphone). These sensors make it possible to collect data from the environment and use it to create intelligent applications. For instance, temperature and humidity sensors can be used to monitor the conditions of a greenhouse and automatically adjust the ventilation and watering systems.
It's worth mentioning that the SoC can be activated by two sensors - the microphone and accelerometer - in response to specific actions. For instance, the microphone might pick up sounds while the accelerometer might detect motion while the SoC is activated. These functionalities are useful for conserving power. Additionally, the board includes user-configurable push buttons, an RGB LED, and an SWF-style port for RF measurements when used with a spectrum analyzer. For this project, the motion sensor has been chosen.
For the project, I am using the nRF Edge Impulse machine learning app which is available for Android and iPhone. In my case, I was using an iPhone 13 Mini for reference. The application itself is user-friendly and allows anyone to configure and control the device's sensors and features easily. Once downloaded one’s has to logging using Edge Impulse credentials, this is an important step as the app integrates with the device making the data collection and Model testing seamless whether we are testing on the phone or the web.
For the project, I started using three different categories of movements: up-down, left-right, and another spider-boat-like movement. The results were not that satisfactory at first. I decided to remove one of the categories and kept only the first two to keep it simple. I was able to connect easily to the nRf Edge Impulse app and my credentials. The app has four options on the bottom beside the setting that help build the system. The most meaningful is data acquisition deployment and inferencing. Usually, they have to be executed in that specific order. In my case, the app kept disconnecting and I think because of that some of my data were not acquired perfectly. I read while writing this that that can be solved by re-uploading the firmware, this is a step I pretend to do and update my results.
All the testing can be done only in the app but to be honest I feel more comfortable doing the data collection in the Edge Impulse Web. For instance, for example, changing the data collection time from 10 secs to 1 sec was challenging on the phone while on the web I could type the value if I wanted to. Besides the Model has to be built on edge impulse web anyways.
For this particular test, I used spectral analyses and a neural network classifier with default values.
I got a 91% of efficiency in the system response. The left-Right movement got 100% while the up-right only an 89%.
After the system is done in edge impulse I proceed to use the Build option to deploy the model on the kit. After that the system was ready for inferencing and some testing.
The Project can be accessed here -> https://studio.edgeimpulse.com/public/209164/latest
Another Project:
For robotics enthusiasts probably building a line follower robot would be sort of the hello world for robotics. In that sense, I also wanted to try the capabilities of the thingy:53 for this task. I laid out some tapes of different colors on the table and used the color/light sensor of the kit to try to detect colors. For line follower robots this is a really important future as it will lead you to either move forward, turn or stop depending on the conditions of the challenge.
For this project, My goal is to detect the table, the black tape, the green color, and the blue tape. The idea behind this could be the following: Black means continue straight, and the table has to turn either left or right to find the back tape. Yellow is an indication to turn right, blue for turning left, and green to stop. I left some space between the sensor and the floor, normally the sensors are at a specific height and besides, there has to be some space so the light can be reflected. This project is not yet finished but I will update it as soon as possible.
Conclusions:
Finally, the Nordic Thingy:53 is a cost-effective option for IoT developers, as it provides a wide range of features and capabilities at an affordable price. This makes it accessible to a broader range of users, from hobbyists to professional developers. The Nordic Thingy:53 is a powerful and versatile IoT device that provides developers with an excellent platform to create innovative applications. Its wide range of sensors, machine learning capabilities, low power consumption, and cloud connectivity makes it an essential tool for creating smart systems. The device's user-friendly mobile application, Bluetooth 5 connectivity, and compatibility with Edge Impulse also make it easy to use and accessible to a broader range of users. Overall, the Nordic Thingy:53 is an excellent choice for anyone looking to develop intelligent IoT applications.