Bluetooth BLE Beacon, Advertise - bluetooth

when starting with this Bluetooth low Energy (BLE) development, i come across some questions:
with my development board, I can send out advertisement beacons, they are recognized by Windows 7 (Bluetooth, Add Device). The demo application on the board sends out beacons which are in length <31 bytes. In this data there is included the data for length, an ID byte and a string.
But how is Windows able to identify the Bluetooth device address (BD) and the name of my device? This data is not included in the advertisement beacon, but I cannot find any document which describes how this data is transported.
So the relevant data is:
the Beacon .. the BD address .. the device name

The Bluetooth MAC address is sent in the header of any packet a BLE device transmits. This is added at the hardware layer, so you probably do not realize it is happening.
Similarly, when a BLE device is configured with a local name, it is transmitted by the chip automatically in a separate advertisement packet. Since this packet also had a header with the MAC address, the receiving chip uses this address to align the received name/MAC with any other packet received for that MAC.
This is how the Windows device knows the name and MAC for your received advertisements.

Related

iOS Core Bluetooth peripheral scan question: how to distinguish multiple devices advertising at the same time

We have multiple devices (same kind) advertising at the same time. But in iOS, all the advertising packets are treated as one device.
Understand the reason: iOS filtered out the BLE address for privacy reasons.
Without BLE address the advertising packets from the difference devices are exactly the same.
My question is: is it possible to use iOS core bluetooth to tell there are multiple devices are advertising?
Thanks

What is bluetooth le multi advertising?

I couldn't find a clear explanation what is Bluetooth le multi advertising.
For example, in Specification of the Bluetooth System, I see only
description of BLE advertising but not multi advertising.
What the difference between BLE advertising and multi advertising?
Thanks
LE Multi advertising refers to a specific offload (non bluetooth specification) feature that has been implemented in the Android releases by Google, starting from the L release.
What multi advertising means is, that your Android phone or a device with Android stack, can enable multiple advertisement trains at the same time. For instance, one specific app can set certain advertisement data (example supported services etc.), advertisement parameters and enable advertisement, and so can N number of other apps, on the same device.
At the hardware level (or physical layer), these advertisement trains are interleaved between the three advertisement channels (37, 38, 39) and thus your phone behaves as multiple peripheral devices at the same time. All these advertisement trains also have a separate Random private address, so they are seen distinctly by the remote scanner.
Bluetooth Smart has two ways of communicating. The first one is using advertisements, where a BLE peripheral device broadcasts packets to every device around it. The receiving device can then act on this information or connect to receive more information. The second way to communicate is to receive packets using a connection, where both the peripheral and central send packets. We will focus on advertisement for several reasons:
You can’t create a connection between two devices without using advertisements. Defining the data and format of advertisement packets is usually the first thing you work on when developing a BLE device.
A large number of BLE products sleep most of the time, waking up only to advertise and connect when needed. This means advertisements have a big impact on power consumption.
Users want responsive products, and the advertising interval is critical in quick connections.
Advertising is by design unidirectional. A Central device can’t send any data to the Peripheral device without a connection. But a single peripheral can advertise to multiple masters in the area.
ref:http://www.argenox.com/bluetooth-low-energy-ble-v4-0-development/library/a-ble-advertising-primer/

BLE peripheral: scanning while connected

Is it possible to make a peripheral scan for advertisments while connected to a central? It seems like it is either scanning for advertisments or have your peripheral connected but I need to do both. The peripheral should be able to report RSSI measurements from advertisements it picks up.
I'm using 'bleno' for the peripheral and 'noble' for the scanning on a linux box (bluez)
The answer to this differs depending on the version of Bluetooth that your device is on.
For Bluetooth v4.0:
A peripheral cannot scan at all, whether in a connection or not. The peripheral can only send out adverts or accept incoming connections. For more information you can have a look at this document, page 18:-
http://chapters.comsoc.org/vancouver/BTLER3.pdf
For Bluetooth v4.1 onwards:
A device can be in central and peripheral role at the same time. By implication, this means that if a peripheral is connected to a central device, it can still scan for devices in it's "central mode". More information can be found in this link, page 5:-
http://www.ietf.org/proceedings/89/slides/slides-89-6lo-4.pdf
So in conclusion, if your device is BT v4.1 or newer, then this is dependant on the chip manufacturer, and if it is v4.0, then no, because the Bluetooth specification does not allow it.

is it possible for iBeacon to act as just normal BLE data transmission module after connection?

i know that iBeacon use only advertising channel. which means there is no need connection.
im trying to make my own beacon module which send and receive data.
im curious about what makes the packet in iBeacon format(prefix /UUID / minor/ major/ TX) in communication ?
is it firmware?
let's assume that
when i make my iPhone act as iBeacon , it will send the advertising packet. which means it sends data in iBeacon format. but after turn off the app for iBeacon, i try to use my iphone
to send some files to laptop via Bluetooth low energy mode as usual.
then it will send data in bluetooth standard format. is this right?
given that situation, my iphone can be both iBeacon and just normal phone capable of bluetooth low energy.
i think also the beacon module can be like that. how about the product recently released? like estimote, redbearlab and so on. after connection, do they receive data?
Every iBeacon product works a little differently, but it is common for a product to be connectable for configuration purposes over Bluetooth LE.
Radius Networks' RadBeacon, for example, has firmware that sends out its advertisement as needed to be a standard iBeacon. The same firmware will allow a connection over Bluetooth LE, exchanging data with an external client (the RadBeacon app for iOS). This connectability is outside standard iBeacon functionality, using proprietary techniques that are still part of the larger Bluetooth LE standard.
Your understanding is therefore correct.
Full disclosure: I am Chief Engineer at Radius Networks.

Get device handle of a Bluetooth Low Energy device

I have a Bluetooth Low Energy device to which I need send some values from the PC.I need to connect this device to the Windows 8 PC and should be communicate with it from my application (Visual C++, win 32 application). I already know the hardware ID and friendly name of the device.
Is there any API to establish connection to the device using this ID/ friendly name, and give a device handle so that I can use GATT APIs to send values to the device. http://msdn.microsoft.com/en-us/library/windows/hardware/hh450825(v=vs.85).aspx
http://code.msdn.microsoft.com/windowshardware/Bluetooth-Generic-4f4ea968
Bluetooth low energy is considered Network.Proximity just as NFC.

Resources