Working with AlgoBuilder – a tool to develop MEMS algorithms graphically


AlgoBuilder is a tool for Quick prototyping of applications for MEMS sensors on STM32 microcontrollers platform. It includes data processing blocks, additional functionalities, and already existing algorithms such as sensor fusion or pedometer.

AlgoBuilder enables to ease the process of implementing a proof of concept of MEMS-based algorithms using a graphical interface without writing the code. So an architect of systems can develop a proof of concept without knowledge of coding. Algorithm is very modular in approach. Developers can reuse previously defined blocks and even visualize the data in real time using plot and display tool can Unicleo-GUI.

The main feature of this application:

•Simple graphical design (drag and drop, connect, set properties)
•Libraries including motion sensor algorithms such as sensor fusion, gyroscope, and magnetometer calibration, and pedometer.
•Function block creator for custom block creation
•Automatic validation of the design rules
•C code generated from the graphical design
•Utilization of external compilers: STM32CubeIDE, IAR EWARM, Keil µVision®, System Workbench for STM32
•Outputs from generated firmware can be displayed in Unicleo-GUI application
•Open XML for function blocks and design storage
•Network update with an automatic new release notification

Architecture of AlgoBuilder

AlgoBuilder tool integrates firmware templates, sensors drivers, and sensor libraries. It integrates these blocks using the framework of XML and c codes and provider user a graphical user interface. AlgoBuilder tool has a provision to integrate external compilers which get seamlessly integrate for the compilation of any new user-generated code. Further, this tool allows the compiled program to be directly downloaded in compatible STM32 microcontrollers in Nucleo board ecosystems. Support for STM32 NUCLEO-F401RE, NUCLEO-L476RG with connected X-NUCLEO-IKS01A2 or X-NUCLEO-IKS01A3 expansion boards. AlgoBuilder also supports integrated tools such as SensorTile STEVAL-STLKT01V1 or STEVAL-MKSBOX1V1.

Algo Builder Principal

Libraries in Algobuilder

Library  Content
Buffers  Function blocks for operations with data buffers
Comparison  Function blocks for two value comparison (e.g. >, <, =, etc.)
Constants  Function blocks for constant definition
Display  Function blocks for data visualization in Unicleo-GUI application
FFT  Function blocks related to FFT analysis
Graphics  Text note to annotate the design
Logic Operators  Operators Function blocks for logic operations (e.g. And, Or, …, etc.)
Math Operators  Operations Function blocks for various mathematical operations (e.g. +, -, /, etc.)
Other  Auxiliary function blocks (e.g. mux, demux, type conversion, etc.)
Sensor Hub  Main Sensor Hub function block, which provides access to the sensors and pre-build algorithm and function blocks for data acquisitions from connected sensors.
Sequential Logic Logic Function block for sequential logic (flip flops)
Signal Signal Function blocks for signal processing (e.g. filters, etc.)
Subdesign  Input and output terminals for subdesigns
Temperature  Function blocks for temperature units conversion
Use Input  Function blocks which allow the user to send arbitrary data to the running firmware at real-time through Unicleo-GUI application
Vector Operations Function blocks for vector operation (e.g. calculate magnitude, etc.)


Steps to develop an example code on AlgoBuilder

Step 1:

Open AlgoBuilder and click on new design. User may also open a preexisting design.

Software Demonstrations 1

Step 2:

Start placing the blocks. Start with Sensor Hub block as it simulates the block with raw data of every sensor. Change the full-scale reading according to the application requirements. Full-scale reading is the maximum acceleration desired to be read from the sensor.

Software Demonstration 2

Step 3:

Add the block to read acceleration output from the Sensor Hub. The output of Sensor Hub goes into the input of the accelerometer block.

Software Demonstration 3

Step 4:

Add Graph block to visualize the accelerometer output on the Unicleo-GUI tool.

Software Demonstration 4

Step 5:

Add all the blocks in a similar way to develop the whole design graphically. Build the firmware to convert the C code into the compiled code.

Software Demonstration 5

Step 6:

Connect the compatible sensor hardware and program the STM32 on the hardware. After this step, the code is running inside STM32 microcontroller and interfacing with real sensors.

Software Demonstration 6


Step 7:

Open Uncileo-GUI using the button in AlgoBuilder and click on the start to run the application as mentioned in the picture below. Open the data visualization tool.

Software Demonstration 8

Step 8:

The relevant outputs generated in AlgoBuilder tool are now appearing in Unicleo-GUI. This tool can show out both in numbers as well as graphically. It also allows data to be logged for further analysis.

Software Demonstration 8


Sensors are essential components of IoT systems. Sensors provide the environment input to the IoT systems. Algorithms based on sensors are key element to utilize the sensor output according to application requirements. Working on embedded codes and sensors at the same time can be a daunting task sometimes. In an organization, a person who visualizes the algorithm and who indulge in coding may not be the same person.

AlgoBuilder enables developing algorithms for MEMS sensors graphically without coding knowledge. It is a great way to develop proof of concepts even before a single line of code is written.

For more information, visit

By: Mr. Vishal Goyal, Group Manager- Technical Marketing,

South Asia &  India,