Forum: Projekte & Code Bluetooth Low Energy Stack (libbtle)


von BLE (Gast)


Lesenswert?

Hallo zusammen,

ich möchte hier mein kleines Projekt vorstellen: libbtle
https://github.com/ccier/libbtle

Es handelt sich hierbei um einen kompletten Bluetooth Low Energy Stack, 
den ich aus dem Linux Kernel (BlueZ) herausgeschält habe, daher auch 
GPL2.

Zielsetzung:
* alles möglichst einfach halten, daher keine Command/Response/Event 
Queues, immer nur eine Transaktion
* lauffähig unter Linux, Windows und Embedded Systems
* reines C mit GCC
* kein Multithreading notwendig

Aktuell vorhanden sind: HCI, L2CAP, ATT und SMP.
Es sind aber noch keine GATT-Prozeduren (z.B Find Services) vorhanden. 
Auch der Security Mananger (SMP) ist noch nicht eingebunden.
Es ist viel Code vorhanden, den ich noch an den richtigen Stellen 
verheiraten muss.

Stand der Dinge ist: Device-Discovery möglich, Device-Connect möglich

Ich verwende derzeit ein normales USB BT4.0 Dongle (Broadcom oder CSR 
Chip), um libbtle zu entwickeln.
Der USB-Transport kann auch ganz einfach gegen UART ausgetauscht werden, 
falls ein BT4.0 HCI-Modul eingesetzt werden soll.

Ich freue mich über ein Feedback.

Gruß
Christian

von name (Gast)


Lesenswert?

Ich finde BLE sehr spannend. Was kannst Du denn zu einer embedded 
Implementierung empfehlen?

von name G. (Firma: software) (codejug)


Lesenswert?

Hi Christian,

A Bluetooth Low energy stack on multiple platforms is something I would 
be interested in contributing to as well!

Please let me know if there is some way for me to get in touch with you. 
An email ID or something would be great!

: Bearbeitet durch User
von Basti M. (counterfeiter)


Lesenswert?

Hallo BLE...

Was ist jetzt der Vorteil deines Stacks zum Bluez Stack? Mal abgesehen 
von der Größe?!

Bin fast zufrieden mit dem Linux Stack... leider gibt es noch keine 
Möglichkeit die BLE Connect Poll Zeiten zu vergößern... Laut dem Bluez 
IRC Channel, wurde in den letzten Tagen daran gearbeitet und ich warte 
so auf den Bluez 5.11 Stack...
Ohne diese Funktion kann man nicht von Low Energy sprechen, weil der 
Client aufgefordert wird, sich aller zB 70 ms zu melden...

Wie ist das bei dir gelöst?

Grüße

Basti

von BLE (Gast)


Lesenswert?

@name: Was meinst Du genau?

@codejug: Just fork on Github, add your code and send a pull-request.

@counterfeiter:
Nunja, ich habe das Ganze hauptsächlich als akademische Maßnahme 
gemacht, um genau zu verstehen, wie BLE funktioniert, nachdem ich mir 
das Buch BLE von Robin Heydon gekauft hatte.

libbtle ist ja nur ein kleiner Teil - der Bluetooth Low Energy Teil - 
von BlueZ. Es hat nicht den Anspruch, BlueZ ersetzen zu wollen.

BlueZ ist im Kernel- und User-Space zuhause. Libbtle ist nur im 
User-Space zuhause. Ein Vorteil wenn der Kernel alt ist und der 
BlueZ-Kernel-Teil damit auch alt ist und kein BLE unterstützt.

Man könnte libbtle auch auf einem normalen kleinen Mikrocontroller ohne 
OS laufen lassen. Zum Beispiel ein STM32 mit normalem HCI-Bluetooth 
Modul.
Entweder per USB oder UART.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.