I turned my raspberry pi to ibeacon transmitter, but my iPhone cannot detect my pibeacon signals for ranging, for example, it cannot say( push notification) whenever it's close( in the immediate distance) to pibeacon. However, my phone is working properly with other kinds of USB beacons such as Bluegiga and Radbeacon. Has anyone ever faced the same problem?
-
Clearly something is wrong with the format of your Pi's transmission such that it is not recognized by iOS devices as an iBeacon packet. You'll need to provide more information (post code if you have it) about what the transmitter is doing. – davidgyoung Jun 30 '18 at 18:04
-
My applications for BLE devices can detect it, also they can detect it when it enter to their region( did enter region), but when it comes to ranging, it cannot push notification to app when it's in the specific range of distance while the same app can detect other ibeacons ranges. I'm using this code to start transmitting and using Bluez. – fafa92 Jun 30 '18 at 18:24
-
sudo hciconfig hci0 up sudo hciconfig hci0 leadv 3 sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 43 F2 AC D1 55 22 4E 0D 9E 3F 4A 82 8E A1 2C 25 00 00 00 00 C8 – fafa92 Jun 30 '18 at 18:27
-
Do you start advertising with `sudo hciconfig hci0 leadv 0` ? How are you trying to detect on iOS -- are you writing your own code or using an app? If you are using your own code, please show how you set up the beacon region. – davidgyoung Jun 30 '18 at 19:07
-
I'm starting with sudo hciconfig hci0 leadv 3 No, I'm using different apps for scanning BLEs and all of them can detect my pibeacon's RSSI and it's distance, but when it comes to ranging it cannot be detected as other beacons, I wonder that's because of raspberry pi signal issue maybe? not sure why that's the problem, the signal is strong as I'm seeing it and everything looks fine, wonder if that's a problem related to advertising packets per seconds maybe?! – fafa92 Jun 30 '18 at 19:46
1 Answers
iOS devices will not detect iBeacons packets unless the ProximityUUID of the beacon packet is pre-configured into the iOS app that is searching for them. Based on the commands shown in the question, the ProximityUUID being configured with the Pi is 43F2ACD1-5522-4E0D-9E3F-4A828EA12C25
It may just be that the iOS app you are using to try to detect it as an iBeacon packet is not pre-configured to look for the above ProximityUUID.
Non-beacon BLE apps on iOS can see your Pi's advertisements, so the fact that non-beacon apps detect it can still mean this is the problem.
If you are successful in using a beacon app to detect a RadBeacon, it can probably detect the default RadBeacon Proximity UUID of 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6. If your app can detect that, try configuring that into your Raspberry Pi start advertising command like this:
sudo hciconfig hci0 up sudo hciconfig hci0 leadv 3 sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 2F 23 44 54 CF 6D 4A 0F AD F2 F4 91 1B A9 FF A6 00 00 00 00 C8

- 63,876
- 14
- 121
- 204
-
Also one more thing, is it necessary to know minor and major of our beacon to be detected by ios app ranging function? or we just need UUID, so minor and major doesn't matter for ranging detection? – fafa92 Jul 01 '18 at 18:55
-
1You only need to know the uuid. You construct a `CLBeaconRegion` object when you start ranging monitoring beacons, which tells the OS which to match. The uuid is required, but the major and minor are optional. If you leave them nil, it will match all major and minor or values. – davidgyoung Jul 01 '18 at 22:54