Bluetooth Splitter app can connect to multiple Bluetooth devices and act like a communication splitter / multiplexer. Data received from one device (primary device) is re-transferred / splitted to multiple devices (secondary devices) and data from secondary devices is combined to a single data output to a primary device. App can act as an splitter and multiplexer at the same time.
Main features:
Splitting and multiplexing of incoming data from connected devices
Configurable retransmission (both ways or one direction transferring)
Simple intuitive user interface
Following types of connections are currently supported:
Classic Bluetooth devices - devices such as Bluetooth modules (HC-05, HC-06), other smartphone with Bluetooth terminal app, PC or any other device capable of opening Bluetooth port (serial port profile / SPP).
BLE (Bluetooth low energy) / Bluetooth 4.0 devices - devices such as BLE Bluetooth modules(HM-10, MLT-BT05), smart sensors (heart rate monitors, thermostats...)
App can also create Bluetooth socket to which remote Bluetooth devices can connect.
Audio devices and Bluetooth speakers are not supported.
This user guide relates to app version 2.7 or higher. If you do not see some mentioned feature in the app, check for updates.
Android 4.1 and up, for connecting to BLE device Android 4.3 is required (Apple devices are currently not supported)
Bluetooth adapter
For application to function properly, it needs following permissions:
Location
approximate location (network-based)
precise location (GPS and network-based)
Reason for this permissions from Google developer guide: LE Beacons are often associated with location. In order to use BluetoothLeScanner, you must request the user's permission by declaring either the ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission in your app's manifest file. Without these permissions, scans won't return any results.
Other
access Bluetooth settings
prevent device from sleeping
pair with Bluetooth devices
Bluetooth Splitter app can connect to remote Bluetooth device(s) and split and (or) multiplex incoming data to (from) other Bluetooth device(s). One device is connected as a primary device, multiple devices are connected as secondary devices. Data received from primary device are then send to all secondary devices and data received from all secondary devices are multiplexed to one data stream to primary device.
For app to work, at leas 2 connected devices are required - primary and one secondary device. If only 2 connections are active, splitter will basically only retransmitt data between them. Splitting / multiplexing will be active with 1 primary and at least 2 secondary connections are established.
Main screen of the app
Typical use cases:
We have a processor board with sensors and Bluetooth module. This device sends measured values (e.g. temperature and humidity) but we have 3 other devices to which we want to send the data. Solution is to use Bluetooth splitter, connect processor board as a primary device and other 3 devices as secondary devices. Splitter app will distribute received values to all three secondary devices.
We have Bluetooth terminal app (running on a PC or a smartphone), which we want to use for communication with multiple devices, but this application can only connect to one device. We connect this application to Bluetooth splitter app as a primary device and connect multiple devices as secondary.
We have 2 devices between which we want to establish communication link, unfortunately these devices are not compatible since one is BLE device and one is classic Bluetooth device. We can use Bluetooth splitter app as a mediator between these two devices, since Bluetooth splitter app can connect to both types of connections and retransmit the communication.
Other example of use might be the situation when we simply need 2 Bluetooth devices to communicate, but they are barely out of range. We can use smartphone with Bluetooth Splitter as simple range extender in between these two devices.
Main screen of the app consist of 3 sections:
Splitter overview - contains name of the splitter device, what is basically a phone name, its status and an option to change retransmission logic.
Primary device - contains name of the primary device (when connected), its status and a button to manage primary connection. Primary device is always one. It can`t be removed or added more. To establish a connection to a primary device, click on "Connect" button and select a connection type (see following sections for each connection type).
List of secondary devices - this section contains list of secondary devices. Multiple devices can be added as a secondary. When the app starts, one secondary device is present. You can add more by clicking "Add secondary device". To make a connection for any secondary device click on the respective item "No device/Disconnected" and select required connection type.
App layout
To make a connection for:
Primary device: click "Connect" button on primary connection panel and select required connection type.
Secondary side: click on item "No device/Disconnected" and select required connection type.
Rest of the connection process is the same for each side (primary and secondary). Connection process for each type of device is described in the following sections.
Make a connection for primary (button) / secondary (list item) device
Make sure remote Bluetooth device is paired with your phone, is turned on and is listening for incoming connections. Then select it from the list of all paired devices and the connection should be established. After successful connection, name of the device will be displayed under device label with status "Connected".
If your Bluetooth device is not showing in the list because it is not paired with your phone, minimalize app, pair device and return to app. If the device you just paired still does not show up in the list, return to main app screen and then select again task of connecting classic Bluetooth device - the list of paired devices will be refreshed.
If you want app to automatically try to re-connect to selected device when connection is lost (e.g. device got temporary out of range) check the checkbox Automatically try to reconnect...
Note that even if BLE devices might be listed as paired devices, they will not be connected using Serial port profile (SPP) protocol. To connect to BLE device select "Connect to BLE device" on the main screen (see following section).
In our case, we want to connect to HC-05 Bluetooth module. It is already paired so it appears in the list. Just click on the name HC-05.
Make sure your BLE device is turned on and within range
Since Android 6 Location (GPS) needs to be enabled for scan to find any devices.
Scanning for BLE devices will start and all found devices will be added to the list (name and MAC address)
Click on the device which you want to connect to (scanning is then automatically stopped)
In this example, we want to connect to BLE device MLT-BT05. It was successfully found by a scanner, so we just click on it.
After successful connection, all services and characteristics are retrieved from the connected device (see following image) together with device name and MAC address. For communication with BLE device you need to select RX and TX characteristic. This is done by clicking on a characteristic item and selecting it as RX or TX or BOTH (RX+TX).
If you use different RX and TX characteristics, then:
app will listen for incoming data for RX (app will add listener for this characteristic),
app will use TX characteristic to send data to remote BLE device.
For each characteristic, its properties are displayed in brackets [ ]. Based on which characteristic you want to use as RX (for data receiving), select subscribe method Notify or Indicate.
Note: For more information about which characteristics and subscribe method should be used for data transfer on your device see the specification of your device.
Once both characteristics are selected, click "Connect" to finish the connection process.
List of retrieved services and characteristics
After successful setting of characteristics, BLE device name will be displayed on primary connection panel and status will be set to "Connected".
BLE device MLT-BT05 connected
App can create Bluetooth socket and listen for incoming Bluetooth connections.
When listening socket is active, Bluetooth serial port is opened which allows incoming connections. You can initialise connection from a remote device.
Note that when listening Bluetooth socket is opened, some smartphones might have a trouble searching for BLE devices. Splitter app allows scanning for BLE devices while Bluetooth socked is opened, but warning is displayed.
Bluetooth socket
Once the connection is established, you can view primary connection details (like RX and TX characteristics for BLE device) by clicking on its symbol.
To display connection details for any secondary device, click on respective item in the list.
When primary connection and at least one secondary connection is established, app can retransmit data between connected devices. This is indicated by a status "Active".
When primary and multiple secondary devices are connected and Retransmission is set to "Both ways", app acts as an splitter / multiplexer device. All received data from primary device are automatically send to all connected secondary devices and vice versa.
If needed, retransmission can be changed to multiplexer or splitter only. If you want to send only data from primary device to all secondary devices and ignore incoming data from secondary devices, select "Primary->Secondary" from drop-down menu Retransmission. This is splitter mode.
If you want to send data only from all secondary devices to primary device and ignore incoming data from primary device, select "Secondary->Primary". With this setting app is in a multiplexer mode.
If needed, retransmission can also be (temporarily) disabled by selecting option "disabled".
Splitter (this device) shows the name of the smartphone with its MAC address.
Note: On some devices MAC address might not be accessible.
Secondary devices are ordered in a list. By clicking on a specific device you can
view its current configuration,
disconnect the device (device is not removed from the list).
By using a long click on a specific device in the list you can
remove the device from the list (this also closes connection if it is established),
change device symbol.
To disconnect a primary device simply click on "Disconnect" button. Primary device can`t be removed. To change symbol for primary device use long click on its symbol.
All connected devices can be disconnected at once in Settings -> Close all connections.
List of secondary devices with customised icons
App can run in background, when minimized or when screen is turned off. To prevent Android OS from stopping app in the background mode, it is highly recommended to have app excluded from battery optimization in phone settings.
To access the app settings click on the 3 lines symbol in the top right corner in the main screen.
In Screen setting you can set if you want your phone screen to stay always on (with full brightness or dimmed) or if you want it to be turned off (turn off timeout for screen can be changed in Android settings, usually under Display/Sleep options)
Close all connections disconnects all remote devices
How it works - shot instructions, with a link to full user guide.
About section contains additional information about Bluetooth Splitter app
To exit settings, click on the back button. All changes are saved automatically.