BLE UUID lookup on iPhone: find and name a device's service UUIDs
Every BLE service and characteristic carries a UUID, and connecting to a device in Periphery's inspector is how you see them: each one shows its raw UUID, and the common ones also get a readable name, Battery Level for 2A19, say. Those names come from a small list stored right in the app, so the lookup works offline. Anything not on that list just stays raw hex, and that is most of what you will meet in the wild.
Short and long BLE UUIDs
The Bluetooth SIG's own services and characteristics use short 16-bit UUIDs, 4 hex digits, 180F for Battery Service and so on. Vendors and hobby projects instead write full 128-bit ones, like 6E400001-B5A3-F393-E0A9-E50E24DCCA9E for Nordic UART. A short UUID is enough on its own to look up. A long custom one only means something once its maker has published what it stands for, and plenty never do.
How to find the UUID of a Bluetooth device's services
- Tap Scan and find your device. Filter by name with Filter by name or UUID if the list is long.
- Tap the device to open the inspector. Periphery connects and lists every service it finds.
- Each service header shows its name when Periphery knows it, otherwise the raw UUID. Tap a header to fold or unfold its characteristics.
- Under each characteristic's name, the raw UUID is always shown in small type, so you can copy it into your own code or notes.
Do not confuse that with the identifier on the scan row; that one is the ID iOS assigns to the device itself, a different thing entirely from a service UUID.
UUIDs Periphery names offline
It is a short list, built around what developers actually run into. Here is everything it resolves:
| UUID | Name shown |
|---|---|
| 1800 | Generic Access |
| 1801 | Generic Attribute |
| 180A | Device Information |
| 180D | Heart Rate |
| 180F | Battery Service |
| 1810 | Blood Pressure |
| 1812 | Human Interface Device |
| 1816 | Cycling Speed and Cadence |
| 1818 | Cycling Power |
| 181A | Environmental Sensing |
| FFF0 | Xiaomi Service |
| 6E400001-B5A3-F393-E0A9-E50E24DCCA9E | Nordic UART Service |
| 5C7A4CD0-07F5-4F60-BF6A-C7B2A61CBBF8 | ESP32 Custom Service |
| ADE3D529-C784-4F63-A987-EB69F70EE816 | Shelly BLU |
| UUID | Name shown |
|---|---|
| 2A19 | Battery Level |
| 2A24 | Model Number |
| 2A26 | Firmware Revision |
| 2A29 | Manufacturer Name |
| 2A37 | Heart Rate Measurement |
| 2A38 | Body Sensor Location |
| 2A6E | Temperature |
| 2A6F | Humidity |
| FFF1 | Xiaomi Data |
| 6E400002-B5A3-F393-E0A9-E50E24DCCA9E | Nordic UART RX |
| 6E400003-B5A3-F393-E0A9-E50E24DCCA9E | Nordic UART TX |
25 UUIDs, total, nowhere near the full Bluetooth SIG list. Anything off that list stays as raw hex, which is your cue to check the chip vendor's docs or the Bluetooth SIG's own assigned numbers.
Worked example: a Nordic UART board
Connect to an nRF-based board running Nordic UART and the service header reads Nordic UART Service. Under it: Nordic UART RX (6E400002-...) carrying a W tag, the one you write into, and Nordic UART TX (6E400003-...) with an N tag, the one that talks back. The card up top names it Nordic UART Device, as you would hope.
Common mistakes
- Mixing up the scan-row identifier with a service UUID. These are two unrelated numbers.
- Assuming FFF0 always means Xiaomi. Plenty of cheap devices reuse FFF0 and FFF1 for their own data.
- Expecting a name for every custom UUID. A custom 128-bit one is private until its maker decides to publish it.
- Typing a service UUID into the scan filter and wondering why nothing matches. Filter by name or UUID only reads the device's name or its iOS identifier, never the services sitting inside it.
Questions and answers
Does the UUID lookup need internet?
Why do some services show only a long hex code?
Where is the UUID of a Bluetooth device itself?
You might also like
More Periphery guides
- How to find a lost Bluetooth device with your iPhone by signal strength
- Using a Bluetooth scanner app on iPhone to list nearby BLE devices
- How to identify an unknown Bluetooth device on iPhone
- How to read, write and subscribe to a BLE characteristic from your iPhone
- How to check Bluetooth signal strength on iPhone
- All questions about Periphery
- Back to Periphery