SensiML Analytics Toolkit comes preconfigured to build AI sensor models directly for a variety of third-party embedded sensor evaluation kits such as those from Nordic Semiconductor, STMicro, and QuickLogic. Such kits are a great way to explore new application concepts and build early prototypes. Inevitably though, such kitted proof-of-concepts give way to need to customize sensors and/or substitute standard eval boards with custom board designs tailored to a specific end-use application. Such modifications may include one or all of the following:

  • Similar types but different models of sensor ICs from those included in off-the-shelf eval boards

  • Different types of sensors not included in eval kits (ex. Flow sensors, PIR, loadcells, strain gauges, pressure sensors, etc.)

  • Custom or proprietary embedded boards for unique needs and during product development (ex. Customer’s own prototype of an MCU/sensor device)

Given the limitless combination of MCUs, sensors, and board layouts possible, this document describes the protocols, supporting documentation, and reference code needed for SensiML users to adapt their customized board firmware and SensiML software configuration to properly interface and work in a manner consistent with the supported evaluation kits.

Steps Required

Connecting your custom sensors and/or hardware to SensiML software involves three tasks:

  1. Updating device data collection firmware that conforms to the either the SensiML Simple Streaming Interface or the SensiML MQTT-SN Interface Specification to collect sensor data from the target device in the Data Capture Lab

  2. Creating a SensiML Data Capture Lab Device Plugin to allow SensiML to recognize and properly handle custom data received from the user-specific device

  3. Linking and compiling your resulting device inference model into firmware incorporating the AutoML model from SensiML Analytics Studio with needed user-supplied sensor libraries and your own post-processing application logic

  4. (Optional) Interfacing with SensiML TestApp, an application used to display and log real-time results from a device containing a completed SensiML Knowledge Pack inference model. Typically, TestApp is used to confirm an ML model built using the SensiML toolkit is performing as expected once flashed to the target embedded device. This step is listed as optional since users may prefer other means for displaying the output of on-device model processing that may include user-specific post-processing beyond the scope of the basic classifier output as shown in SensiML TestApp.

The remaining sections of this Application Note describe where to find the specific documentation and reference code needed to complete each of the above steps.