SensiML Analytics Toolkit uses AI to build edge sensor inferencing models using labeled train/test data to establish features, weights, and parameters for subsequent modeling in the AutoML engine. For this process to work, it is imperative to generate a sufficient volume of labeled training and test data from devices with behavior and sensor characteristics consistent with the intended predictive device.
While it is always possible with SensiML to collect this train/test data by whatever means possible and then import it as CSV data, often the most convenient and efficient means is to acquire this data directly within the SensiML Data Capture Lab (DCL) application in a device connected capture session. Doing so requires DCL to receive properly formatted data from the device firmware which is then responsible for:
Initializing and setting all sensor channels to desired gain, offset, calibration, and sample rate. This is done using hardware sensor drivers either written by the user and conforming to datasheets from the sensor IC vendor or using reference code supplied by the sensor IC vendor.
Setting up recording sessions with the set of sensors to be included in the sample frame.
Starting and stopping data acquisition from messages received from the controlling host system running the DCL application
Reading the sensor(s) at the appropriate sample rate and buffering these sample frames into a queue for local flash datafile storage or real-time streaming to the DCL
Transmitting buffered live stream or file stored sample data to the host system.
Resetting the device and clearing buffers and memory to restart the process for additional capture sessions.
Data Capture Lab Integration¶
The SensiML Data Capture Lab supports two Live Streaming Interface Specifications. To get started quickly, we recommend the Simple Streaming Interface. If you need more advanced command and control of your sensors, we support a version of MQTT messaging protocol known as MQTT-SN to send and receive all command, control, and data messages between the host system and the embedded device. The full protocol for communicating with Data Capture Lab can be found in the SensiML Interface Specification Documentation.
For your custom firmware to interact with the Data Capture Lab, you will need to create a configuration file which defines sensors, logical groupings, supported sample rates and full scale sensor gains, sensor channel names, communication settings, and various other configurations necessary for DCL to initialize and communicate with the custom device.
Full details for how to configure the JSON file and successfully import your settings can be found at the following documentation.
To aid in the development of writing firmware required by the user, existing reference implementations in source code form are available for the supported off-the-shelf dev boards and may be revised as needed by the user. At present writing, such reference implementations include:
QuickLogic QuickFeather (an Industrial IoT eval kit from QuickLogic based on their EOSS3 MCU+FPGA SoC)
STMicro SensorTile.Box (second generation IoT eval kit from STMicro for the STM32L4)
Arduino Nano33 BLE Sense (IoT Dev kit from Arduino)
Nordic Thingy52 (an IoT eval kit from Nordic Semi based on their nRF52 MCU)
QuickLogic QuickAI (an Industrial IoT eval kit from Quicklogic based on their EOSS3 MCU+FPGA SoC)
QuickLogic EOS S3 “Chilkat” (a wearable/consumer IoT eval kit from QuickLogic based on their EOSS3 MCU+FPGA SoC)
STMicro SensorTile (an IoT eval kit from STMicro based on their STM32L4 MCU)