Hi,
I have a platform.io project in which I'm trying to setup an iBeacon and it seems to work except the RSSI is 0.
Using different scanner applications I can see the generated iBeacon (right UUID, major, and minor) but like I mentioned the RSSI is always 0.
I would appreciate any (general) pointers as to what could be the root cause. Also, if anyone has or knows of a working example I could use that.
Note that I also tried to use the NimBLE library with the same issue.
The relevant part of the code:
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEBeacon.h>
#include <Ticker.h>
bool is_advertising;
Ticker switchAdertising;
BLEAdvertising *pAdvertising;
void setup_beacon()
{
BLEDevice::init("BleBrain");
BLEServer *pServer = BLEDevice::createServer();
BLEBeacon myBeacon = BLEBeacon();
myBeacon.setManufacturerId(0x4C00);
myBeacon.setMajor(beacon.major);
myBeacon.setMinor(beacon.minor);
BLEUUID bleUUID = BLEUUID(IBEACON_UUID);
bleUUID = bleUUID.to128();
myBeacon.setProximityUUID(BLEUUID(bleUUID.getNative()->uuid.uuid128, 16, true));
myBeacon.setSignalPower(0xc5);
BLEAdvertisementData advertisementData;
advertisementData.setFlags(0x1A);
advertisementData.setManufacturerData(myBeacon.getData());
pAdvertising = pServer->getAdvertising();
pAdvertising->setAdvertisementData(advertisementData);
pAdvertising->start();
is_advertising = true;
};
void advertising_switch()
{
if (is_advertising)
{
pAdvertising->stop();
} else {
pAdvertising->start();
}
};