SA Engine Nano
SA Engine Nano is a small-footprint version of SA Engine for use on small hardware such as microcontrollers.
Platforms and installation
SA Engine Nano can be ported to any target hardware that has a C99 compliant C compiler.
Porting to customer-specific microcontrollers can be carried out in collaboration projects with Stream Analyze. A porting normally consists of two parts:
- an executable of SA Engine that has been compiled for the platform
- a C program that handles the SA Engine life cycle and passes relevant signals to SA Engine
These are put together in a package that is installed using the normal procedure of the respective platform.
Recommended storage space
The executable of SA Engine Nano takes up around 17 kB of RAM and around 200-400 kB of flash memory.
The microcontroller also needs to have space for the C integration code, and for the analysis models that are deployed to SA Engine. The size of the model code depends enterily on the model, from a few kB for a simple model up to a few hundred kB for a larger neural network.
A general recommendation is to have in total 64-256 kB of RAM and 256kB-1MB of flash available.
Interacting with SA Engine Nano
When using the full version of SA Engine on an edge device, it is possible to write queries and functions directly in the edge device. The most common way of working is however to connect the edge SA Engine over ethernet to an SA Federation and interact through a client interface.
SA Engine Nano does not contain the SA Engine optimizer and compiler. Instead it is connected to an SA Federation through a relay instance of SA Engine called SA Twin. The twin optimizes and cross-compiles all queries before sending them to the nano edge. The microcontroller edge is connected to the computer or device that runs SA Twin through a serial cable.