GAP Profiles: Broadcast & Observer

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

 Hi everyone, I was wondering if it's possible to use these two GAP profiles to make a sort of multipoint connection between BLE devices. My idea is to use one device as broadcaster and two or more devices as observers, in order to send data from the broadcaster to the listeners. On the internet I found a few informations about those two profiles, so I didn't understand if they could be able to work in this way... I'm just assuming their use because of their name! 

   

Thank you for your help

   

Alessandro Giorgi

0 Likes
14 Replies
Anonymous
Not applicable

 Hi ,

   

 

   

Broadcaster:just transmists the advertising packets.You have to send the information in advertising packets only.A device in the broadcast mode shall send data in either non-connectable undirected or scannable undirected advertising events. 

   

 

   

Obersver:A device performing the observation procedure may use passive scanning or active scanning to receive advertising events.

   

 

   

Devices which acts as broadcaster or observer cannot establish connections.

   

 

   

But the observer can receive the data from different advertising device.

   

 

   

Regards,

   

Vikas, 

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Welcome in the forum!

   

Broadcast (continuosly sending) and  observer (continuosly listening) are not supported by BLE. Both will not save energy when working as desired. Have a deep look into this application note www.cypress.com/

   

 

   

Bob

0 Likes
Anonymous
Not applicable

 Hi Bob,

   

 

   

Broadcaster and observer are supported by BLE(as per spec).

   

 

   

Check sections 2.2.2 and section 9.1.1, 9.1.2 in vol 3  in ble 4.1 spec.

   

 

   

Yes its correct it would consume more power when continously transmit or continously listen

   

 

   

power consumption depends on advertising interval and scan intervals and also the blocks that are running.You can play these options to reduce the power.

   

 

   

Regards,

   

Vikas.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Oops Language barrier? Probably red too fast...

   

 

   

Bob

0 Likes
Anonymous
Not applicable

 In facts, inside the link Bob kindly posted, I found this description:

   

 

   

Broadcaster: This is an advertising role that is used to broadcast data; this role cannot form BLE connections and engage in data exchange (no request/response operations). This role works similar to a radio station: it sends data continuously without bothering if anyone is listening; it is a one-way data communication. A typical example of a GAP Broadcaster is a beacon, which continuously broadcasts information but does not expect any response.

   

 

   

Observer: This is a listening role that scans for advertisements but does not connect to the advertising device. This is the opposite of the Broadcaster role. This works similar to a radio receiver that can continuously listen for information but cannot communicate back with the information source. A typical example of a GAP Observer is a smartphone app that continuously listens for beacons. 

   

 

   

This is a way to use that can properly work for what I want to do. Thanks everyone for answering my question.   

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

Actually the GATT profile already does what you want it to do. When a BLE central device has multiple peripherals connected to it, any changes to GATT attributes are transmitted to the GATT server. So if the peripherals are acting as GATT server, the central device just needs to set GATT atributes, and they are notified.

   

The other way round the central device (acting as GATT server) can send notifications to the peripherals.

   

But you also can use the Broadcaster / Observer role with the PSoC4 BLE. Just define your BLE component as a custom profile, and then you can set the Observer or Broadcaster role. Note that the amount of data that can be send is limited - the BLE advertisment package is limited to 31 bytes...

0 Likes
Anonymous
Not applicable

 Thank you hli! But my point is to have a device which can send information to other listening devices without creating a connection. However, I knew Cypress BLE products can' t manage more than one connection at the same time, as reported in the BLE FAQ. Is it right?

   

 

   

Also, please take a look at my upcoming problem. I would like to program one of my BLE devices in the following way: it has to work as a server for a smartphone (with the classical paired connection), and, at the same time, as a broadcaster for other BLE devices. In this way, I can send information from my smartphone to the broadcaster, so that it can spread the information to other listening devices.

   

But I found that a BLE broadcast device can just work as a broadcaster, and so it is not able to maintain connection with a device as well. In facts, differently from Central and Peripheral GAP roles, Broadcaster role is not allowed to manage services and characteristics. 

   

Is it right, or do you think there is a way to make things work as I want? Can a BLE device work as a broadcaster and be pairable at the same time?

   

Thank you for your help

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

It should be possible to change the data send with the broadcast with every packet, so you can do kind of larger data transfer with that.

   

BLE itself should allow to change the role between broadcaster and peripheral (or maybe sender), but I'm not sure whether its possible to do so at the same time. From what I found it might be that this requires more low-level access than you get on PSoC.

   

I think the statement in the FAQ regarding multiple connections is somewhat misleading (and its still not really clear what it actually means).

   

Maybe you should open one or more Support cases with Cypress so they can answer, and maybe they have some sample code for you.

0 Likes
JohnW_86
Employee
Employee

All:  The statement about multiple connections is intended to highlight that our radio does not manage this for you, but it can be handled in your application layer. You just have to keep track of your connections and effectively "make/break" each one.. it can be done, just not managed yet in the radio hardware... A roadmap feature for sure.. But not at all lost as it can be managed in application firmware.

   

Cheers

   

John

   

Cypress

0 Likes
Anonymous
Not applicable

 All,

   

Cypress BLE allows following combinations for advertising, scanning and connected states.

   

If device is Connected - Non connectable advertisement (Non connectable undirected and scannable undirected) is allowed.

   

If device is Scanning - All types of advertisements are allowed. 

   

Moving on to specific questions asked above:

   

1) Broadcast and Observer role together

   

Yes this is supported.  

   

Broadcast - Non connectable advertisement.

   

Observer - Scanning.

   

As noted above, Cypress device allows both operations simultaneously. 

   

2) GATT server and broadcaster

   

Yes this is supported. While in connection (GATT server), Cypress BLE allows you to send non connectable advertisement packets (Broadcaster).

   

 

   

Ravinder Singh

   

Cypress

   

rave@cypress.com

0 Likes

Hello,
I want to use the BLE device as a broadcaster as well as a observer (one at a time). An ideal case would be, initially the BLE acts as a observer and upon a random event it will broadcasts a beacon for a finite amount of time and ends up as observer again. How should the BLE component be configured to achieve this? 

I can't find any broadcaster and observer option to select. 

Thanks
Dheeraj

0 Likes
Anonymous
Not applicable

You will need to manually switch between/set the unit to observer and broadcaster simultaneously, as there is no default profile for those settings.

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hello everyone,

   

 

   

I am trying to do something similiar. I have one device which is a Broadcaster and 2 other devices are the observers. 

   

My Broadcaster sends out the data and it changes at some intervals using   CyBle_GapUpdateAdvData(cyBle_discoveryModeInfo.advData, cyBle_discoveryModeInfo.scanRspData);

   

 

   

I want my observer to keep receiving the data broadcasted which is not happening due to some reason. I have attached both projects. I am kinda stuck over here. 

0 Likes
Anonymous
Not applicable

Your setting for the observers is set to "Duplicate Filtering" which will filter out duplicate packets, this could be the issue.

   

Also, the data you are sending through the UART is reversed compared with how it is received in the scan-received packet.

   

for(i = 0u; i < advReport.dataLen; i++)
                    {
                    
                          sprintf(msg,"received --  event= %x\n", advReport.data[advReport.dataLen-i]);
            UART_UartPutString(msg);
                       
                    }

0 Likes