HIVE¶
Welcome to the Bumble Hive. This is a collection of apps and virtual devices that can run entirely in a browser page. The code for the apps and devices, as well as the Bumble runtime code, runs via Pyodide. Pyodide is a Python distribution for the browser and Node.js based on WebAssembly.
The Bumble stack uses a WebSocket to exchange HCI packets with a virtual or physical Bluetooth controller.
The apps and devices in the hive can be accessed by following the links below. Each
page has a settings button that may be used to configure the WebSocket URL to use for
the virtual HCI connection. This will typically be the WebSocket URL for a netsim
daemon.
There is also a TOML index that can be used by tools to know at which URL to access
each of the apps and devices, as well as their names and short descriptions.
Using netsim
When the netsimd
daemon is running (for example when using the Android Emulator that
is included in Android Studio), the daemon listens for connections on a TCP port.
To find out what this TCP port is, you can read the netsim.ini
file that netsimd
creates, it includes a line with web.port=<tcp-port>
(for example web.port=7681
).
The location of the netsim.ini
file is platform-specific.
On macOS, the directory where netsim.ini
is stored is $TMPDIR
$ cat $TMPDIR/netsim.ini
On Linux, the directory where netsim.ini
is stored is $XDG_RUNTIME_DIR
$ cat $XDG_RUNTIME_DIR/netsim.ini
Using a local radio
You can connect the hive virtual apps and devices to a local Bluetooth radio, like,
for example, a USB dongle.
For that, you need to run a local HCI bridge to bridge a local HCI device to a WebSocket
that a web page can connect to.
Use the bumble-hci-bridge
app, with the host transport set to a WebSocket server on an
available port (ex: ws-server:_:7682
) and the controller transport set to the transport
name for the radio you want to use (ex: usb:0
for the first USB dongle)
Applications¶
- Scanner - Scans for BLE devices.
Virtual Devices¶
- Speaker - Virtual speaker that plays audio in a browser page.
- Heart Rate Monitor - Virtual heart rate monitor.