Understanding beacon ID's
There are three different ID's that make a beacon unique. These are the UUID, Major and Minor values.
UUID: This is a 16 byte string used to differentiate a large group of related beacons. For example, if McDonalds deployed a network of beacons across many franchises, all of their beacons would share the same UUID. This allows the McDonald's smartphone app to know which signals come from McDonald's owned beacons.
Major: This is a 2 byte string used to differentiate a smaller subset of beacons within the larger group. For example, if McDonalds had 5 beacons in a restaurant, all 5 would share the same Major. This allows the McDonald's app to know which store the customer is in.
Minor: This is a 2 byte string that is used to identify individual beacons. For example, if McDonalds had 5 beacons in a restaurant, each beacon would have its own unique Minor. This allows the McDonald's app to know exactly where the customer is in the restaurant e.g. at the cashier.
The way you configure your beacons has a significant impact on both performance and battery life. There are two key beacon configuration settings to consider:
- Transmitting Power
Most beacons have a configurable power setting which is the power with which the signal leaves the beacon's antenna. This can typically be configured from -30 dBm to +4 dBm, lowest to highest power settings respectively. The higher the power, the larger the beacon's range and the more stable the signal, but it also shortens battery life significantly. Carefully consider your use case when setting the transmitting power.
- Advertising Interval
Advertising interval refers to the delay between broadcast advertising packets. When you decrease the advertising interval you increase the rate at which the advertising packets are sent. A higher rate will reduce the response time for a device to recognise that it has entered a beacon region. However, this also results in higher power consumption and therefore reduced battery life. Most beacons can be configured advertising interval from 0.1s (10 advertisements per second) to 30 seconds (2 advertisements per minute). Your goal should be to find the right balance between responsiveness of the app and battery life of the beacon.
Beacon deployments are one of the trickiest parts of setting up a beacon program.
For best results you should consider programming and mapping your beacons before deploying on site. It's also worth noting that when programming a beacon with an app, you need to be out of range of all other beacons, otherwise it's difficult to know which beacon you are actually programming.
Tip: Keep your beacons in a microwave to prevent them from broadcasting signals while you test and program other beacons.
It's also important to test beacon ranges at the site you plan to deploy to, as different environments can significantly alter the beacon signal. For example, in an empty shopping mall full of reflective surfaces the range can increase significantly due to the signal bouncing. Or in a crowded environment with lots of people, the range can decrease significantly.
Finally, do plenty of testing. Replicate your deployment in your office and test different beacon settings. During deployment, test each beacon as you go to see how it behaves with your app. You don't want to get to the end of the deployment and then realise that you have to change all of the beacon settings. Or worse still you have to go back and reposition them.
Related blog post: 5 lessons learned from one of Australia's largest beacon deployments.
Once you deploy a large network of beacons we strongly advise having a maintenance plan in place. You will need a way to identify beacons in the network that are no longer functioning. Some beacon manufacturers offer the ability monitor battery life. We've built fail safe mechanisms into our Lighthouse software that create alerts when a beacon signal is no longer being recorded as expected.