Adafruit's Bluefruit LE modules currently support the following 'Beacon' technologies:
- Beacon (Apple) via AT+BLEBEACON
- UriBeacon (Google) via AT+BLEURIBEACON (deprecated)
- Eddystone (Google) via AT+EDDYSTONE*
Modules can be configured to act as 'Beacons' using the following commands:
AT+BLEBEACON
Codebase Revision: 0.3.0
Parameters: The following comma-separated parameters are required to enable beacon mode:
- Bluetooth Manufacturer ID (uint16_t)
- 128-bit UUID
- Major Value (uint16_t)
- Minor Value (uint16_t)
- RSSI @ 1m (int8_t)
Output: None
# Enable Apple iBeacon emulation # Manufacturer ID = 0x004C AT+BLEBEACON=0x004C,01-12-23-34-45-56-67-78-89-9A-AB-BC-CD-DE-EF-F0,0x0000,0x0000,-59 OK # Reset to change the advertising data ATZ OK # Enable Nordic Beacon emulation # Manufacturer ID = 0x0059 AT+BLEBEACON=0x0059,01-12-23-34-45-56-67-78-89-9A-AB-BC-CD-DE-EF-F0,0x0000,0x0000,-59 OK # Reset to change the advertising data ATZ OK
Entering Nordic Beacon emulation using the sample code above, you can see the simulated beacon in Nordic's 'Beacon Config' tool below:
AT+BLEURIBEACON
Converts the specified URI into a UriBeacon advertising packet, and configures the module to advertise as a UriBeacon (part of Google's Physical Web project).
To view the UriBeacon URIs you can use one of the following mobile applications:
- Android 4.3+: Physical Web on the Google Play Store
- iOS: Physical Web in Apple's App Store
Codebase Revision: 0.4.7
Parameters: The URI to encode (ex. http://www.adafruit.com/blog)
Output: None of a valid URI was entered (length is acceptable, etc.).
AT+BLEURIBEACON=http://www.adafruit.com/blog OK # Reset to change the advertising data ATZ OK
If the supplied URI is too long you will get the following output:
AT+BLEURIBEACON=http://www.adafruit.com/this/uri/is/too/long URL is too long ERROR
Deprecated: AT+EDDYSTONEENABLE
This command will enable Eddystone support on the Bluefruit LE module. Eddystone support must be enabled before the other related commands can be used.
Codebase Revision: 0.6.6
Parameters: 1 or 0 (1 = enable, 0 = disable)
Output: The current state of Eddystone support if no parameters are provided (1 = enabled, 0 = disabled)
# Enable Eddystone support AT+EDDYSTONEENABLE=1 OK # Check the current Eddystone status on the module AT+EDDYSTONEENABLE 1 OK
AT+EDDYSTONEURL
This command will set the URL for the Eddystone-URL protocol.
Codebase Revision: 0.6.6
Parameters:
- The URL to encode (mandatory)
- An optional second parameter indicates whether to continue advertising the Eddystone URL even when the peripheral is connected to a central device
- Firmware 0.6.7 added an optional third parameter for the RSSI at 0 meters value. This should be measured by the end user by checking the RSSI value on the receiving device at 1m and then adding 41 to that value (to compensate for the signal strength loss over 1m), so an RSSI of -62 at 1m would mean that you should enter -21 as the RSSI at 0m. Default value is -18dBm.
Output: Firmware <= 0.6.6: none. With firmware >= 0.6.7 running this command with no parameters will return the current URL.
# Set the Eddystone URL to adafruit AT+EDDYSTONEURL=http://www.adafruit.com OK # Set the Eddystone URL to adafruit and advertise it even when connected AT+EDDYSTONEURL=http://www.adafruit.com,1 OK
AT+EDDYSTONECONFIGEN
This command causes the Bluefruit LE module to enable the Eddystone URL config service for the specified number of seconds.
This command should be used in combination with the Physical Web application from Google, available for Android or iOS. Run this command then select the 'Edit URL' option from the app to change the destination URL over the air.
Codebase Revision: 0.6.6
Parameters: The number of seconds to advertised the config service UUID
Output: None
# Start advertising the Eddystone config service for 5 minutes (300s) AT+EDDYSTONECONFIGEN=300 OK
AT+EDDYSTONESERVICEEN
Adds or removes the Eddystone service from the GATT table (requires a reset to take effect).
Codebase Revision: 0.7.0
Parameters: Whether or not the Eddystone service should be enabled or not, using on of the following values:
- on
- off
- 1
- 0
Output: If the command is executed with no parameters it will disable a numeric value indicating whether the service is enabled (1) or disabled (0).
# Enable Eddystone service AT+EddyStonServiceEn=on OK AT+EddyStonServiceEn=1 OK # Disable Eddystone service AT+EddyStonServiceEn=off OK AT+EddyStonServiceEn=0 OK
AT+EDDYSTONEBROADCAST
This command can be used to start of stop advertising the Eddystone payload using the URL stored in non-volatile memory (NVM).
Codebase Revision: 0.7.0
Parameters: Whether or not the payload should be broadcast, using one of the following values:
- on
- off
- 1
- 0
Output: If executed with no parameters, the current broadcast state will be displayed as a numeric value.
# Enable broadcasting current setting of EddyStone (stored previously on nvm) AT+EddyStoneBroadcast=on OK AT+EddyStoneBroadcast=1 OK # Disable broadcasting current setting of EddyStone (still stored on nvm) AT+EddyStoneBroadcast=off OK AT+EddyStoneBroadcast=0 OK
Text editor powered by tinymce.