Ekkono Crystal is a software library for microcontrollers with a subset of the functionality of Edge:

Hello World Example

Loading a model and predicting once.

 1  #include "crystal/crystal.h"
 2  #include "crystal/portable.h"
 3  ek_status_t status;
 4  ek_model_handle_t model;
 6  unsigned char mlp_model_data[] = {0x010x000xb40x01, ..., 0xf10x94};
 7  float instance[] = {1.07f-0.32f209.22f0.00f};
 9  model = ek_model_load(mlp_model_data, &status);
10  float prediction = ek_predict_and_train(model, instance);


Compiler compatible with C99.

Main Features

  • Variety of model types that are adapted for the edge machine learning environment
    • Predictive modeling
      • Linear Regression
      • Multilayer Perceptron
    • Unsupervised learning
      • Change detector
  • Preprocessing pipeline for streaming data
    • Saved and loaded with the model. No setup required in the implementation code.
    • Automatically buffers observations for signal lags, differencing and moving averages.
  • Model decorators for continous error estimation or concept drift detection.

Only multilayer perceptron models support incremental learning.

Intended Use

Crystal is intended for platforms that are too small to support Edge, often smaller microcontrollers. The library is delivered as source code which you can compile for your target platform.