Since Enrico's webinar I've gotten interested in using the Nicla in a machine learning application. I looked at the Hackster project: Tiny ML Air Writing Recognition with Nicla Sense ME that Enrico mentioned which uses Neuton Tiny ML. I also tried building the model using the preloaded dataset example. The performance is pretty impressive - good accuracy and small model size. It can build and optimize models from raw data with little user intervention other than data preparation. Two things have prevented me from diving in - first is their pricing model and the second is the lack of integrated data acquisition.
You can try Neuton for free using the preloaded example datasets. If you want to use your own dataset you need to register for a Zero-Gravity account which requires a credit card. Apparently the Neuton service is free, but you need to pay for running on the Google Cloud Platform infrastructure. Costs seem sort of reasonable, but I want to understand it more before I hand them my credit card. I've got an inquiry in to understand the capability of controlling/limiting costs better. The biggest piece of the cost is server time for training (up to $4.82/hour). Apparently it may be possible to get a $300 credit to try it out. I'll wait to see what kind of experience others have.
In terms of data acquisition, I've been spoiled by Edge Impulse and SensiML providing data capture programs for supported devices. And their integrated capability to process/manage your datasets. It's possible that I just need to learn Neuton better.
In the process of doing Internet searches, I came across Edge.ML which appears to be a new startup affiliated with the Technology for Pervasive Computing, Karlsruhe Institute of Technology (TECO-KIT) in Germany. The thing that caught my eye is that they initially are focused on BLE devices - currently the Nicla Sense ME, Nano 33 BLE Sense, and ESP32s. They use a browser based framework that uses WebBLE for data acquisition from devices. This definitely seems like something that I want to try. I should point out that the front end seems to be pretty well developed, but the backend is a work in progress (beta).
The device data acquisition program for the Arduino boards is based on the Bosch BHY libraries that I've been using for the Nicla. Here is their github repo: EdgeML Arduino. You basically install their library in the Arduino IDE and upload an app to the device just like the app used for BHY_Host.
You need to create an account at https://app.edge-ml.org/.
Then create a project and upload some data.
When I first tried it, I could pair with my Nicla but it would not show that it was connected - reminiscent of my problems with BHY WebServer. I raised an issue on github and to my surprise I got a response within 5 minutes ! After a few rounds of troubleshooting we determined that the problem was not on my end. It turns out their server was running an old image. Took a couple of hours and everything was fixed.
When connected you get the choice of which sensors to include in the dataset.
And then view the recorded dataset and add labels.
I also tried this with the Nano 33 BLE Sense.
Overall, I like the data acquisition capability. Next, I'll need to explore how to build and deploy a model. The model building that I've seen uses Jupyter Notebooks, so not effortless like Neuton...
I've also seen a press release that SensiML now supports the Nicla Sense, so I'll need to check that out. It will be interesting to compare how these models compare with Neuton.