BTstack is BlueKitchen's implementation of the official Bluetooth stack.
It is well suited for small, resource-constraint devices
such as 8 or 16 bit embedded systems as it is highly configurable and comes with an ultra small memory footprint.
Targeting a variety of platforms is as simple as providing
the necessary UART, CPU, and CLOCK implementations. BTstack is
currently capable of connecting to Bluetooth-modules via: (H2) HCI USB,
(H4) HCI UART + TI's eHCILL, and (H5) HCI Three-Wire UART.
On smaller embedded systems, a minimal run loop implementation allows to use BTstack without a Real Time OS (RTOS).
If a RTOS is already provided, BTstack can be integrated and run as a single thread.
On larger systems, BTstack provides a server that connects
to a Bluetooth module.
Multiple applications can communicate with this server over different
inter-process communication methods. As sockets are used for
client/server communication, it's easy to interact via higher-level
level languages, e.g. there's already a Java binding for use in desktop
environments.
BTstack supports the Central and the Peripheral Role of
Bluetooth 5 Low Energy specification incl. LE Secure Connections, LE
Data Channels, and LE Data Length Extension. It can be configured to run
as either single-mode stack or a dual-mode stack.
BTstack is free for non-commercial use. However, for commercial use, tell us a bit about your project to get a quote.
https://github.com/bluekitchen/btstack/