A Bluetooth Low Energy inspector for the command line.
LSP uses noble 1.9.1 and blessed 0.1.81, so these dependencies are inferred from noble and blessed's dependencies.
- Node.js (I've only tested on Node.js 8.X.X LTS)
- npm or Yarn
- Xcode
- Linux 3.16+
- Node.js (I've only tested on Node.js 8.X.X LTS)
- npm or Yarn
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin
sudo dnf install systemd-devel bluez bluez-libs bluez-libs-devel libcap
In theory, LSP should work on FreeBSD, but I haven't tried it out. Checkout noble 1.9.1's documentation on FreeBSD to try it out.
I've never been able to get LSP to work on Windows (10). Checkout noble 1.9.1's documentation on Windows to try it out.
- Download LSP
git clone git@gitlab.com:Miras/LSP.git
cd LSP - Reset LSP to a stable version
git reset --hard '0.1.2'
npm install or yarn
bin/lsp.js
npm install or yarn
sudo bin/lsp.js
If you don't want to run sudo every time you use LSP, you can grant Node.js raw network capabilities with the following command...
sudo setcap cap_net_raw+eip $(readlink -f $(which node))
You may have to rerun this command if Node.js is upgraded.
I wrote LSP to help expose and understand all the Bluetooth Low Energy Services, Characteristics, and Descriptors a Boosted board v2 Dual+ exposes, so I didn't code LSP with UX in mind. Here's a quick guide on how to use it...
After running lsp.js
If you see a black screen
Make sure bluetooth is turned on and no other program is scanning for bluetooth devices.
If you see a list of MAC Addresses and Names
You can scroll through the list with the up and down buttons on your keyboard, the scroll wheel on your mouse, or a scrolling gesture on your trackpad.
You can select a device with the enter button your keyboard, or by clicking on it with your mouse or trackpad.
If you see a black screen again
Your computer is connecting to the device you selected. Be patient.
If you see a list of services, characteristics, and descriptors
You're in! This part is pretty self explanatory; you have a tree view of all the services, characteristics, and descriptors exposed by the device you selected.
Each has a UUID, Type, and Name.
Characteristics also have Properties and a Value.
Descriptors also have a value.
Printing each property a characteristic has would take a lot of space, so I've abbreviated each into a single letter. Here's what they mean...
B = Broadcast
R = Read
A = Write without Response
W = Write
N = Notify
I = Indicate
B = Authenticated Signed Writes (this is a duplicate and should be fixed)
C = Extended Properties
If a characteristic has the notify or indicate properties, LSP will automatically listen to that characteristic for changes, and update its displayed value.
I'm done using LSP, and Ctrl-C isn't working, how do I get out?!
Q or escape on your keyboard.