Low-power Machine Learning and Beacons: Interview with Alex

Today we recorded a short interview with Alex, who is our software engineer for “IoT machine learning”.

Alex is developing both firmware for embedded systems, such as Leantegra beacons, and advanced machine learning algorithms, which run directly on microcontrollers (e.g. ARM Cortex-M0). He is dealing with C, C++, assembler and sometimes Python for his coding activities.

In our latest firmware for Leantegra WiBeat beacons we achieved a major reduction in power consumption, which enables BLE transmissions, RTLS and motion tracking within several micro-amps. This is almost 1000 times less than in a default configuration for BLE beacon with accelerometer.

Right now we have the following characteristics in place:

  • Always-on 12 Hz accelerometer for motion tracking: both sleep modes and active modes.
  • 4 micro-amps for the sleep mode, 200 micro-amps for BLE TX operations.
  • Adaptive blink rate for BLE advertising, according to the motion recognition events.
  • No raw accelerometer data via BLE advertising, just the recognized motion events.
  • No float variables and functions in the machine learning algorithms – refactored to use integers through the hash tables only.

But let’s get back to the interview itself …

Interviewer:

Alex, so can you please tell about your activities related to machine learning and power optimization for BLE beacons?

Alex:

Yes, with pleasure. I’m dealing with designing and implementing the motion recognition algorithms for Leantegra beacons. Plus, some firmware optimizations for reducing the overall power consumption. This is especially important for BLE beacons, which need to operate for years on a single battery charge.

Interviewer:

Interesting, so you’re adding the motion recognition features to BLE beacons for making them smarter and less power-hungry?

Alex:

Yes, less power-hungry and more optimal for motion tracking and RTLS. Again, this is not only about prolonging the battery life, but also enhancing RTLS accuracy via motion tracking and the so-called “sensor fusion”.

Interviewer:

Sensor fusion? Can you please elaborate a bit more?

Alex:

The default approach to RTLS using BLE is prone to inaccuracies, such as famous “jumping dots” on a map. This is when your dots are jumping even when you’re not moving. Trajectory of your motion is not accurate too, unless you will mix the motion data with your BLE RTLS calculations. This motion data might come from accelerometers or more advanced 6-axis or 9-axis motion sensors. But mixing the motion data with RTLS requires both advanced filtering algorithms and some power optimization features.

Interviewer:

So are you saying that the motion sensors are useful for BLE beacons and RTLS, but consume a lot of power? And reduce the battery life?

Alex:

Yes, especially 6-axis and 9-axis motion sensors, which have gyroscope on board. Without power optimizations your BLE beacons might live for 1 week on a single battery charge. All benefits from the motion sensors will simply disappear, if you will not consider the question of power optimization.

Interviewer:

And most likely BLE transmissions should be reduced too, right? That’s why you decided to transfer the motion recognition events, instead of the raw accelerometer data via BLE, correct?

Alex:

Exactly. There are some BLE trackers and beacons on the market, which transfer all “raw measurements” from their accelerometers. This approach is a real issue for power consumption. More than that, typical transmission rates for BLE advertising (e.g. iBeacon advertising) are from 300 msec to several seconds. You can’t fit 12-24 Hz accelerometer rates into the rate of BLE advertising. You simply can’t receive enough data for the minimally accurate motion tracking.

Interviewer:

Very interesting! But getting back to the topic of machine learning and the above mentioning of “float variables” and “hash tables with integers”. Are you saying that by moving away from the floating point variables and functions you reduced the power consumption?

Alex:

Yes, by replacing the floating point functions and variables we achieved a major reduction in the execution time and the power consumption. Such low-power microcontroller systems consider every line of your code. This is a different world comparing to software development for larger systems running on Linux.

Interviewer:

Sounds very cool, especially by knowing that you can execute the machine learning algorithms for years on a single battery charge.

Interviewer:

Thank you, Alex! It was a great interview!

We use cookies to personalize your experience. By using our website you agree to our Privacy Policy