This Bluetooth terminal app allows you to define commands and send them to multiple connected SPP (Serial Port Profile) or BLE (Bluetooth Low Energy / Bluetooth 4.0) devices simultaneously. Remote device could be an Arduino board, phone, PC, or any other device with Bluetooth module(HC-06, etc…) or device with Bluetooth terminal. App can also listen for incoming messages and display them in HEX, string or decimal format.
Commands could be defined in a string format or as an array of bytes (in hexadecimal format) with additional options, such as including new line at the end of the string or selecting endian mode (ordering of bytes). Periodical sending of user created command is possible. Just add a command and specify sending period in milliseconds.
Application can also listen to incoming transmissions and display incoming messages in various forms – you can choose between string, hexadecimal or decimal format. All settings and user defined commands are saved / loaded each time application is closed / opened.
SHORT USER GUIDE
Connecting to classic bluetooth device
Device must be first paired with your phone. Click ‘Connect’ and select a device from the list of paired devices. Since app listens for incoming connections, you can initialise connection from remote device. In such cases, app will show remote device name as “Incoming connection”
Connecting to BLE device
To connect to BLE device, app will start scan, and if any BLE device is found, app will connect to it. You can then read services and characteristic + values from device. Select one characteristic which will be used as RX+TX characteristic. In current app version connection to only one BLE device is supported. However, you can be connected to BLE device and multiple classic bluetooth devices simultaneously.
To create a new command, click on the “empty” item at the end of the list of commands and select type of command – HEX or string.
Command name – for user to identify specific command. If the field is left empty, default name is used
Value 0x(hexadecimal) – hexadecimal value (array of bytes) that represent command. Only valid hexadecimal number is accepted (characters 0-9 and A-F, not case-sensitive). Prefix “0x” is already included.
Least significant byte first – check this checkbox to send least significant byte of a command first. Otherwise the most significant byte will be send first.
String – String representing text form of command
Include new line character at the end of the string – If checked, new line character (“n”, 0x0A) will be appended at the end of the string
Send periodically[ms] – check this checkbox if you want your command to be send periodically. Specify period in milliseconds and after adding it to list of commands, simply click on it and sending with predefined period will begin. Click on command again to stop periodical transmission.
Custom icon – commands are further customisable by selecting its icons. All parameters, including icon can be changed later.
Commands are displayed in a list. You can send it to a connected devices by clicking on a respective item. Use long click to edit or remove command. Commands are send to all connected devices.
To scan for BLE devices, app need permission ACCESS_COARSE_LOCATION. The reason is (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.