README updates

This commit is contained in:
F. Duncanh
2026-03-11 11:51:13 -04:00
parent 445f5f139c
commit d3fe24e796
3 changed files with 82 additions and 58 deletions

View File

@@ -1546,17 +1546,17 @@ this to see even more of the GStreamer inner workings.</p>
<h1 id="bluetooth-le-beacon-setup">Bluetooth LE beacon setup</h1> <h1 id="bluetooth-le-beacon-setup">Bluetooth LE beacon setup</h1>
<p>The python&gt;=3.6 script for running a Bluetooth LE Service <p>The python&gt;=3.6 script for running a Bluetooth LE Service
Discovery beacon is uxplay-beacon.py. It provides three possible Discovery beacon is uxplay-beacon.py. It provides three possible
Bluetooth LE implementations: one for Linux systems with D-Bus, one for Bluetooth LE implementations (loaded as modules): one for Linux systems
Windows, and one for the <a href="https://www.bleuio.com">BleuIO (or with D-Bus, one for Windows, and one for the <a
BleuIO Pro) USB dongle</a> with its own on-board Bluetooth-LE Stack that href="https://www.bleuio.com">BleuIO (or BleuIO Pro) USB dongle</a> with
does not use the host operating system Bluetooth (the Host sees the its own on-board Bluetooth-LE Stack that does not use the host operating
device as a USB serial modem). This is needed for macOS where the system Bluetooth (the Host sees the device as a USB serial modem). This
operating system does not allow users to send Bluetooth-LE is needed for macOS where the operating system does not allow users to
advertisements of the type we require. If a BleuIO dongle is available, send Bluetooth-LE advertisements of the type we require. If a BleuIO
the bleuio version of the python script can be used on many operating dongle is available, the bleuio version of the python script can be used
systems including macOS, Windows and Linux, and perhaps *BSD (not on many operating systems including macOS, Windows and Linux, and
tested): it requires python library <code>python3-pyserial</code> to be perhaps *BSD (not tested): it requires python library
installed.</p> <code>python3-pyserial</code> to be installed.</p>
<p>On Linux, Bluetooth support (using the offical Linux Bluetooth stack <p>On Linux, Bluetooth support (using the offical Linux Bluetooth stack
BlueZ) must be installed (on Debian-based systems: BlueZ) must be installed (on Debian-based systems:
<code>sudo apt install bluez bluez-tools</code>; recent Ubuntu releases <code>sudo apt install bluez bluez-tools</code>; recent Ubuntu releases
@@ -1598,7 +1598,8 @@ Configuration file entries are like the command line forms, one per line
(e.g., <code>--ipv4 192.168.1.100</code>). Lines commented out with an (e.g., <code>--ipv4 192.168.1.100</code>). Lines commented out with an
initial <code>#</code> are ignored. Command line options override the initial <code>#</code> are ignored. Command line options override the
configuration file options. Get help with <code>man uxplay-beacon</code> configuration file options. Get help with <code>man uxplay-beacon</code>
or <code>uxplay-beacon.py --help</code>. Options are</p> or <code>uxplay-beacon.py --help</code>.</p>
<p>Options are</p>
<ul> <ul>
<li><p><code>--file &lt;config file&gt;</code> read beacon options from <li><p><code>--file &lt;config file&gt;</code> read beacon options from
<code>&lt;config file&gt;</code> instead of <code>&lt;config file&gt;</code> instead of
@@ -1616,13 +1617,13 @@ with option “<code>uxplay -ble &lt;BLE data file&gt;</code>”.</p></li>
<p>The BlueZ/Dbus version has three more options not offered by the <p>The BlueZ/Dbus version has three more options not offered by the
Windows version (the Windows operating system chooses their values):</p> Windows version (the Windows operating system chooses their values):</p>
<ul> <ul>
<li><p><code>--AdvMin x</code>, <code>--AdvMax y</code>. These controls <li><p><code>--advmin x</code>, <code>--advmax y</code>. These controls
the interval between BLE advertisement broadcasts. This interval is in the interval between BLE advertisement broadcasts. This interval is in
the range [x, y], given in units of msecs. Allowed ranges are 100 &lt;= the range [x, y], given in units of msecs. Allowed ranges are 100 &lt;=
x &lt;= y &lt;= 10240. If AdvMin=AdvMax, the interval is fixed: if x &lt;= y &lt;= 10240. If advmin=advmax, the interval is fixed: if
AdvMin &lt; AdvMax it is chosen flexibly in this range to avoid advmin &lt; advmax it is chosen flexibly in this range to avoid
interfering with other tasks the Bluetooth device is carrying out. The interfering with other tasks the Bluetooth device is carrying out. The
default values are AdvMin = AdvMax = 100. The advertisement is broadcast default values are advmin = advmax = 100. The advertisement is broadcast
on all three Bluetooth LE advertising channels: 37,38,39.</p></li> on all three Bluetooth LE advertising channels: 37,38,39.</p></li>
<li><p><code>--index x</code> (default x = 0, x &gt;= 0). This can be <li><p><code>--index x</code> (default x = 0, x &gt;= 0). This can be
used by the DBus to distinguish between multiple simultaneous instances used by the DBus to distinguish between multiple simultaneous instances
@@ -1633,13 +1634,13 @@ instance of UxPlay must also have its own MAC address and ports).
not been tested, and this option might not be useful or not been tested, and this option might not be useful or
needed.</em></p></li> needed.</em></p></li>
</ul> </ul>
<p>While the native macOS BlueTooth-LE does not allow users to send <p>While the native macOS and *BSD Bluetooth stacks do not allow
“manufacturer-specific” advertisements like the uxplay service discovery unpriviledged users to send “manufacturer-specific” advertisements like
announcement, this can be achieved using the BleuIO dongle, which is a the uxplay service discovery announcement, this can be achieved using
usb-serial device with its own full Bluetooth LE implementation (the the BleuIO USB device: the BleuIO module for uxplay-beacon.py is
BleuIO module for uxplay-beacon.py is installed with UxPlay in all installed with UxPlay in all operating systems, including macos and
operating systems, including macos and *BSD, while the BlueZ and winrt *BSD, while the BlueZ and winrt modules are only installed on Linux and
modules are only installed on Linux and Windows, respectively).</p> Windows, respectively.</p>
<p>If you wish to test Bluetooth LE Service Discovery on Linux/*BSD, you <p>If you wish to test Bluetooth LE Service Discovery on Linux/*BSD, you
can disable DNS_SD Service discovery by the avahi-daemon with</p> can disable DNS_SD Service discovery by the avahi-daemon with</p>
<pre><code>$ sudo systemctl mask avahi-daemon.socket <pre><code>$ sudo systemctl mask avahi-daemon.socket
@@ -1653,7 +1654,14 @@ in the alphabetic list. This will show links for it to be stopped and
restarted.</p> restarted.</p>
<p>For more information, see the <a <p>For more information, see the <a
href="https://github.com/FDH2/UxPlay/wiki/Bluetooth_LE_beacon">wiki href="https://github.com/FDH2/UxPlay/wiki/Bluetooth_LE_beacon">wiki
page</a></p> page</a>. This page also explains how to setup a BLE beacon for UxPlay
on Linux by direct accesss to the Bluetooth stack using
<code>hcitool</code> to send low-level HCI commands, with root
privileges. This can also be done on FreeBSD using
<code>hccontrol</code>, and on macOS using <code>bluetool</code>.
<strong>The recommended way to set up Bluetooth LE Service Discovery on
macOS or *BSD is to acquire a BleuIO USB device, which is supported by
uxplay-beacon.py without root privileges</strong>.</p>
<ul> <ul>
<li><strong>Note that Bluetooth LE AirPlay Service Discovery only <li><strong>Note that Bluetooth LE AirPlay Service Discovery only
supports broadcast of IPv4 addresses</strong>.</li> supports broadcast of IPv4 addresses</strong>.</li>

View File

@@ -1559,7 +1559,7 @@ GStreamer inner workings.
# Bluetooth LE beacon setup # Bluetooth LE beacon setup
The python>=3.6 script for running a Bluetooth LE Service Discovery beacon is uxplay-beacon.py. The python>=3.6 script for running a Bluetooth LE Service Discovery beacon is uxplay-beacon.py.
It provides three possible Bluetooth LE implementations: one for Linux systems with D-Bus, It provides three possible Bluetooth LE implementations (loaded as modules): one for Linux systems with D-Bus,
one for Windows, and one for one for Windows, and one for
the [BleuIO (or BleuIO Pro) USB the [BleuIO (or BleuIO Pro) USB
dongle](https://www.bleuio.com) with its own on-board Bluetooth-LE Stack that dongle](https://www.bleuio.com) with its own on-board Bluetooth-LE Stack that
@@ -1609,7 +1609,10 @@ terminal window (or its terminal window is closed).
The beacon script can be more finely controlled using certain options: these can be given on the command line, or read from The beacon script can be more finely controlled using certain options: these can be given on the command line, or read from
a configuration file `~/.uxplay.beacon`, if it exists. Configuration file entries are like the command line forms, one per line (e.g., a configuration file `~/.uxplay.beacon`, if it exists. Configuration file entries are like the command line forms, one per line (e.g.,
`--ipv4 192.168.1.100`). Lines commented out with an initial ``#`` are ignored. Command line options override the configuration file `--ipv4 192.168.1.100`). Lines commented out with an initial ``#`` are ignored. Command line options override the configuration file
options. Get help with `man uxplay-beacon` or ``uxplay-beacon.py --help``. Options are options. Get help with `man uxplay-beacon` or ``uxplay-beacon.py --help``.
Options are
* `--file <config file>` read beacon options from ``<config file>`` instead of * `--file <config file>` read beacon options from ``<config file>`` instead of
`~/.uxplay.beacon`. `~/.uxplay.beacon`.
@@ -1622,20 +1625,20 @@ that uxplay is run with option "`uxplay -ble <BLE data file>`".
The BlueZ/Dbus version has three more options not offered by the Windows version (the Windows operating system chooses their values): The BlueZ/Dbus version has three more options not offered by the Windows version (the Windows operating system chooses their values):
* `--AdvMin x`, ``--AdvMax y``. These controls the interval between BLE advertisement broadcasts. This interval is in the range * `--advmin x`, ``--advmax y``. These controls the interval between BLE advertisement broadcasts. This interval is in the range
[x, y], given in units of msecs. Allowed ranges are 100 <= x <= y <= 10240. If AdvMin=AdvMax, the interval is fixed: if AdvMin < AdvMax [x, y], given in units of msecs. Allowed ranges are 100 <= x <= y <= 10240. If advmin=advmax, the interval is fixed: if advmin < advmax
it is chosen flexibly in this range to avoid interfering with other tasks the Bluetooth device is carrying out. The default values are it is chosen flexibly in this range to avoid interfering with other tasks the Bluetooth device is carrying out. The default values are
AdvMin = AdvMax = 100. The advertisement is broadcast on all three Bluetooth LE advertising channels: 37,38,39. advmin = advmax = 100. The advertisement is broadcast on all three Bluetooth LE advertising channels: 37,38,39.
* `--index x` (default x = 0, x >= 0). This can be used by the DBus to distinguish between multiple simultaneous instances of uxplay-beacon.py that * `--index x` (default x = 0, x >= 0). This can be used by the DBus to distinguish between multiple simultaneous instances of uxplay-beacon.py that
are running to support multiple instances of UxPlay. Each instance must have its own BLE Data are running to support multiple instances of UxPlay. Each instance must have its own BLE Data
file (just as each instance of UxPlay must also have its own MAC address and ports). _Note: running multiple beacons simultaneously file (just as each instance of UxPlay must also have its own MAC address and ports). _Note: running multiple beacons simultaneously
on the same host has not been tested, and this option might not be useful or needed._ on the same host has not been tested, and this option might not be useful or needed._
While the native macOS BlueTooth-LE does not allow users to send "manufacturer-specific" advertisements like the uxplay service discovery While the native macOS and \*BSD Bluetooth stacks
announcement, this can be achieved using the BleuIO dongle, which do not allow unpriviledged users to send "manufacturer-specific" advertisements like the uxplay service discovery
is a usb-serial device with its own full Bluetooth LE implementation (the BleuIO module for uxplay-beacon.py is installed with UxPlay announcement, this can be achieved using the BleuIO USB device: the BleuIO module for uxplay-beacon.py is installed with UxPlay
in all operating systems, including macos and *BSD, while the BlueZ and winrt modules are only installed on Linux and Windows, respectively). in all operating systems, including macos and *BSD, while the BlueZ and winrt modules are only installed on Linux and Windows, respectively.
If you wish to test Bluetooth LE Service Discovery on Linux/*BSD, you can disable DNS_SD Service discovery by the avahi-daemon with If you wish to test Bluetooth LE Service Discovery on Linux/*BSD, you can disable DNS_SD Service discovery by the avahi-daemon with
@@ -1650,7 +1653,12 @@ On Windows, the Bonjour Service is controlled using **Services Management**: pr
run `services.msc`, and click on **Bonjour Service** in the alphabetic list. This run `services.msc`, and click on **Bonjour Service** in the alphabetic list. This
will show links for it to be stopped and restarted. will show links for it to be stopped and restarted.
For more information, see the [wiki page](https://github.com/FDH2/UxPlay/wiki/Bluetooth_LE_beacon) For more information, see the [wiki page](https://github.com/FDH2/UxPlay/wiki/Bluetooth_LE_beacon). This page also explains how to setup a BLE
beacon for UxPlay on Linux by direct accesss to the Bluetooth stack using `hcitool` to send low-level HCI commands, with root privileges.
This can also be done on FreeBSD using `hccontrol`, and on macOS using ``bluetool``. **The recommended way to set up Bluetooth LE
Service Discovery on macOS or \*BSD is to acquire a BleuIO USB device, which is supported by uxplay-beacon.py without
root privileges**.
* **Note that Bluetooth LE AirPlay Service Discovery only supports * **Note that Bluetooth LE AirPlay Service Discovery only supports
broadcast of IPv4 addresses**. broadcast of IPv4 addresses**.

View File

@@ -1593,16 +1593,16 @@ this to see even more of the GStreamer inner workings.
The python\>=3.6 script for running a Bluetooth LE Service Discovery The python\>=3.6 script for running a Bluetooth LE Service Discovery
beacon is uxplay-beacon.py. It provides three possible Bluetooth LE beacon is uxplay-beacon.py. It provides three possible Bluetooth LE
implementations: one for Linux systems with D-Bus, one for Windows, and implementations (loaded as modules): one for Linux systems with D-Bus,
one for the [BleuIO (or BleuIO Pro) USB dongle](https://www.bleuio.com) one for Windows, and one for the [BleuIO (or BleuIO Pro) USB
with its own on-board Bluetooth-LE Stack that does not use the host dongle](https://www.bleuio.com) with its own on-board Bluetooth-LE Stack
operating system Bluetooth (the Host sees the device as a USB serial that does not use the host operating system Bluetooth (the Host sees the
modem). This is needed for macOS where the operating system does not device as a USB serial modem). This is needed for macOS where the
allow users to send Bluetooth-LE advertisements of the type we require. operating system does not allow users to send Bluetooth-LE
If a BleuIO dongle is available, the bleuio version of the python script advertisements of the type we require. If a BleuIO dongle is available,
can be used on many operating systems including macOS, Windows and the bleuio version of the python script can be used on many operating
Linux, and perhaps \*BSD (not tested): it requires python library systems including macOS, Windows and Linux, and perhaps \*BSD (not
`python3-pyserial` to be installed. tested): it requires python library `python3-pyserial` to be installed.
On Linux, Bluetooth support (using the offical Linux Bluetooth stack On Linux, Bluetooth support (using the offical Linux Bluetooth stack
BlueZ) must be installed (on Debian-based systems: BlueZ) must be installed (on Debian-based systems:
@@ -1652,8 +1652,9 @@ file `~/.uxplay.beacon`, if it exists. Configuration file entries are
like the command line forms, one per line (e.g., like the command line forms, one per line (e.g.,
`--ipv4 192.168.1.100`). Lines commented out with an initial `#` are `--ipv4 192.168.1.100`). Lines commented out with an initial `#` are
ignored. Command line options override the configuration file options. ignored. Command line options override the configuration file options.
Get help with `man uxplay-beacon` or `uxplay-beacon.py --help`. Options Get help with `man uxplay-beacon` or `uxplay-beacon.py --help`.
are
Options are
- `--file <config file>` read beacon options from `<config file>` - `--file <config file>` read beacon options from `<config file>`
instead of `~/.uxplay.beacon`. instead of `~/.uxplay.beacon`.
@@ -1672,13 +1673,13 @@ are
The BlueZ/Dbus version has three more options not offered by the Windows The BlueZ/Dbus version has three more options not offered by the Windows
version (the Windows operating system chooses their values): version (the Windows operating system chooses their values):
- `--AdvMin x`, `--AdvMax y`. These controls the interval between BLE - `--advmin x`, `--advmax y`. These controls the interval between BLE
advertisement broadcasts. This interval is in the range \[x, y\], advertisement broadcasts. This interval is in the range \[x, y\],
given in units of msecs. Allowed ranges are 100 \<= x \<= y given in units of msecs. Allowed ranges are 100 \<= x \<= y
\<= 10240. If AdvMin=AdvMax, the interval is fixed: if AdvMin \< \<= 10240. If advmin=advmax, the interval is fixed: if advmin \<
AdvMax it is chosen flexibly in this range to avoid interfering with advmax it is chosen flexibly in this range to avoid interfering with
other tasks the Bluetooth device is carrying out. The default values other tasks the Bluetooth device is carrying out. The default values
are AdvMin = AdvMax = 100. The advertisement is broadcast on all are advmin = advmax = 100. The advertisement is broadcast on all
three Bluetooth LE advertising channels: 37,38,39. three Bluetooth LE advertising channels: 37,38,39.
- `--index x` (default x = 0, x \>= 0). This can be used by the DBus - `--index x` (default x = 0, x \>= 0). This can be used by the DBus
@@ -1689,13 +1690,13 @@ version (the Windows operating system chooses their values):
*Note: running multiple beacons simultaneously on the same host has *Note: running multiple beacons simultaneously on the same host has
not been tested, and this option might not be useful or needed.* not been tested, and this option might not be useful or needed.*
While the native macOS BlueTooth-LE does not allow users to send While the native macOS and \*BSD Bluetooth stacks do not allow
"manufacturer-specific" advertisements like the uxplay service discovery unpriviledged users to send "manufacturer-specific" advertisements like
announcement, this can be achieved using the BleuIO dongle, which is a the uxplay service discovery announcement, this can be achieved using
usb-serial device with its own full Bluetooth LE implementation (the the BleuIO USB device: the BleuIO module for uxplay-beacon.py is
BleuIO module for uxplay-beacon.py is installed with UxPlay in all installed with UxPlay in all operating systems, including macos and
operating systems, including macos and \*BSD, while the BlueZ and winrt \*BSD, while the BlueZ and winrt modules are only installed on Linux and
modules are only installed on Linux and Windows, respectively). Windows, respectively.
If you wish to test Bluetooth LE Service Discovery on Linux/\*BSD, you If you wish to test Bluetooth LE Service Discovery on Linux/\*BSD, you
can disable DNS_SD Service discovery by the avahi-daemon with can disable DNS_SD Service discovery by the avahi-daemon with
@@ -1712,7 +1713,14 @@ Management**: press "Windows + R" to open the Run dialog, run
This will show links for it to be stopped and restarted. This will show links for it to be stopped and restarted.
For more information, see the [wiki For more information, see the [wiki
page](https://github.com/FDH2/UxPlay/wiki/Bluetooth_LE_beacon) page](https://github.com/FDH2/UxPlay/wiki/Bluetooth_LE_beacon). This
page also explains how to setup a BLE beacon for UxPlay on Linux by
direct accesss to the Bluetooth stack using `hcitool` to send low-level
HCI commands, with root privileges. This can also be done on FreeBSD
using `hccontrol`, and on macOS using `bluetool`. **The recommended way
to set up Bluetooth LE Service Discovery on macOS or \*BSD is to acquire
a BleuIO USB device, which is supported by uxplay-beacon.py without root
privileges**.
- **Note that Bluetooth LE AirPlay Service Discovery only supports - **Note that Bluetooth LE AirPlay Service Discovery only supports
broadcast of IPv4 addresses**. broadcast of IPv4 addresses**.