Update February 11, 2019:
This article is about the LSM6DSO, the first inertial sensor with 16 Finite State Machines. We also have another blog post about the LSM6DSOX, the first inertial sensor with 16 FSM and a decision tree. You can also learn more about the LSM6DSOX on the ST website.
Original article published on April 11, 2018:
The LSM6DSO is our first 3D digital accelerometer and gyroscope integrating 16 finite state machines (FSM) to completely transform what a sensor can process without the help of a host microcontroller (MCU) thus optimizing its operations and power consumption. Hence, its high-performance mode only requires 0.55 mA, while the accelerometer alone in low-power mode demands 26 µA and the ultra-low-power mode requires only 9.5 µA maximum, making it one of the motion-tracking systems with the best power-to-performance ratio. Ultimately, this new inertial sensor is a game changer because it enables always-on operations that were just too costly on small mobile products. The FSMs allow for detection of certain motions or gestures at minimal cost to the power consumption of the overall design, thus opening the door to faster and more accurate user experiences.
The new sensor is highly symbolic because it brings us one step closer to the integration of A Machine Learning Processor (MLP) in MEMS. Indeed, as we saw in April 2018, the LSM6DSO is a precursor to the LSM6DSOX that will include a decision tree capable of running complex algorithms to process information a lot faster without the need for an external MCU. According to the white paper that was the driving force behind the LSM6DSO, the decision tree will also use the available FSMs to inform the MLP and prevent misinterpretations. Hence, the LSM6DSO is fundamental because it prepares the way for Artificial Intelligence in embedded systems and gives developers the ability to start working on these popular features before they become mainstream. The new device is thus a fantastic stepping stone into the applications of tomorrow, which explains why we made these features so accessible.
Unico GUI: Who Said Working With 16 Finite State Machines Was Hard?
To help developers take advantage of the features of the new part number, including the finite state machines, we offer the STSW-MEMS034 or Unico Lite, a graphical user interface (GUI) that enables them to configure registers, see the sensor’s behavior on a chart, and export settings in a header file to include in the source code of an application. The tool even offers an “Easy Configuration” with default settings so engineers can start experimenting with the component faster and test it for their system. Additionally, this software is highly valuable because it can save the data from the register to help developers reproduce certain situations. Hence, they can record a series of data from the registers, save them to a file, then load it to replay the movements previously recorded while tweaking the sensor’s response.
This feature is particularly useful when it comes to finite state machines. Unlike a traditional computer, FSMs hold a finite number of states or outputs in response to a particular input. Hence, they need very little memory or computational resources because they are incredibly efficient, but their capabilities are also minimal. In the case of a sensor, an FSM waits for specific data to arrive from the sensing element within a particular time frame. If these conditions are met, then the machine will throw an interrupt that will alert the system, enabling the MCU to respond accordingly. The Unico Lite GUI assists engineers by giving them a graphical representation of the machine by using a workflow model so they can more easily configure it. Moreover, we also provide FSM examples that they can use to start experimenting right away.
FSM Examples: Who Said Implementing Features Using 16 Finite State Machines Was Complex?
It’s easy to see that ST not only provides a component that will help engineers take advantage of an entirely new design paradigm, but we even ensure that those with no experience in the matter can learn quickly. Indeed, we provide FSM examples so developers can immediately test a machine and see how to configure it. For instance, we offer an FSM capable of detecting when the user picks up a product. Hence, programmers can load the example, write it onto the sensor, and start experimenting with it right away by changing threshold values or timers, for instance. Otherwise, they can replay a series of events from a text file containing the values from various registers to see if the FSM would respond appropriately and throw an interrupt at the right moment.
Under its hood, the Unico Lite GUI is also extremely powerful and reflects the impressive architecture at the heart of the LSM6DSO. For instance, developers can define 16 independent FSMs or one giant machine that combines the 16 models or something in between. This ability to concatenate automatons enables developers to create more complex detection systems. Some of our engineers in Korea developed an FSM that can detect the time and the height of a fall to inform the system, which was something that surprised our Research and Development teams who hadn’t thought of such an application. The beauty of the Unico Lite GUI and the LSM6DSO resides in its ability to go much further than the application examples and easily share FSMs with the community by merely exporting configuration files.
LSM6DSO: Who Said Accelerometers Couldn’t Get Smarter and More Powerful?
The inertial module itself becomes a lot more powerful and accurate while also lowering the overall power consumption since it relies less on a host MCU. This is possible because of the work that we did on the ST Motion Processor that we integrated inside the device. We completely changed its architecture to ensure that it would be able to run the FSMs, set them up, or group them according to the developer’s settings. Previously, the processor had a much more basic role and would process the signals before sending them to the MCU.
Additionally, we also made the sensor more powerful by compressing FIFO (First In First Out) register data to store three times more information than on previous architectures. The smart FIFO collects data from the sensors while the MCU and the rest of the system sleeps. It’s a way to save energy since the external host only needs to wake up once the registers are full or the microcontroller receives an interrupt. Hence, not only can the LSM6DSO store more data, which means that the system can stay in sleep mode longer, but its I3C protocol can transfer the data out faster, thus putting the MCU back to sleep quicker.
The practical applications are thus game changing. For instance, smartwatches have tiny batteries that force developers to keep their system in sleep mode longer and use aggressive wrist tilt algorithms to avoid false positives. Unfortunately, it can mean that the screen doesn’t turn on if the movement from the user isn’t as sharp and pronounced as the system expects it to be. By offering such a low-power consumption and such computational throughput, sensors like the LSM6DSO allow developers to use more lenient detection systems that will recognize more natural movements.
STEVAL-MKI196V1: Who Asked How to Get Started?
The best way to start experimenting with the LSM6DSO is with the STEVAL-MKI196V1, a daughter board integrating the MEMS that will significantly hasten the prototyping phase as its schematics will show exactly how to port it to a final PCB. The board uses a DIL 24 socket, which makes it compatible with the STEVAL-MKI109V3 motherboard. Engineers need to insert the sensor board onto the platform and connect it to a Windows machine using the onboard USB port to enjoy the Unico Lite GUI. Moreover, teams that want a more comprehensive solution can use the BlueNRG-2 Tile, which made our 2018 ST Gift Guide because it offers such a breadth of sensors and RF that it is indeed a gift for anyone working on IoT projects.
- Learn more about the LSM6DSO
- Download the STSW-MEMS034 Unico Lite GUI
- Check out the STEVAL-MKI196V1 daughter board
- Look into the STEVAL-MKI109V3 motherboard