User:TeaglesCS/sandbox

Bluetooth beacons are hardware transmitters - a class of Bluetooth low energy (LE) devices that broadcast their identifier to nearby portable electronic devices. The technology enables smartphones, tablets and other devices to perform actions when in close proximity to a beacon.

Bluetooth beacons uses Bluetooth low energy proximity sensing to transmit a universally unique identifier picked up by a compatible app or operating system. The identifier and several bytes sent with it can be used to determine the device's physical location, track customers, or trigger a location-based action on the device such as a check-in on social media or a push notification.

One application is distributing messages at a specific Point of Interest, for example a store, a bus stop, a room or a more specific location like a piece of furniture or a vending machine. This is similar to previously used geopush technology based on GPS, but with a much reduced impact on battery life and much extended precision.

Another application is an indoor positioning system,  which helps smartphones determine their approximate location or context. With the help of a Bluetooth beacon, a smartphone's software can approximately find its relative location to a Bluetooth Beacon in a store. Brick and mortar retail stores use the beacons for mobile commerce, offering customers special deals through mobile marketing, and can enable mobile payments through point of sale systems.

Bluetooth beacons differs from some other location-based technologies as the broadcasting device (beacon) is only a 1-way transmitter to the receiving smartphone or receiving device, and necessitates a specific app installed on the device to interact with the beacons. This ensures that only the installed app (not the Bluetooth beacon transmitter) can track users, potentially against their will, as they passively walk around the transmitters.

Bluetooth beacon transmitters come in a variety of form factors, including small coin cell devices, USB sticks, and generic Bluetooth 4.0 capable USB dongles.

History and Development
The development of the "short-link" radio technology, later named Bluetooth, was initiated in 1989 by Dr. Nils Rydbeck CTO at Ericsson Mobile in Lund and Dr. Johan Ullman. The purpose was to develop wireless headsets, according to two inventions by Johan Ullman, SE 8902098-6, issued 1989-06-12 and SE 9202239, issued 1992-07-24. Since its creation the Bluetooth standard has gone through many generations each adding different features. Bluetooth 1.2 allowed for faster speed up to ~700 kbit/s. Bluetooth 2.0 improved on this for speeds up to 3 Mbit/s. Bluetooth 2.1 improved device pairing speed and security. Bluetooth 3.0 again improved transfer speed up to 24 Mbit/s. In 2010 Bluetooth 4.0 (Low Energy) was released with its main focus being reduced power consumption. Before Bluetooth 4.0 the majority of connections using Bluetooth were two way, both devices listen and talk to each other. Although this two way communication is still possible with Bluetooth 4.0, one way communication is also possible. This one way communication allows a bluetooth device to transmit information but not listen for it. These one way "beacons" do not require a paired connection like previous Bluetooth devices so they have new useful applications.

Battery Powered




Bluetooth beacons operate using the Bluetooth 4.0 Low Energy standard so battery powered devices are possible. Battery life devices varies depending on manufacturer. The Bluetooth LE protocol is significantly more power efficient than Bluetooth Classic. Several chipsets makers, including Texas Instruments and Nordic Semiconductor now supply chipsets optimized for iBeacon use. Power consumption depends on iBeacon configuration parameters of advertising interval and transmit power. A study on 16 different iBeacon vendors reports that battery life can range between 1–24 months. Apple's recommended setting of 100 ms advertising interval with a coin cell battery provides for 1–3 months of life, which increases to 2–3 years as advertising interval is increased to 900 ms.

Battery consumption of the phones is a factor that must be taken into account when deploying beacon enabled apps. A recent report has shown that older phones tend to draw more battery in the vicinity of iBeacons, while the newer phones can be more efficient in the same environment. In addition to the time spent by the phone scanning, number of scans and number of beacons in the vicinity are also significant factors for battery drain, as pointed out by the Aislelabs report. In a follow up report, Aislelabs found a drastic improvement in battery consumption for iPhone5S, iPhone 5C versus the older model iPhone 4S. At 10 surrounding iBeacons, iPhone 4S can consume up to 11% of battery per hour whereas iPhone5S consumes a little less than 5% battery per hour. An energy efficient iBeacon application needs to consider these aspects in order to strike a good balance between app responsiveness and battery consumption.

USB Powered
Bluetooth beacons can also come in the form of USB dongles. These small USB beacons can be powered by a standard USB port which makes them ideal for long term permanent installations.

Advertising
Bluetooth Beacons can be used to send a packet of information contain a Universally Unique Identifier (UUID),this UUID is used to trigger events specific to that beacon. In the case of Apple's iBeacon the UUID will be recognized by an app on the user device that will trigger an event. This event is fully customizable by the app developer but in the case of advertising the event might be a push notification with the an ad. However with a UID based system the users device must connect to an online served which is capable of understanding the beacons UUID. Once the UUID is sent to the server the appropriate message action is sent to a users device.

Other methods of advertising are also possible with beacons, URIBeacon and Googles Eddystone and allow for a URI transmission mode that unlike iBeacons UID doesn't require an outside server for recognition. The URI beacons transmit a URI which could be a link to a webpage and the user will see that URI directly on their phone.

Indoor Navigation
Indoor positioning with beacons falls into three categories. Implementations with many beacons per room, implementations with one beacon per room, and implementations with a few beacons per building. Indoor navigation with Bluetooth is still in its infancy but attempts have been made to fine a working solution.

Many beacons per room
With multiple beacons per room trilateration can be used to estimate a users position to within about 2 meters. Bluetooth beacons are capable of transmitting their Received Signal Strength Indicator (RSSI) value in addition to other data. This RSSI value is calibrated by the manufacturer of the beacon to be the signal strength of the of the beacon at a know distance, typically one meter. Using the known the output signal strength of the beacon and the signal strength observed by the receiving device an approximation can be made about the distance between the beacon and the device. However this approximation is not very reliable, so for more accurate position tracking other methods are preferred. Since its release in 2010 many studies have been connected using Bluetooth beacons for tracking. A few methods have been tested to find the best way of combining the RSSI values together for tracking. Neural networks have been proposed as a good way of reducing the error in estimation. A Stigmerigic approach has also been tested, this method uses a intensity map to estimate a users location.

One beacon per room
With only one beacon per room a user can use their known room position in conjunction with a virtual map of all the rooms in a building to navigate a building. A building with many separate rooms may need a different beacon configuration for navigation. With one beacons in each room a user can use an app to know the room they are in, and a simple shortest path algorithm can be user to give them best route to the room they are looking for. This configuration requires a digital map of the building but attempts have been made to make this map creation easier.

Few beacons per building

Beacons can be used in conjunction with Pedestrian Dead Reckoning(PDR) techniques to add checkpoints to a large open space. PDR uses a known last location in conjuction with direction and speed information provided by the user to estimate a persons location. This technique can be used to estimate a persons location as they walk through a building. Using Bluetooth beacons as checkpoints the users location can be recalculated to reduce error. In this way a few Bluetooth beacons can be used to cover a large area like a mall.

Healthcare
Using the device tracking capabilities of Bluetooth beacons, in-home patient monitoring is possible. Using bluetooth beacons a persons movements and activities can be tracked in their home. Bluetooth beacons are a good alternative to in house cameras due to their increased level of privacy. Additionally bluetooth beacons can be used in hospitals or other workplaces to ensure workers meet certain standards. For example a beacon may be placed at a hand sanitizer dispenser in a hospital, the beacons can help ensure employees are using the station regularly.

Privacy
(possible section)

iBeacon
In mid-2013 Apple introduced iBeacons and experts wrote about how it is designed to help the retail industry by simplifying payments and enabling on-site offers. On December 6, 2013, Apple activated iBeacons across its 254 US retail stores. McDonalds has used the devices to give special offers to consumers in its fast-food stores. As of May 2014, different hardware iBeacons can be purchased for as little as $5 per device to more than $30 per device. Each of these different iBeacons have varying default settings for their default transmit power and iBeacon advertisement frequency. Some hardware iBeacons advertise at as low as 1 Hz while others can be as fast as 10 Hz. iBeacon technology is still in its infancy. One well reported software quirk exists on 4.2 and 4.3 Android systems whereby the system's bluetooth stack crashes when presented with many iBeacons. This was reportedly fixed in Android 4.4.4.

AltBeacon
AltBeacon is an open source alternative to iBeacon created by Radius Networks

URIBeacon
URIBeacons are different from iBeacons and AltBeacons because rather than broadcasting an identifier, they send a URL which can be understood immediately.

Eddystone
Eddystone is a Google's standard for Bluetooth beacons. It supports three types of packets, Eddystone-UID, Eddystone-URL, and Eddystone-TLM. Eddystone-UID functions in a very similar way to Apple's iBeacon however is supports additional telemetry data with Eddystone-TLM. The telemetry information is sent along with the UID data. The beacon information available includes battery voltage, beacon temperature, number of packets sent since last startup, and beacon uptime.

Functions


An iBeacon deployment consists of one or more iBeacon devices that transmit their own unique identification number to the local area. Software on a receiving device may then look up the iBeacon and perform various functions, such as notifying the user. Receiving devices can also connect to the iBeacons to retrieve values from iBeacon's GATT (generic attribute profile) service. iBeacons do not push notifications to receiving devices (other than their own identity). However, mobile software can use signals received from iBeacons to trigger their own push notifications.

Region monitoring
Region monitoring is limited to 20 regions and can function in the background (of the listening device) and has different delegates to notify the listening app (and user) of entry/exit in the region - even if the app is in the background or the phone is locked. Region monitoring also allows for a small window in which iOS gives a closed app an opportunity to react to the entry of a region.

Ranging
As opposed to monitoring, which enables users to detect movement in-and-out of range of the beacons, ranging provides a list of beacons detected in a given region, along with the estimated distance from the user's device to each beacon. Ranging works only in the foreground but will return (to the listening device) an array (unlimited) of all iBeacons found along with their properties (UUID, etc.)

An iOS device receiving an iBeacon transmission can approximate the distance from the iBeacon. The distance (between transmitting iBeacon and receiving device) is categorized into 3 distinct ranges:
 * Immediate: Within a few centimeters
 * Near: Within a couple of meters
 * Far: Greater than 10 meters away

An iBeacon broadcast has the ability to approximate when a user has entered, exited, or lingered in region. Depending on a customer's proximity to a beacon, they are able to receive different levels of interaction at each of these three ranges.

The maximum range of an iBeacon transmission will depend on the location and placement, obstructions in the environment and where the device is being stored (e.g. in a leather handbag or with a thick case). Standard beacons have an approximate range of 70 meters. Long range beacons can reach up to 450 meters.

Settings
The frequency of the iBeacon transmission depends on the configuration of the iBeacon and can be altered using device specific methods. Both the rate and the transmit power have an effect on the iBeacon battery life. iBeacons come with predefined settings and several of them can be changed by the developer. Amongst others the rate and the transmit power can be changed as well as the Major and Minor values. The Major and Minor values are settings which can be used to connect to specific iBeacons or to work with more than one iBeacon at the same time. Typically, multiple iBeacon deployment at a venue will share the same UUID, and use the major and minor pairs to segment and distinguish subspaces within the venue. For example, the Major values of all the iBeacons in a specific store can be set to the same value and the Minor value can be used to identify a specific iBeacon within the store.

Technical details
Bluetooth low energy devices can operate in an advertisement mode to notify nearby devices of their presence. At the most simple form, an iBeacon is a Bluetooth low energy device emitting advertisement following a strict format, that being an Apple defined iBeacon prefix, followed by a variable UUID, and a major, minor pair. An example iBeacon advertisement frame could look like: fb0b57a2-8228-44 cd-913a-94a122ba1206 Major 1 Minor 2 where fb0b57a2-8228-44 cd-913a-94a122ba1206 is the UUID. Since iBeacon advertisement is just an application of the general Bluetooth low energy advertisement, the above iBeacon can be emitted by issuing the following command on Linux to a supported Bluetooth 4 Low Energy device on a modern kernel. Devices running the Android operating system prior to version 4.4 can only receive iBeacon advertisements but cannot emit iBeacon advertisements. Android 5.0 ("Lollipop") added the support for both central and peripheral modes.

hcitool -i hci0 cmd 0x08 0x0006 a0 00 a0 00 03 00 00 00 00 00 00 00 00 07 00 hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 FB 0B 57 A2 82 28 44 CD 91 3A 94 A1 22 BA 12 06 00 01 00 02 D1 00 hcitool -i hci0 cmd 0x08 0x000a 01
 * 1) 02 01 06 1a ff 4c 00 02 15  # Apple's fixed iBeacon advertising prefix

For retransmission interval setting (first of above commands) to work again, the transmission must be stopped with

hcitool -i hci0 cmd 0x08 0x000a 00

Spoofing
By design, the iBeacon advertisement frame is plainly visible. This leaves the door open for interested parties to capture, copy and reproduce the iBeacon advertisement frames at different physical locations. This can be done simply by issuing the right sequence of commands to compatible Bluetooth 4.0 USB dongles. Successful spoofing of Apple store iBeacons was reported in February 2014. This is not a security flaw in the iBeacon per se, but application developers must keep this in mind when designing their applications with iBeacons.

PayPal has taken a more robust approach, where the Beacon is purely the start of a complex security negotiation (Challenge–response authentication). This is not likely to be hacked, nor is it likely that it would be disrupted by copies of beacons.

Listening for iBeacon can be achieved using the following commands with a modern Linux distribution: hcitool -i hci0 lescan—passive D6:EE:D4:16:ED:FC (unknown) F6:BE:90:32:3C:5E (unknown) ... On another terminal, launch the protocol dump program: hcidump -R -i hci0 > 04 3E 2A 02 01 00 01 FC ED 16 D4 EE D6 1E 02 01 06 1A FF 4C 00 02 15 B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D ED  FC D4 16 B6 B4 ...

The MAC address of the iBeacon along with its iBeacon payload is clearly identifiable. The sequence of commands in technical details can then be used to reproduce the iBeacon frame.

Compatible devices

 * iOS devices with Bluetooth 4.0 (iPhone 4S and later, iPad (3rd generation) and later, iPad Mini (1st generation) and later, iPod Touch (5th generation))
 * Macintosh computers with OS X Mavericks (10.9) and Bluetooth 4.0
 * Android 4.3+ (e.g. Samsung Galaxy S3/S4, Samsung Galaxy Note 2/3, HTC One, Google/LG Nexus 7 2013 /Nexus 4/Nexus 5, OnePlus One, LG G3)
 * Windows Phone devices with the Lumia Cyan update or above. (reports suggest support is not included with Windows Phone 8.1)

Comparable technologies
In 2010 an Australian company called DKTOB (trading as Daelibs ), was the first company to leverage Bluetooth for indoor proximity sensing in its Seeknfind location attendance solution. Daelibs designed and manufactured a Bluetooth beacon for use in shopping centres based on the Bluegiga chipset. In 2012 Daelibs filed its Bluetooth beacon patent.

Hewlett-Packard Research Labs introduced the "CoolTown" technology that combined infrared "beacons" and software using then-current PDA technology. A common method was to have the beacon transmit a URL rather than a unique identifier although arbitrary identifiers (including unique identifiers) could be used.

Although the Near field communication (NFC) environment is very different and has many non-overlapping applications, it is still compared with iBeacons.
 * NFC range is up to 20 cm (7.87 inches) but the optimal range is < 4 cm (1.57 inches). iBeacons have a significantly larger range.
 * NFC can be either passive or active. When using passive mode, the power is sent from the reader device. Whereas although Passif (bought by Apple Inc.) has worked on reducing the energy consumption, a battery pack is still needed inside iBeacon tags at this time.
 * Most Android smart devices ship with both Bluetooth 4.0 LE and NFC support. On September 19, 2014 also Apple released the iPhone 6 and iPhone 6 plus, supporting the NFC standard, but only limited to payments

Another comparable technology employed in marketing applications , but operating in the opposite direction to iBeacons, is the Seeketing Node. The Seeketing Node works by listening for mobile devices rather than by emitting an RF signal, as iBeacons do. The signal emitted by a iBeacon is only interpreted by phones with a previously installed App, where the intelligence resides, and which are compatible with BLE (Bluetooth v 4.0) and have it currently active. These three simultaneous conditions make the use of iBeacons less fruitful in real environments, failing to capture results on visitor path behavior in stores, malls, airports, etc., because said conditions are currently met by only around 1% of total clients.

By contrast, Seeketing Nodes hear the signals in bandwidths at 2.4 GHz, 5 GHz, 800-900 MHz and 1700-1800 Mhz, which all phones and tablets emit. Thus, a particular device user need not have an App installed. Seeketing antennas are equipped both to detect mobile devices and to assign each a unique identifier. Thus, along with available Seeketing SDKs and WebService, applications and solutions can be performed that are of equal or greater quality than those of iBeacons, reaching up to 70% of visitors. Seeketing Nodes can also assign one unique identifier to devices with no App installed, and another unique identifier to devices surfing the internet (in terms of pages which include a corresponding Seeketing SDK). That is, this technology can issue a unique identifier both offline (in-store) and online (Web/App). Not merely a comparable technology, Seeketing is a viable a substitute technology that overcomes certain barriers currently associated with iBeacons in their implementation. Seeketing Nodes also offer a much larger area of coverage and are configurable, requiring only connection to a standard power supply (125/220V) and thus avoiding the need for battery maintenance.