BLE HCI Test interface for controllers capable of the UART transport
Project description
MAX-BLE-HCI
Python3 BLE HCI over serial Directed to MAX Vendor Specific Commands
Read the Docs
Insatll from PyPi
MAX-BLE-HCI is hosted via PyPi and can be installed with the following command
pip install max-ble-hci
Installation from source
If you prefer to use the most up to date version, you can also install from source.
The intsall.sh or .bat are used to install the library into your Python site packages and be done as such.
On Linux or MacOS
sudo chmod +x install.sh
./install.sh
On Windows
install.bat
Basic Usage
The BLE-HCI is a mostly generic library, which is capable of driving any BLE devices which can communicate using the UART transport.
To use with Analog Devices, Inc. BLE capable MAX32 microcontrollers, please flash one of the following examples to the chip you are using
If you have not yet set up an installation of the Analog-Devices-MSDK, please follow the instructions found here https://github.com/Analog-Devices-MSDK/msdk/tree/main
Once the board is flashed refer to the README in the example to configure your board.
Locate the serial port to which the HCI is connected to. If for example, your serial port is COM5, the following code would be used to reset the device.
from max_ble_hci import BleHci
port_name = "COM5"
hci = BleHci(port_name)
hci.reset()
Command Line Interface (CLI)
By defaults, the CLI capable of driving the BLE-HCI is installed as part of the package and can be accessed by running
max_ble_hci --version
The cli requires a serial port to connect the HCI to and is passed in through the command line. Once connected, you can type the help command as such, and begin to explore the CLI.
>>> help
usage: [-h]
{clear,cls,addr,memstats,adv,scan,init,data-len,send-acl,sink-acl,conn-stats,cs,test-stats,ts,bben,bbdis,rssi,reset,tx-test,tx,txtestvs,txvs,rx-test,rx,rx-test-vs,rxvs,end-test,end,reset_ts,rsts,tx-power,txp,discon,dc,set-chmap,cmd,exit,quit,q,help,h}
...
positional arguments:
{clear,cls,addr,memstats,adv,scan,init,data-len,send-acl,sink-acl,conn-stats,cs,test-stats,ts,bben,bbdis,rssi,reset,tx-test,tx,txtestvs,txvs,rx-test,rx,rx-test-vs,rxvs,end-test,end,reset_ts,rsts,tx-power,txp,discon,dc,set-chmap,cmd,exit,quit,q,help,h}
clear (cls) Clear the scrren
addr Set the device address.
memstats Get BLE stack memory usage statistics
adv Send the advertising commands
scan Send scanning commands and print scan reports, ctrl-c to exit.
init Send the initiating commands to open a connection
data-len Set the max data length
send-acl Send ACL packets
sink-acl Sink ACL packets, do not send events to host
conn-stats (cs) Get the connection stats
test-stats (ts) Get the test stats
bben Enable the Baseband Radio (Required for RSSI capture)
bbdis Disable the Baseband Radio
rssi Get an RSSI sample using CCA
reset Sends an HCI reset command
tx-test (tx) Execute the transmitter test.
txtestvs (txvs) Execute the vendor-specific transmitter test
rx-test (rx) Execute the receiver test
rx-test-vs (rxvs) Execute the vendor-specific receiver test
end-test (end) End the Tx/Rx test, print the number of correctly received packets
reset-ts (rsts) Reset accumulated stats from DTM
tx-power (txp) Set the Tx power
discon (dc) Send the command to disconnect
set-chmap Set the connection channel map to a given channel.
cmd Send raw HCI command
exit (quit, q) Exit the program
help (h) Show help message
options:
-h, --help show this help message and exit
>>>
Contributing
Contributions are encouraged! Pull requests must pass all GitHub Actions unless directly waved by an admin of the repository.
Python Versioning
This package is designed to support Python 3.8 and up. Non backwards compatible features will not be accepted (ex Use of match which was introduced in 3.10)
Style Guidlines
MAX-BLE-HCI is formatted using the Black formatter.
It can be installed via pip using pip install black
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file max_ble_hci-1.2.0.tar.gz
.
File metadata
- Download URL: max_ble_hci-1.2.0.tar.gz
- Upload date:
- Size: 118.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d90ab14e9534ff3c8ba57490ae9cbc4fc35c50caf71e896ee8d8b90c97aeaf6e |
|
MD5 | 8d19044d8f809d64e30f5b5b502f2b7f |
|
BLAKE2b-256 | 4813f58b2e47c9c136fd92cbdc0f1b254cf31f4fb138c3e618e29d94713b0e16 |
File details
Details for the file max_ble_hci-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: max_ble_hci-1.2.0-py3-none-any.whl
- Upload date:
- Size: 70.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d461ff978199e226f7898eea4940c8fc67ad0aa85122aeaff99621078e3f7e20 |
|
MD5 | d50a8adc2c30681fe6a6d77578194d02 |
|
BLAKE2b-256 | 3cc390279d759f6b51240b0d1f8e83bdc7c66203a7557d2ca865be17f963fec9 |