Bluetooth on Embedded Linux

Die drahtlose stromsparende Datenübertragung via Bluetooth gewinnt im Umfeld der Thematik IoT an Bedeutung. In aktuellen Projekten bei sequality wurden dazu klassische Bluetooth 4 Verbindungen zur Datenübertragung genutzt. Seit dem Raspberry Pi 4 und dem NXP i.Mx8 gibt es die Möglichkeit Bluetooth auch in der Version 5 erstmals zu nutzen. Ein weiterer Aspekt ist die Verwendung von Single-Mode-Bluetooth-Low-Energy-Sensoren (Bluetooth LE): Diese Elektronik ist meist besonders stromsparend umgesetzt und unterstützt nur den Bluetooth Low Energy Modus.

Aus technischer Sicht ergibt sich eine Reihe an Fragestellungen, die beantwortet werden sollen:

  • Werden Bluetooth 5 Classic Mode und Bluetooth Low Energy mit aktuellen embedded Linux Software Libraries (Kernel, C++, Qt) unterstützt?
  • Welche Unterschiede gibt es bezüglich Bandbreite, Latenz und Verbindungsaufbau?
  • Bei IP-basierter Kommunikation kann während der Entwicklung das loopback-Interface verwendet werden um lokal zu entwickeln. Welche Möglichkeiten gibt es hier bei der Entwicklung von Bluetooth-basierter Kommunikation?

Wir haben uns diesen Themen angenommen und dazu eine umfangreiche Evaluierung vorgenommen. Nachzulesen ist dies in einem ca. 60 Seiten starken technischen Bericht (Bei Interesse: Email an stefan.larndorfer@sequality.at) und einem kurzen Video, das einen Überblick über die Thematik verschafft:

https://youtu.be/xIVyQ_7LQAI

Test setup:

  • Toradex Colibri i.Mx8QXP 2GB WB IT with Yocto Linux (Toradex Multimedia image with Qt6 Layer), DATA MODUL eDM-CB-Colibri base board with dual WIFI/bluetooth antennas, heatsink
  • Raspberry PI 4 mit Boot2Qt (Qt 6.5)
  • Texas Instrument TIDC-CC2650STK sensortag

Hier ein Ausschnitt des technischen Berichtes, der im Zuge einer Bachelorarbeit erarbeitet wurde:

Ein Screenshot der Bluetooth-Test-App: