How to Turn Your Android Phone into a BLE Peripheral for Testing (No Root)
9 min read
Learn step‑by‑step how to configure an Android device as a Bluetooth Low Energy (BLE) peripheral using free apps, without rooting. Includes verification and troubleshooting tips.
October 01, 2026 04:30
Many developers and hardware hobbyists need a quick way to test Bluetooth Low Energy (BLE) central devices—phones, tablets, or microcontrollers—without buying a dedicated BLE peripheral. Android can act as a BLE peripheral, advertising custom GATT services, and you can set this up without rooting the device. This tutorial walks you through the entire process, from checking hardware compatibility to verifying the advertisement with a second device.
Before you start
- Device support: Your phone must support BLE peripheral mode. Most phones released after 2015 (Android 5.0+ with Bluetooth 4.0 LE) do, but some older or low‑cost models lack the advertiser API.
- Operating system: Android 5.0 (Lollipop) or newer. The steps below work on stock Android, as well as on Samsung One UI, Xiaomi MIUI, and similar skins—menu wording may differ slightly.
- Battery: Keep the device plugged in or at least 50 % charged. Advertising continuously can drain the battery faster than normal use.
- Permissions: You will need to grant location permission to the BLE app because Android treats BLE scanning/advertising as location‑related.
- Second device for verification: A friend’s phone, a tablet, or a BLE‑capable microcontroller (e.g., ESP32) will let you confirm that the peripheral is really broadcasting.
Step 1 – Verify BLE peripheral capability
- Open Settings → About phone and tap Build number seven times to enable Developer options (if not already enabled).
- Return to Settings → System → Developer options → enable Bluetooth HCI snoop log. This isn’t required for advertising, but it gives you a log file for later troubleshooting.
- Open the free app nRF Connect for Mobile (by Nordic Semiconductor). It works on all Android versions that support BLE.
- In nRF Connect, tap the Menu (three‑dot) → Device manager → Peripheral mode. If the option is greyed out, your device does not support BLE advertising.
Step 2 – Install and configure a BLE peripheral app
- Launch nRF Connect.
- Tap the + (plus) button at the bottom right and choose Server. This creates a custom GATT server that you can advertise.
- Give the server a name, e.g.,
AppitikaTest. The name is only for your reference inside the app.
- Tap Add service → enter a 128‑bit UUID for the service. Example:
0000180F-0000-1000-8000-00805F9B34FB
(That UUID corresponds to the Battery Service, but you can use any custom UUID.)
- Inside the newly created service, tap Add characteristic. Provide a characteristic UUID, e.g.,
00002A19-0000-1000-8000-00805F9B34FB
Set the properties to Read and Notify. Optionally set an initial value (e.g., 64 for 64 % battery).
- Press the back arrow to return to the server list. Your service now appears under the server name.
Step 3 – Start advertising
- Tap the server you just created to open its details page.
- Press the Advertise button (a radio‑wave icon). A dialog appears asking for advertising settings.
- Set Advertising mode to Low latency for fastest discovery, or Balanced if you want to conserve battery.
- Leave the Tx power at Medium unless you need a longer range.
- Enable Include device name if you want the peripheral name to show up in scanners.
- Tap Start advertising. The app will display a green banner saying “Advertising”.
Step 4 – Verify the advertisement
Use a second device to confirm that your phone is broadcasting correctly.
- On the second Android device, install nRF Connect (or any BLE scanner app).
- Open the app, go to the Scanner tab, and press the Refresh button.
- You should see a device named
AppitikaTest (or the default Android device name if you left the name field empty). Tap it.
- In the device details, you will see the service UUID you configured and the characteristic value. If you set a read property, tap the characteristic to read the value.
- Optionally, enable Notify on the characteristic and watch the value update in real time.
Step 5 – Test with a non‑Android BLE central (optional)
If you have a microcontroller (e.g., ESP32) or a desktop BLE dongle, you can use standard tools like gatttool or bleak (Python) to discover the service and read the characteristic. This proves that the peripheral works beyond Android‑to‑Android.
Step 6 – Stop advertising safely
- Return to nRF Connect on the advertising phone.
- Tap the Stop advertising button (same radio‑wave icon, now red). The green banner disappears.
- Close the app or disable Bluetooth if you no longer need BLE.
Common pitfalls and troubleshooting
- Advertising button is disabled: Your device does not support peripheral mode. Check the manufacturer’s spec or try a different phone.
- No device appears on the scanner:
- Make sure both phones have Bluetooth turned on and are not in Airplane mode.
- Location permission must be granted to the scanner app. On Android 12+, you may also need to enable Nearby devices permission.
- Some manufacturers (e.g., Xiaomi) add an extra battery‑saving toggle that disables BLE advertising when the screen is off. Keep the screen on or disable the toggle in Settings → Battery & performance.
- Characteristic value does not change: Ensure you set the characteristic’s properties to Notify and that the app is subscribed to notifications on the scanner side.
- App crashes while advertising: Update nRF Connect to the latest version from the Play Store. If the crash persists, clear the app cache (Settings → Apps → nRF Connect → Storage → Clear cache).
Advanced tips
- Multiple services: You can add several services to the same server. This is useful when you want to simulate a full peripheral (e.g., heart‑rate monitor + battery service).
- Dynamic data: Use the
Write property on a characteristic and a simple script inside the app (nRF Connect supports JavaScript actions) to change the value based on user input.
- Background advertising: Android limits background BLE advertising to a few seconds per hour for non‑system apps. For continuous testing, keep the app in the foreground or use a dedicated system app (requires root).
- Power considerations: Advertising at Low latency can consume up to 30 mA. If you need to run the peripheral for hours, switch to Balanced or Low power mode.
Safety and privacy notes
BLE advertisements are broadcast publicly. Do not include personally identifying information (e.g., your real name or phone number) in the device name or service data. When testing with custom UUIDs, use randomly generated values rather than official ones to avoid accidental collisions with real products.
Summary
By installing a free BLE peripheral app, creating a custom GATT server, and starting advertising, you can turn any compatible Android phone into a functional BLE peripheral without rooting. The workflow described here gives you a reliable test platform for developers, makers, and anyone needing a quick BLE beacon. The same steps can be adapted to other apps that expose peripheral mode, but nRF Connect offers the most transparent interface and the least friction for beginners.