A Node.js module for implementing Bluetooth Low Energy (BLE) peripherals on macOS, Linux, FreeBSD, and Windows.
Bleno is a Node.js module for implementing Bluetooth Low Energy (BLE) peripherals. It allows developers to create BLE servers that advertise services, define characteristics, and handle communication with central devices like smartphones or other BLE clients. It solves the problem of turning a computer into a BLE peripheral for IoT, prototyping, or custom wireless applications.
Node.js developers building BLE peripheral devices, IoT hobbyists, and professionals creating prototypes or tools that require BLE communication from a computer.
Developers choose Bleno for its pure Node.js implementation, cross-platform support (macOS, Linux, FreeBSD, Windows), and straightforward API that simplifies BLE peripheral development without requiring native Bluetooth stack expertise.
A Node.js module for implementing BLE (Bluetooth Low Energy) peripherals
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works on macOS, Linux, FreeBSD, and Windows with documented prerequisites for each OS, making it versatile for diverse development environments.
Simplifies BLE peripheral development by handling state changes, connections, and read/write requests through events like 'stateChange' and 'advertisingStart', reducing boilerplate code.
Offers advanced control on Linux, such as custom advertising intervals, multiple adapter support via BLENO_HCI_DEVICE_ID, and EIR data advertising for flexible use cases.
Includes a dedicated startAdvertisingIBeacon method for easy emulation of iBeacons, useful for location-based projects without complex setup.
Requires disabling the system bluetoothd daemon and manual configuration with sudo commands, which can interfere with other Bluetooth services and add deployment overhead.
Key functionalities like disconnect control and RSSI updates are Linux-only, while iBeacon mode on macOS makes peripherals non-connectable, leading to inconsistent behavior across OSes.
Cannot be used seamlessly with its central counterpart noble; the README warns that running both may prevent connected devices from retrieving service lists on Linux.
Relies on specific Bluetooth 4.0 USB adapters and WinUSB driver setup via Zadig, which can be error-prone and limit hardware choices for Windows developers.