All of lore.kernel.org
 help / color / mirror / Atom feed
* How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
@ 2016-10-09 16:11 Steve Gladden
  2016-10-11 16:50 ` Steve Gladden
  0 siblings, 1 reply; 13+ messages in thread
From: Steve Gladden @ 2016-10-09 16:11 UTC (permalink / raw)
  To: linux-bluetooth

Hi, 
My name is Steve and I am located in Ann Arbor Michigan USA.  

I am new  bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out.   

I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces 
as well as serial bluetooth boards.  

I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle.  

My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in 
LE mode.   

The dongle appears to be working at default level below zero dbm. 

The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item
that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power.  
 

Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power.   

All the pages I have found seem to copy each other and repeat the same information over & over 
But never get around to even mentioning or discussing setting the power output level of the blutooth dongle.  

sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00

The byte just left of the last one is the "reported" TX level that you are transmitting at.  
Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX).  
This value does not influence or reflect actual transmit power.   

Please help!!   

Could use any pointers.   

I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this.  

Been at this for over a week and have some working beacons but no control of transmit power level.  

Am using Trendnet USB dongles which appear to use a Cambridge Chip.  But I'm not exactly sure which chip.  


:~# lsusb
Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)


root@raspberrypi:~# hciconfig hci0
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING
        RX bytes:780 acl:0 sco:0 events:50 errors:0
        TX bytes:1110 acl:0 sco:0 commands:50 errors:0















^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-09 16:11 How can you set Transmit power level in Bluetooth LE mode for an LE beacon? Steve Gladden
@ 2016-10-11 16:50 ` Steve Gladden
  2016-10-11 17:38   ` Barry Byford
  0 siblings, 1 reply; 13+ messages in thread
From: Steve Gladden @ 2016-10-11 16:50 UTC (permalink / raw)
  To: Steve Gladden, linux-bluetooth

Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth.
This is all I have seen here for the past few days? 
Where can I ask an actual question about bluetooth?  




Steve Gladden

Michigan Broadband Systems
Connecting Your Business!



+1 734.527.7150 Direct
+1 248.327.4389 Fax
steve@michiganbroadband.com
www.michiganbroadband.com

________________________________________
From: Steve Gladden
Sent: Sunday, October 09, 2016 12:11 PM
To: linux-bluetooth@vger.kernel.org
Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?

Hi,
My name is Steve and I am located in Ann Arbor Michigan USA.

I am new  bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out.

I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces
as well as serial bluetooth boards.

I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle.

My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in
LE mode.

The dongle appears to be working at default level below zero dbm.

The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item
that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power.


Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power.

All the pages I have found seem to copy each other and repeat the same information over & over
But never get around to even mentioning or discussing setting the power output level of the blutooth dongle.

sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00

The byte just left of the last one is the "reported" TX level that you are transmitting at.
Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX).
This value does not influence or reflect actual transmit power.

Please help!!

Could use any pointers.

I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this.

Been at this for over a week and have some working beacons but no control of transmit power level.

Am using Trendnet USB dongles which appear to use a Cambridge Chip.  But I'm not exactly sure which chip.


:~# lsusb
Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)


root@raspberrypi:~# hciconfig hci0
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING
        RX bytes:780 acl:0 sco:0 events:50 errors:0
        TX bytes:1110 acl:0 sco:0 commands:50 errors:0















^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-11 16:50 ` Steve Gladden
@ 2016-10-11 17:38   ` Barry Byford
  2016-10-11 17:52     ` Steve Gladden
  0 siblings, 1 reply; 13+ messages in thread
From: Barry Byford @ 2016-10-11 17:38 UTC (permalink / raw)
  To: Steve Gladden; +Cc: linux-bluetooth

Hello Steve,


On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote:
> Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth.
> This is all I have seen here for the past few days?
> Where can I ask an actual question about bluetooth?

There are some real humans here too!  :-)

If you look back on the archive of this list you will see a mixture of
questions and patch requests.
marc.info/?l=linux-bluetooth

I've kept quiet as I'm not sure I can answer questions. To offer some
shared experience, I can say that I've been experimenting with
(Eddystone) beacons on Linux single board computers accessing BlueZ
through the DBus API using Python. I also have not found a way to
change the power level of advertisements either. For what I'm doing,
just making sure the TX power in the Eddystone advert matches what the
dongle is actually broadcasting has been good enough.

Sorry I couldn't be of more help.

Regards,
Barry

>
>
>
>
> Steve Gladden
>
> Michigan Broadband Systems
> Connecting Your Business!
>
>
>
> +1 734.527.7150 Direct
> +1 248.327.4389 Fax
> steve@michiganbroadband.com
> www.michiganbroadband.com
>
> ________________________________________
> From: Steve Gladden
> Sent: Sunday, October 09, 2016 12:11 PM
> To: linux-bluetooth@vger.kernel.org
> Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
>
> Hi,
> My name is Steve and I am located in Ann Arbor Michigan USA.
>
> I am new  bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out.
>
> I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces
> as well as serial bluetooth boards.
>
> I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle.
>
> My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in
> LE mode.
>
> The dongle appears to be working at default level below zero dbm.
>
> The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item
> that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power.
>
>
> Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power.
>
> All the pages I have found seem to copy each other and repeat the same information over & over
> But never get around to even mentioning or discussing setting the power output level of the blutooth dongle.
>
> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00
>
> The byte just left of the last one is the "reported" TX level that you are transmitting at.
> Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX).
> This value does not influence or reflect actual transmit power.
>
> Please help!!
>
> Could use any pointers.
>
> I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this.
>
> Been at this for over a week and have some working beacons but no control of transmit power level.
>
> Am using Trendnet USB dongles which appear to use a Cambridge Chip.  But I'm not exactly sure which chip.
>
>
> :~# lsusb
> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
>
>
> root@raspberrypi:~# hciconfig hci0
> hci0:   Type: BR/EDR  Bus: USB
>         BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
>         UP RUNNING
>         RX bytes:780 acl:0 sco:0 events:50 errors:0
>         TX bytes:1110 acl:0 sco:0 commands:50 errors:0
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-11 17:38   ` Barry Byford
@ 2016-10-11 17:52     ` Steve Gladden
  2016-10-12  5:00       ` Hieu Le
  0 siblings, 1 reply; 13+ messages in thread
From: Steve Gladden @ 2016-10-11 17:52 UTC (permalink / raw)
  To: Barry Byford; +Cc: linux-bluetooth

Thanks!!   
Yes it's nice to hear from somebody.  

I've been scouring the web so far to no avail on what I think should be a simple and accessible setting.    
It's obvious from the specs that most chips have a programmable (settable) transmitter power.  
And with beacons it is very important and expected that one should be able to adjust the transmitter level.   
All of the serial boards do it with simple AT commands.   

I just don't get why there's no documentation on how to do it with a USB device!!   

They sell class 1 bluetooth usb dongles for applications that require more range (100m) is quoted on most class 1 products.

I'd expect there should be a straight forward easy to set power in LE mode to get more range or save power and limit range when wanted.  

But I'm really not finding this information out there!   

I don;t understand what I am doing wrong or why this is so difficult to find.  :)
   






On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote:
> Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth.
> This is all I have seen here for the past few days?
> Where can I ask an actual question about bluetooth?

There are some real humans here too!  :-)

If you look back on the archive of this list you will see a mixture of
questions and patch requests.
marc.info/?l=linux-bluetooth

I've kept quiet as I'm not sure I can answer questions. To offer some
shared experience, I can say that I've been experimenting with
(Eddystone) beacons on Linux single board computers accessing BlueZ
through the DBus API using Python. I also have not found a way to
change the power level of advertisements either. For what I'm doing,
just making sure the TX power in the Eddystone advert matches what the
dongle is actually broadcasting has been good enough.

Sorry I couldn't be of more help.

Regards,
Barry

>
>
>
>
> Steve Gladden
>
> Michigan Broadband Systems
> Connecting Your Business!
>
>
>
> +1 734.527.7150 Direct
> +1 248.327.4389 Fax
> steve@michiganbroadband.com
> www.michiganbroadband.com
>
> ________________________________________
> From: Steve Gladden
> Sent: Sunday, October 09, 2016 12:11 PM
> To: linux-bluetooth@vger.kernel.org
> Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
>
> Hi,
> My name is Steve and I am located in Ann Arbor Michigan USA.
>
> I am new  bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out.
>
> I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces
> as well as serial bluetooth boards.
>
> I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle.
>
> My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in
> LE mode.
>
> The dongle appears to be working at default level below zero dbm.
>
> The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item
> that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power.
>
>
> Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power.
>
> All the pages I have found seem to copy each other and repeat the same information over & over
> But never get around to even mentioning or discussing setting the power output level of the blutooth dongle.
>
> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00
>
> The byte just left of the last one is the "reported" TX level that you are transmitting at.
> Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX).
> This value does not influence or reflect actual transmit power.
>
> Please help!!
>
> Could use any pointers.
>
> I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this.
>
> Been at this for over a week and have some working beacons but no control of transmit power level.
>
> Am using Trendnet USB dongles which appear to use a Cambridge Chip.  But I'm not exactly sure which chip.
>
>
> :~# lsusb
> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
>
>
> root@raspberrypi:~# hciconfig hci0
> hci0:   Type: BR/EDR  Bus: USB
>         BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
>         UP RUNNING
>         RX bytes:780 acl:0 sco:0 events:50 errors:0
>         TX bytes:1110 acl:0 sco:0 commands:50 errors:0
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-11 17:52     ` Steve Gladden
@ 2016-10-12  5:00       ` Hieu Le
  2016-10-12  7:22         ` Johan Hedberg
  2016-10-12 15:33         ` Steve Gladden
  0 siblings, 2 replies; 13+ messages in thread
From: Hieu Le @ 2016-10-12  5:00 UTC (permalink / raw)
  To: Steve Gladden; +Cc: Barry Byford, linux-bluetooth

Hi,

In my opinion, the only way I can find to increase the tx_power is to
recompile the linux kernel. There may be a better way

It seems that bluetooth stack within kernel separated into two classes:
1. Inquiry Tx_power.
2. Advertise Tx_power.

And the default value is 0.

You can take a look at:
*hci_alloc_dev(void)  function within net/bluetooth/hci_core.c file
hdev->inq_tx_power = HCI_TX_POWER_INVALID;
hdev->adv_tx_power = HCI_TX_POWER_INVALID;

Hope it will be helpful to you.

Regards,
Hieu.

On Wed, Oct 12, 2016 at 12:52 AM, Steve Gladden
<steve@michiganbroadband.com> wrote:
> Thanks!!
> Yes it's nice to hear from somebody.
>
> I've been scouring the web so far to no avail on what I think should be a simple and accessible setting.
> It's obvious from the specs that most chips have a programmable (settable) transmitter power.
> And with beacons it is very important and expected that one should be able to adjust the transmitter level.
> All of the serial boards do it with simple AT commands.
>
> I just don't get why there's no documentation on how to do it with a USB device!!
>
> They sell class 1 bluetooth usb dongles for applications that require more range (100m) is quoted on most class 1 products.
>
> I'd expect there should be a straight forward easy to set power in LE mode to get more range or save power and limit range when wanted.
>
> But I'm really not finding this information out there!
>
> I don;t understand what I am doing wrong or why this is so difficult to find.  :)
>
>
>
>
>
>
>
> On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote:
>> Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth.
>> This is all I have seen here for the past few days?
>> Where can I ask an actual question about bluetooth?
>
> There are some real humans here too!  :-)
>
> If you look back on the archive of this list you will see a mixture of
> questions and patch requests.
> marc.info/?l=linux-bluetooth
>
> I've kept quiet as I'm not sure I can answer questions. To offer some
> shared experience, I can say that I've been experimenting with
> (Eddystone) beacons on Linux single board computers accessing BlueZ
> through the DBus API using Python. I also have not found a way to
> change the power level of advertisements either. For what I'm doing,
> just making sure the TX power in the Eddystone advert matches what the
> dongle is actually broadcasting has been good enough.
>
> Sorry I couldn't be of more help.
>
> Regards,
> Barry
>
>>
>>
>>
>>
>> Steve Gladden
>>
>> Michigan Broadband Systems
>> Connecting Your Business!
>>
>>
>>
>> +1 734.527.7150 Direct
>> +1 248.327.4389 Fax
>> steve@michiganbroadband.com
>> www.michiganbroadband.com
>>
>> ________________________________________
>> From: Steve Gladden
>> Sent: Sunday, October 09, 2016 12:11 PM
>> To: linux-bluetooth@vger.kernel.org
>> Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
>>
>> Hi,
>> My name is Steve and I am located in Ann Arbor Michigan USA.
>>
>> I am new  bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out.
>>
>> I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces
>> as well as serial bluetooth boards.
>>
>> I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle.
>>
>> My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in
>> LE mode.
>>
>> The dongle appears to be working at default level below zero dbm.
>>
>> The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item
>> that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power.
>>
>>
>> Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power.
>>
>> All the pages I have found seem to copy each other and repeat the same information over & over
>> But never get around to even mentioning or discussing setting the power output level of the blutooth dongle.
>>
>> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00
>>
>> The byte just left of the last one is the "reported" TX level that you are transmitting at.
>> Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX).
>> This value does not influence or reflect actual transmit power.
>>
>> Please help!!
>>
>> Could use any pointers.
>>
>> I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this.
>>
>> Been at this for over a week and have some working beacons but no control of transmit power level.
>>
>> Am using Trendnet USB dongles which appear to use a Cambridge Chip.  But I'm not exactly sure which chip.
>>
>>
>> :~# lsusb
>> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
>>
>>
>> root@raspberrypi:~# hciconfig hci0
>> hci0:   Type: BR/EDR  Bus: USB
>>         BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
>>         UP RUNNING
>>         RX bytes:780 acl:0 sco:0 events:50 errors:0
>>         TX bytes:1110 acl:0 sco:0 commands:50 errors:0
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
---- Hieu Le ---

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-12  5:00       ` Hieu Le
@ 2016-10-12  7:22         ` Johan Hedberg
  2016-10-12 15:33         ` Steve Gladden
  1 sibling, 0 replies; 13+ messages in thread
From: Johan Hedberg @ 2016-10-12  7:22 UTC (permalink / raw)
  To: Hieu Le; +Cc: Steve Gladden, Barry Byford, linux-bluetooth

Hi,

On Wed, Oct 12, 2016, Hieu Le wrote:
> In my opinion, the only way I can find to increase the tx_power is to
> recompile the linux kernel. There may be a better way
> 
> It seems that bluetooth stack within kernel separated into two classes:
> 1. Inquiry Tx_power.
> 2. Advertise Tx_power.
> 
> And the default value is 0.
> 
> You can take a look at:
> *hci_alloc_dev(void)  function within net/bluetooth/hci_core.c file
> hdev->inq_tx_power = HCI_TX_POWER_INVALID;
> hdev->adv_tx_power = HCI_TX_POWER_INVALID;

The adv_tx_power is not used for changing the controller advertising TX
power. It's only used for reading the current controller setting and
storing it in this variable. The reason for all this is that currently
(as of Bluetooth 4.2) there is no standard HCI command for changing the
advertising TX power.

Johan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-12  5:00       ` Hieu Le
  2016-10-12  7:22         ` Johan Hedberg
@ 2016-10-12 15:33         ` Steve Gladden
       [not found]           ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com>
  1 sibling, 1 reply; 13+ messages in thread
From: Steve Gladden @ 2016-10-12 15:33 UTC (permalink / raw)
  To: Hieu Le; +Cc: Barry Byford, linux-bluetooth

VGhhbmtzLCAgDQpJIHdhcyBob3BpbmcgdGhlcmUgd2FzIGFuIGVhc2llciB3YXkgYW5kIHNvbWVo
b3cgYXQgdGhlIGNvbW1hbmQgbGluZSBidXQgSSdsbCBkbyB3aGF0IEkgbmVlZCB0byBkbyBhbmQg
ZmlndXJlIGl0IG91dCBzb21laG93LiAgDQpJIHVzdWFsbHkgZW5kIHVwIG9uIDEwIG90aGVyIHJh
YmJpdCB0cmFpbHMgd2hlbiBpdCBjb21lcyB0byBoYXZpbmcgdG8gcmVjb21waWxlIGFueXRoaW5n
IGJlY2F1c2UgaXQgdXN1YWxseSBqdXN0IGZhaWxzIGZvciBtZSBhbmQgSSdtIA0Kbm90IHlldCB3
ZWxsIHZlcnNlZCBpbiB0cm91Ymxlc2hvb3Rpbmcgd2hlbiB0aGluZ3Mgd29uJ3QgY29tcGlsZSBz
dWNjZXNzZnVsbHkgYXNpZGUgZnJvbSB3aGF0IEkgY2FuIGVhc2lseSBnb29nbGUuICANCg0KSSBh
bHNvIHRoaW5rIGl0J3MgYSBsaXR0bGUgbW9yZSBjb21wbGljYXRlZCB0aGFuIGp1c3Qgc2V0dGlu
ZyB0aGUgcG93ZXIuICANCkkgaGF2ZSBnYXRoZXJlZCBhdCBsZWFzdCB3aXQgaHRoZSBDU1IgY2hp
cHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAzIHNlcGFyYXRlIHBvd2VyIHNldHRpbmdzIHRo
YXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55IG92ZXJhbGwgcG93ZXIgc2V0dGluZy4gIA0K
U28gdGhlIHZhcmlvdXMgbW9kdWxhdGlvbiBtb2RlcyAoaW5jbHVkaW5nIEdGU0sgLUxFIGFkdmVy
dGlzaW5nLSkgbmVlZCB0byBiZSBhZGRyZXNzZWQgYW5kIHNldCBpbmRpdmlkdWFsbHkuICANClRo
ZXJlJ3Mgbm90IGEgbWFzdGVyIHRyYW5zbWl0IGxldmVsIHRoYXQgc2V0cyB0aGVtIGFsbC4NCiAg
DQoNClN0ZXZlIEdsYWRkZW4NCsKgDQpNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KQ29ubmVj
dGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KKzEgMjQ4
LjMyNy40Mzg5IEZheA0Kc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQp3d3cubWljaGlnYW5i
cm9hZGJhbmQuY29tDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBIaWV1IExl
IFttYWlsdG86aGlldS5sZUB2ZXJpa3N5c3RlbXMuY29tXSANClNlbnQ6IFdlZG5lc2RheSwgT2N0
b2JlciAxMiwgMjAxNiAxOjAwIEFNDQpUbzogU3RldmUgR2xhZGRlbg0KQ2M6IEJhcnJ5IEJ5Zm9y
ZDsgbGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0KU3ViamVjdDogUmU6IEhvdyBjYW4g
eW91IHNldCBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4g
TEUgYmVhY29uPw0KDQpIaSwNCg0KSW4gbXkgb3BpbmlvbiwgdGhlIG9ubHkgd2F5IEkgY2FuIGZp
bmQgdG8gaW5jcmVhc2UgdGhlIHR4X3Bvd2VyIGlzIHRvIHJlY29tcGlsZSB0aGUgbGludXgga2Vy
bmVsLiBUaGVyZSBtYXkgYmUgYSBiZXR0ZXIgd2F5DQoNCkl0IHNlZW1zIHRoYXQgYmx1ZXRvb3Ro
IHN0YWNrIHdpdGhpbiBrZXJuZWwgc2VwYXJhdGVkIGludG8gdHdvIGNsYXNzZXM6DQoxLiBJbnF1
aXJ5IFR4X3Bvd2VyLg0KMi4gQWR2ZXJ0aXNlIFR4X3Bvd2VyLg0KDQpBbmQgdGhlIGRlZmF1bHQg
dmFsdWUgaXMgMC4NCg0KWW91IGNhbiB0YWtlIGEgbG9vayBhdDoNCipoY2lfYWxsb2NfZGV2KHZv
aWQpICBmdW5jdGlvbiB3aXRoaW4gbmV0L2JsdWV0b290aC9oY2lfY29yZS5jIGZpbGUNCmhkZXYt
PmlucV90eF9wb3dlciA9IEhDSV9UWF9QT1dFUl9JTlZBTElEOyBhZHZfdHhfcG93ZXIgPSANCmhk
ZXYtPkhDSV9UWF9QT1dFUl9JTlZBTElEOw0KDQpIb3BlIGl0IHdpbGwgYmUgaGVscGZ1bCB0byB5
b3UuDQoNClJlZ2FyZHMsDQpIaWV1Lg0KDQpPbiBXZWQsIE9jdCAxMiwgMjAxNiBhdCAxMjo1MiBB
TSwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tPiB3cm90ZToNCj4g
VGhhbmtzISENCj4gWWVzIGl0J3MgbmljZSB0byBoZWFyIGZyb20gc29tZWJvZHkuDQo+DQo+IEkn
dmUgYmVlbiBzY291cmluZyB0aGUgd2ViIHNvIGZhciB0byBubyBhdmFpbCBvbiB3aGF0IEkgdGhp
bmsgc2hvdWxkIGJlIGEgc2ltcGxlIGFuZCBhY2Nlc3NpYmxlIHNldHRpbmcuDQo+IEl0J3Mgb2J2
aW91cyBmcm9tIHRoZSBzcGVjcyB0aGF0IG1vc3QgY2hpcHMgaGF2ZSBhIHByb2dyYW1tYWJsZSAo
c2V0dGFibGUpIHRyYW5zbWl0dGVyIHBvd2VyLg0KPiBBbmQgd2l0aCBiZWFjb25zIGl0IGlzIHZl
cnkgaW1wb3J0YW50IGFuZCBleHBlY3RlZCB0aGF0IG9uZSBzaG91bGQgYmUgYWJsZSB0byBhZGp1
c3QgdGhlIHRyYW5zbWl0dGVyIGxldmVsLg0KPiBBbGwgb2YgdGhlIHNlcmlhbCBib2FyZHMgZG8g
aXQgd2l0aCBzaW1wbGUgQVQgY29tbWFuZHMuDQo+DQo+IEkganVzdCBkb24ndCBnZXQgd2h5IHRo
ZXJlJ3Mgbm8gZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gZG8gaXQgd2l0aCBhIFVTQiBkZXZpY2Uh
IQ0KPg0KPiBUaGV5IHNlbGwgY2xhc3MgMSBibHVldG9vdGggdXNiIGRvbmdsZXMgZm9yIGFwcGxp
Y2F0aW9ucyB0aGF0IHJlcXVpcmUgbW9yZSByYW5nZSAoMTAwbSkgaXMgcXVvdGVkIG9uIG1vc3Qg
Y2xhc3MgMSBwcm9kdWN0cy4NCj4NCj4gSSdkIGV4cGVjdCB0aGVyZSBzaG91bGQgYmUgYSBzdHJh
aWdodCBmb3J3YXJkIGVhc3kgdG8gc2V0IHBvd2VyIGluIExFIG1vZGUgdG8gZ2V0IG1vcmUgcmFu
Z2Ugb3Igc2F2ZSBwb3dlciBhbmQgbGltaXQgcmFuZ2Ugd2hlbiB3YW50ZWQuDQo+DQo+IEJ1dCBJ
J20gcmVhbGx5IG5vdCBmaW5kaW5nIHRoaXMgaW5mb3JtYXRpb24gb3V0IHRoZXJlIQ0KPg0KPiBJ
IGRvbjt0IHVuZGVyc3RhbmQgd2hhdCBJIGFtIGRvaW5nIHdyb25nIG9yIHdoeSB0aGlzIGlzIHNv
IGRpZmZpY3VsdCANCj4gdG8gZmluZC4gIDopDQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+IE9uIDEx
IE9jdG9iZXIgMjAxNiBhdCAxNzo1MCwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9h
ZGJhbmQuY29tPiB3cm90ZToNCj4+IElzIHRoaXMgdGhpcyBsaXN0IGp1c3Qgc29tZSBraW5kIG9m
IGF1dG9tYXRlZCBwYXRjaCBhbm5vdW5jZW1lbnQgbG9nIGFuZCBub3QgYW4gYWN0dWFsIG1haWxp
bmcgbGlzdCB3aGVyZSB5b3UgY2FuIGFzayBhbnl0aGluZyBhYm91dCBibHVldG9vdGguDQo+PiBU
aGlzIGlzIGFsbCBJIGhhdmUgc2VlbiBoZXJlIGZvciB0aGUgcGFzdCBmZXcgZGF5cz8NCj4+IFdo
ZXJlIGNhbiBJIGFzayBhbiBhY3R1YWwgcXVlc3Rpb24gYWJvdXQgYmx1ZXRvb3RoPw0KPg0KPiBU
aGVyZSBhcmUgc29tZSByZWFsIGh1bWFucyBoZXJlIHRvbyEgIDotKQ0KPg0KPiBJZiB5b3UgbG9v
ayBiYWNrIG9uIHRoZSBhcmNoaXZlIG9mIHRoaXMgbGlzdCB5b3Ugd2lsbCBzZWUgYSBtaXh0dXJl
IG9mIA0KPiBxdWVzdGlvbnMgYW5kIHBhdGNoIHJlcXVlc3RzLg0KPiBtYXJjLmluZm8vP2w9bGlu
dXgtYmx1ZXRvb3RoDQo+DQo+IEkndmUga2VwdCBxdWlldCBhcyBJJ20gbm90IHN1cmUgSSBjYW4g
YW5zd2VyIHF1ZXN0aW9ucy4gVG8gb2ZmZXIgc29tZSANCj4gc2hhcmVkIGV4cGVyaWVuY2UsIEkg
Y2FuIHNheSB0aGF0IEkndmUgYmVlbiBleHBlcmltZW50aW5nIHdpdGgNCj4gKEVkZHlzdG9uZSkg
YmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0ZXJzIGFjY2Vzc2luZyBCbHVlWiAN
Cj4gdGhyb3VnaCB0aGUgREJ1cyBBUEkgdXNpbmcgUHl0aG9uLiBJIGFsc28gaGF2ZSBub3QgZm91
bmQgYSB3YXkgdG8gDQo+IGNoYW5nZSB0aGUgcG93ZXIgbGV2ZWwgb2YgYWR2ZXJ0aXNlbWVudHMg
ZWl0aGVyLiBGb3Igd2hhdCBJJ20gZG9pbmcsIA0KPiBqdXN0IG1ha2luZyBzdXJlIHRoZSBUWCBw
b3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdoYXQgdGhlIA0KPiBkb25nbGUg
aXMgYWN0dWFsbHkgYnJvYWRjYXN0aW5nIGhhcyBiZWVuIGdvb2QgZW5vdWdoLg0KPg0KPiBTb3Jy
eSBJIGNvdWxkbid0IGJlIG9mIG1vcmUgaGVscC4NCj4NCj4gUmVnYXJkcywNCj4gQmFycnkNCj4N
Cj4+DQo+Pg0KPj4NCj4+DQo+PiBTdGV2ZSBHbGFkZGVuDQo+Pg0KPj4gTWljaGlnYW4gQnJvYWRi
YW5kIFN5c3RlbXMNCj4+IENvbm5lY3RpbmcgWW91ciBCdXNpbmVzcyENCj4+DQo+Pg0KPj4NCj4+
ICsxIDczNC41MjcuNzE1MCBEaXJlY3QNCj4+ICsxIDI0OC4zMjcuNDM4OSBGYXgNCj4+IHN0ZXZl
QG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KPj4gd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KPj4N
Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IEZyb206IFN0
ZXZlIEdsYWRkZW4NCj4+IFNlbnQ6IFN1bmRheSwgT2N0b2JlciAwOSwgMjAxNiAxMjoxMSBQTQ0K
Pj4gVG86IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4+IFN1YmplY3Q6IEhvdyBj
YW4geW91IHNldCBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3Ig
YW4gTEUgYmVhY29uPw0KPj4NCj4+IEhpLA0KPj4gTXkgbmFtZSBpcyBTdGV2ZSBhbmQgSSBhbSBs
b2NhdGVkIGluIEFubiBBcmJvciBNaWNoaWdhbiBVU0EuDQo+Pg0KPj4gSSBhbSBuZXcgIGJsdWV0
b290aCBMRSBhbmQgbGF0ZWx5IGFtIG9ic2Vzc2VkIHdpdGggQmx1ZXRvb3RoIExFIGJlYWNvbnMg
YW5kIHRyeWluZyB0aGVtIG91dC4NCj4+DQo+PiBJIGhhdmUgcmVhZCBhcnRpY2xlIGFmdGVyIGFy
dGljbGUgYW5kIHBhZ2UgYWZ0ZXIgcGFnZSBhYm91dCBob3cgDQo+PiBwZW9wbGUgaGF2ZSBzZXR1
cCB1cCBiZWFjb25zIHdpdGggVVNCIEJUIDQuMCBpbnRlcmZhY2VzIGFzIHdlbGwgYXMgc2VyaWFs
IGJsdWV0b290aCBib2FyZHMuDQo+Pg0KPj4gSSBhbSBjdXJyZW50bHkgZXhwZXJpbWVudGluZyB3
aXRoIGEgYmVhY29uIHJ1bm5pbmcgb24gYSBSYXNwYmVycnkgUGktQiBhbmQgdXNpbmcgYW4gZXh0
ZXJuYWwgVVNCIEJsdWV0b290aCA0LjAgY2xhc3MgMSBkb25nbGUuDQo+Pg0KPj4gTXkgZnJ1c3Ry
YXRpb24gaXMgdGhhdCBJIGhhdmUgbm90IGJlZW4gYWJsZSB0byBmaW5kIGFueSB1c2VmdWwgDQo+
PiBpbmZvcm1hdGlvbiBpbiBob3cgdG8gY2hhbmdlIHRoZSBUcmFuc21pdHRlciBwb3dlciBsZXZl
bCB3aGVuIGluIExFIG1vZGUuDQo+Pg0KPj4gVGhlIGRvbmdsZSBhcHBlYXJzIHRvIGJlIHdvcmtp
bmcgYXQgZGVmYXVsdCBsZXZlbCBiZWxvdyB6ZXJvIGRibS4NCj4+DQo+PiBUaGUgd2hvbGUgcG9p
bnQgb2YgYnVpbGRpbmcgeW91ciBvd24gYmVhY29uIHRoaXMgd2F5IGlzIHRvIGJlIGFibGUgdG8g
DQo+PiBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxldmVsIGlzIGFuIGltcG9y
dGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNzaWJsZSB5ZXQgSSBmaW5k
IHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxvbmUgZG8gdGhleSBleHBs
YWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+DQo+Pg0KPj4gRXZlcnkg
dGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29uIHNldHVwcyBmcm9tIGNv
bW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5nIGJlYWNvbiBUWCBwb3dl
ci4NCj4+DQo+PiBBbGwgdGhlIHBhZ2VzIEkgaGF2ZSBmb3VuZCBzZWVtIHRvIGNvcHkgZWFjaCBv
dGhlciBhbmQgcmVwZWF0IHRoZSANCj4+IHNhbWUgaW5mb3JtYXRpb24gb3ZlciAmIG92ZXIgQnV0
IG5ldmVyIGdldCBhcm91bmQgdG8gZXZlbiBtZW50aW9uaW5nIG9yIGRpc2N1c3Npbmcgc2V0dGlu
ZyB0aGUgcG93ZXIgb3V0cHV0IGxldmVsIG9mIHRoZSBibHV0b290aCBkb25nbGUuDQo+Pg0KPj4g
c3VkbyBoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRD
IDAwIDAyIDE1IFsgDQo+PiA5MiA3NyA4MyAwQSBCMiBFQiA0OSAwRiBBMSBERCA3RiBFMyA4QyA0
OSAyRSBERSBdIFsgMDAgMDAgXSBbIDAwIDAwIF0gDQo+PiBDNSAwMA0KPj4NCj4+IFRoZSBieXRl
IGp1c3QgbGVmdCBvZiB0aGUgbGFzdCBvbmUgaXMgdGhlICJyZXBvcnRlZCIgVFggbGV2ZWwgdGhh
dCB5b3UgYXJlIHRyYW5zbWl0dGluZyBhdC4NCj4+IFdoaWNoIG1lYW5zIHlvdSdyZSBzdXBwb3Nl
ZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBhcmUgYWN0dWFsbHkgdHJh
bnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRvIHRoZSB3b3JsZCB3aGF0
IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkgY2FuIHJhbmdlIChndWVz
cyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+IFRoaXMgdmFsdWUgZG9lcyBub3Qg
aW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0KPj4NCj4+IFBsZWFz
ZSBoZWxwISENCj4+DQo+PiBDb3VsZCB1c2UgYW55IHBvaW50ZXJzLg0KPj4NCj4+IEknbSBhIGhh
cmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGluIHNvZnR3YXJlL3By
b2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8gZ2V0IGNvbnRyb2wg
b2YgdGhpcy4NCj4+DQo+PiBCZWVuIGF0IHRoaXMgZm9yIG92ZXIgYSB3ZWVrIGFuZCBoYXZlIHNv
bWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9sIG9mIHRyYW5zbWl0IHBvd2VyIGxldmVs
Lg0KPj4NCj4+IEFtIHVzaW5nIFRyZW5kbmV0IFVTQiBkb25nbGVzIHdoaWNoIGFwcGVhciB0byB1
c2UgYSBDYW1icmlkZ2UgQ2hpcC4gIEJ1dCBJJ20gbm90IGV4YWN0bHkgc3VyZSB3aGljaCBjaGlw
Lg0KPj4NCj4+DQo+PiA6fiMgbHN1c2INCj4+IEJ1cyAwMDEgRGV2aWNlIDAwNzogSUQgMGExMjow
MDAxIENhbWJyaWRnZSBTaWxpY29uIFJhZGlvLCBMdGQgDQo+PiBCbHVldG9vdGggRG9uZ2xlIChI
Q0kgbW9kZSkNCj4+DQo+Pg0KPj4gcm9vdEByYXNwYmVycnlwaTp+IyBoY2ljb25maWcgaGNpMA0K
Pj4gaGNpMDogICBUeXBlOiBCUi9FRFIgIEJ1czogVVNCDQo+PiAgICAgICAgIEJEIEFkZHJlc3M6
IDAwOjE1OjgzOkVBOjBBOkI5ICBBQ0wgTVRVOiAzMTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4+ICAg
ICAgICAgVVAgUlVOTklORw0KPj4gICAgICAgICBSWCBieXRlczo3ODAgYWNsOjAgc2NvOjAgZXZl
bnRzOjUwIGVycm9yczowDQo+PiAgICAgICAgIFRYIGJ5dGVzOjExMTAgYWNsOjAgc2NvOjAgY29t
bWFuZHM6NTAgZXJyb3JzOjANCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+
DQo+Pg0KPj4NCj4+DQo+Pg0KPj4gLS0NCj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0
OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSANCj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhl
IGJvZHkgb2YgYSBtZXNzYWdlIHRvIA0KPj4gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZyBNb3Jl
IG1ham9yZG9tbyBpbmZvIGF0ICANCj4+IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21v
LWluZm8uaHRtbA0KPiAtLQ0KPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0
aGUgbGluZSAidW5zdWJzY3JpYmUgDQo+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2Yg
YSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcgDQo+IE1vcmUgbWFqb3Jkb21v
IGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KDQoN
Cg0KLS0NCi0tLS0gSGlldSBMZSAtLS0NCg==

^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
       [not found]           ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com>
@ 2016-10-13 13:54             ` Steve Gladden
  2016-10-16 21:56             ` Steve Gladden
  1 sibling, 0 replies; 13+ messages in thread
From: Steve Gladden @ 2016-10-13 13:54 UTC (permalink / raw)
  To: Joseph Hwang; +Cc: Hieu Le, Barry Byford, linux-bluetooth

KkhhZCB0byB1bi1vdXRsb29rKiBhbmQgcmUtc2VuZCB0aGlzOg0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVHJpZWQgdGhhdCBvZiBjb3Vyc2UgYWxy
ZWFkeSBkYXlzIGFnby7CoCANCkFzIHdlbGwgYXMgYW55dGhpbmcgZWxzZSBhIHNpbXBsZSBnb29n
bGUgc2VhcmNoIHR1cm5zIHVwLsKgIA0KDQpUbyBzZXQgTWF4IHR4IHBvd2VyOg0Kc3VkbyBiY2Nt
ZCBwc3NldCAtcyAweDAwMDAgMHgwMDE3IDEwDQpUbyBzZXQgZGVmYXVsdCB0eCBwb3dlcjoNCnN1
ZG8gYmNjbWQgcHNzZXQgLXMgMHgwMDAwIDB4MDAyZCAxMMKgwqAgDQoNCkl0IGVhdHMgYm90aCBv
ZiB0aG9zZSBjb21tYW5kcyBhbmQgZG9lcyBub3QgY29tcGxhaW4gbm8gZXJyb3JzIGJ1dCBhbHNv
IG5vIGNoYW5nZSBpbiBUWCBwb3dlciBvdXRwdXQuIA0KSeKAmW0gd2F0Y2hpbmcgdGhlIGJlYWNv
bnMgb24gYSByZWNlaXZlciBhbmQgYSBzcGVjdHJ1bSBhbmFseXNlci7CoCANCg0KSWYgSSBpc3N1
ZTogfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQpoY2kwOsKgwqAgVHlwZTogQlIvRURSwqAgQnVz
OiBVU0INCsKgwqDCoMKgwqDCoMKgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5wqAgQUNM
IE1UVTogMzEwOjEwwqAgU0NPIE1UVTogNjQ6OA0KwqDCoMKgwqDCoMKgwqAgSW5xdWlyeSB0cmFu
c21pdCBwb3dlciBsZXZlbDogNA0KDQpBbHdheXMgcmVhZHMgYmFjayB0aGF0IOKAnDTigJ3CoMKg
IA0KDQpJc3N1aW5nIGVpdGhlcjrCoCANCg0KIyBiY2NtZCB3YXJtcmVzZXQgDQotb3INCiMgYmNj
bWQgY29sZHJlc2V0DQoNCnJlc3VsdHMgaW4gdHJhbnNtaXR0ZXIgb2ZmIGFuZCBoYXZlIHRvIGRv
OsKgIA0KDQpoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZG
IDRDIDAwIDAyIDE1IEUyIDBBIDM5IEY0IDczIEY1IDRCIEM0IEExIDJGIDAxIDczIDQ1IDI3IDcx
IDUwIDBBIDI4IDBBIDI4IDAxIEZGDQotYW5kwqAgDQp+IyBoY2ljb25maWcgaGNpMCBsZWFkdjMN
Cg0KVG8gZ2V0IGl0IHRyYW5zbWl0dGluZyBhZ2FpbiAoYXQgdGhlIHNhbWUgbm9uIGNoYW5nZWQg
bGV2ZWwuwqAgDQoNCkFuZCANCg0KfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQoNCmhjaTA6wqDC
oCBUeXBlOiBCUi9FRFLCoCBCdXM6IFVTQg0KwqDCoMKgwqDCoMKgwqAgQkQgQWRkcmVzczogMDA6
MTU6ODM6RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDCoCBTQ08gTVRVOiA2NDo4DQrCoMKgwqDC
oMKgwqDCoCBJbnF1aXJ5IHRyYW5zbWl0IHBvd2VyIGxldmVsOiA0DQoNCkFsd2F5cyBzaG93cyDi
gJw04oCdIMKgwqANCg0KT24gdG9wIG9mIGV2ZXJ5dGhpbmcgSSBoYXZlIHN0YXRlZCBhbmQgdHJp
ZWQgaGVyZS4uIA0KSSBkb27igJl0IHRoaW5rIHRoYXQgc2V0dGluZyAoaWYgaXQgZXZlbiB3b3Jr
ZWQpIGhhcyBhbnkgcmVsYXRpb24gdG8gTEUgR0ZTSyBhZHZlcnRpc2luZyBtb2RlLsKgwqAgDQoN
ClByZXR0eSBzdXJlIGl0IGRvZXMgbm90LsKgwqAgDQpUaGF0IChpZiBpdCB3b3JrZWQpIHNldHMg
cG93ZXIgb24gQmFzaWMgUmF0ZSBhbmQgRURSIGFzIHNlZW4gaW4gdGhlIHJlc3VsdCDigJxoY2kw
OsKgwqAgVHlwZTogQlIvRURSwqAgQnVzOiBVU0LigJ0gd2hlbiBpc3N1aW5nIHRoZSBoY2ljb25m
aWcgaGNpMCBpbnF0cGwgY29tbWFuZC4NCg0KDQoNCsKgIA0KDQoNCg0KDQoNCg0KDQoNCg0KDQpT
dGV2ZSBHbGFkZGVuDQrCoA0KTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCkNvbm5lY3Rpbmcg
WW91ciBCdXNpbmVzcyENCg0KDQoNCisxIDczNC41MjcuNzE1MCBEaXJlY3QNCisxIDI0OC4zMjcu
NDM4OSBGYXgNCnN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0Kd3d3Lm1pY2hpZ2FuYnJvYWRi
YW5kLmNvbQ0KDQpGcm9tOiBKb3NlcGggSHdhbmcgW21haWx0bzpqb3NlcGhzaWhAZ29vZ2xlLmNv
bV0gDQpTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTE6NTUgQU0NClRvOiBTdGV2
ZSBHbGFkZGVuDQpDYzogSGlldSBMZTsgQmFycnkgQnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdl
ci5rZXJuZWwub3JnDQpTdWJqZWN0OiBSZTogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2Vy
IGxldmVsIGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQoNCkhpIFN0ZXZl
Og0KDQrCoCBNYXliZSB5b3UgY2FuIHRyeSBDU1IncyBjb21tYW5kIGxpbmUgdXRpbGl0eSwgYmNj
bWQuIFRoZSBzeXN0ZW0gY29udHJvbCBjb21tYW5kIE1heF9UeF9Qb3dlciBhbmQgRGVmYXVsdF9U
eF9Qb3dlciBhbGxvdyB5b3UgdG8gc2V0IHR4IHBvd2VyLg0KDQpHb29kIGx1Y2shDQoNCkpvc2Vw
aA0KDQoNCk9uIFdlZCwgT2N0IDEyLCAyMDE2IGF0IDExOjMzIFBNLCBTdGV2ZSBHbGFkZGVuIDxz
dGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KVGhhbmtzLA0KSSB3YXMgaG9waW5n
IHRoZXJlIHdhcyBhbiBlYXNpZXIgd2F5IGFuZCBzb21laG93IGF0IHRoZSBjb21tYW5kIGxpbmUg
YnV0IEknbGwgZG8gd2hhdCBJIG5lZWQgdG8gZG8gYW5kIGZpZ3VyZSBpdCBvdXQgc29tZWhvdy4N
CkkgdXN1YWxseSBlbmQgdXAgb24gMTAgb3RoZXIgcmFiYml0IHRyYWlscyB3aGVuIGl0IGNvbWVz
IHRvIGhhdmluZyB0byByZWNvbXBpbGUgYW55dGhpbmcgYmVjYXVzZSBpdCB1c3VhbGx5IGp1c3Qg
ZmFpbHMgZm9yIG1lIGFuZCBJJ20NCm5vdCB5ZXQgd2VsbCB2ZXJzZWQgaW4gdHJvdWJsZXNob290
aW5nIHdoZW4gdGhpbmdzIHdvbid0IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFzaWRlIGZyb20gd2hh
dCBJIGNhbiBlYXNpbHkgZ29vZ2xlLg0KDQpJIGFsc28gdGhpbmsgaXQncyBhIGxpdHRsZSBtb3Jl
IGNvbXBsaWNhdGVkIHRoYW4ganVzdCBzZXR0aW5nIHRoZSBwb3dlci4NCkkgaGF2ZSBnYXRoZXJl
ZCBhdCBsZWFzdCB3aXQgaHRoZSBDU1IgY2hpcHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAz
IHNlcGFyYXRlIHBvd2VyIHNldHRpbmdzIHRoYXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55
IG92ZXJhbGwgcG93ZXIgc2V0dGluZy4NClNvIHRoZSB2YXJpb3VzIG1vZHVsYXRpb24gbW9kZXMg
KGluY2x1ZGluZyBHRlNLIC1MRSBhZHZlcnRpc2luZy0pIG5lZWQgdG8gYmUgYWRkcmVzc2VkIGFu
ZCBzZXQgaW5kaXZpZHVhbGx5Lg0KVGhlcmUncyBub3QgYSBtYXN0ZXIgdHJhbnNtaXQgbGV2ZWwg
dGhhdCBzZXRzIHRoZW0gYWxsLg0KDQoNClN0ZXZlIEdsYWRkZW4NCsKgDQpNaWNoaWdhbiBCcm9h
ZGJhbmQgU3lzdGVtcw0KQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUy
Ny43MTUwwqBEaXJlY3QNCisxIDI0OC4zMjcuNDM4OcKgRmF4DQpzdGV2ZUBtaWNoaWdhbmJyb2Fk
YmFuZC5jb20NCnd3dy5taWNoaWdhbmJyb2FkYmFuZC5jb20NCg0KLS0tLS1PcmlnaW5hbCBNZXNz
YWdlLS0tLS0NCkZyb206IEhpZXUgTGUgW21haWx0bzpoaWV1LmxlQHZlcmlrc3lzdGVtcy5jb21d
DQpTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTowMCBBTQ0KVG86IFN0ZXZlIEds
YWRkZW4NCkNjOiBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcN
ClN1YmplY3Q6IFJlOiBIb3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1
ZXRvb3RoIExFIG1vZGUgZm9yIGFuIExFIGJlYWNvbj8NCg0KSGksDQoNCkluIG15IG9waW5pb24s
IHRoZSBvbmx5IHdheSBJIGNhbiBmaW5kIHRvIGluY3JlYXNlIHRoZSB0eF9wb3dlciBpcyB0byBy
ZWNvbXBpbGUgdGhlIGxpbnV4IGtlcm5lbC4gVGhlcmUgbWF5IGJlIGEgYmV0dGVyIHdheQ0KDQpJ
dCBzZWVtcyB0aGF0IGJsdWV0b290aCBzdGFjayB3aXRoaW4ga2VybmVsIHNlcGFyYXRlZCBpbnRv
IHR3byBjbGFzc2VzOg0KMS4gSW5xdWlyeSBUeF9wb3dlci4NCjIuIEFkdmVydGlzZSBUeF9wb3dl
ci4NCg0KQW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDAuDQoNCllvdSBjYW4gdGFrZSBhIGxvb2sg
YXQ6DQoqaGNpX2FsbG9jX2Rldih2b2lkKcKgIGZ1bmN0aW9uIHdpdGhpbiBuZXQvYmx1ZXRvb3Ro
L2hjaV9jb3JlLmMgZmlsZQ0KaGRldi0+aW5xX3R4X3Bvd2VyID0gSENJX1RYX1BPV0VSX0lOVkFM
SUQ7IGFkdl90eF9wb3dlciA9DQpoZGV2LT5IQ0lfVFhfUE9XRVJfSU5WQUxJRDsNCg0KSG9wZSBp
dCB3aWxsIGJlIGhlbHBmdWwgdG8geW91Lg0KDQpSZWdhcmRzLA0KSGlldS4NCg0KT24gV2VkLCBP
Y3QgMTIsIDIwMTYgYXQgMTI6NTIgQU0sIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2FuYnJv
YWRiYW5kLmNvbT4gd3JvdGU6DQo+IFRoYW5rcyEhDQo+IFllcyBpdCdzIG5pY2UgdG8gaGVhciBm
cm9tIHNvbWVib2R5Lg0KPg0KPiBJJ3ZlIGJlZW4gc2NvdXJpbmcgdGhlIHdlYiBzbyBmYXIgdG8g
bm8gYXZhaWwgb24gd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhIHNpbXBsZSBhbmQgYWNjZXNzaWJs
ZSBzZXR0aW5nLg0KPiBJdCdzIG9idmlvdXMgZnJvbSB0aGUgc3BlY3MgdGhhdCBtb3N0IGNoaXBz
IGhhdmUgYSBwcm9ncmFtbWFibGUgKHNldHRhYmxlKSB0cmFuc21pdHRlciBwb3dlci4NCj4gQW5k
IHdpdGggYmVhY29ucyBpdCBpcyB2ZXJ5IGltcG9ydGFudCBhbmQgZXhwZWN0ZWQgdGhhdCBvbmUg
c2hvdWxkIGJlIGFibGUgdG8gYWRqdXN0IHRoZSB0cmFuc21pdHRlciBsZXZlbC4NCj4gQWxsIG9m
IHRoZSBzZXJpYWwgYm9hcmRzIGRvIGl0IHdpdGggc2ltcGxlIEFUIGNvbW1hbmRzLg0KPg0KPiBJ
IGp1c3QgZG9uJ3QgZ2V0IHdoeSB0aGVyZSdzIG5vIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGRv
IGl0IHdpdGggYSBVU0IgZGV2aWNlISENCj4NCj4gVGhleSBzZWxsIGNsYXNzIDEgYmx1ZXRvb3Ro
IHVzYiBkb25nbGVzIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIG1vcmUgcmFuZ2UgKDEw
MG0pIGlzIHF1b3RlZCBvbiBtb3N0IGNsYXNzIDEgcHJvZHVjdHMuDQo+DQo+IEknZCBleHBlY3Qg
dGhlcmUgc2hvdWxkIGJlIGEgc3RyYWlnaHQgZm9yd2FyZCBlYXN5IHRvIHNldCBwb3dlciBpbiBM
RSBtb2RlIHRvIGdldCBtb3JlIHJhbmdlIG9yIHNhdmUgcG93ZXIgYW5kIGxpbWl0IHJhbmdlIHdo
ZW4gd2FudGVkLg0KPg0KPiBCdXQgSSdtIHJlYWxseSBub3QgZmluZGluZyB0aGlzIGluZm9ybWF0
aW9uIG91dCB0aGVyZSENCj4NCj4gSSBkb247dCB1bmRlcnN0YW5kIHdoYXQgSSBhbSBkb2luZyB3
cm9uZyBvciB3aHkgdGhpcyBpcyBzbyBkaWZmaWN1bHQNCj4gdG8gZmluZC7CoCA6KQ0KPg0KPg0K
Pg0KPg0KPg0KPg0KPg0KPiBPbiAxMSBPY3RvYmVyIDIwMTYgYXQgMTc6NTAsIFN0ZXZlIEdsYWRk
ZW4gPHN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+PiBJcyB0aGlzIHRoaXMg
bGlzdCBqdXN0IHNvbWUga2luZCBvZiBhdXRvbWF0ZWQgcGF0Y2ggYW5ub3VuY2VtZW50IGxvZyBh
bmQgbm90IGFuIGFjdHVhbCBtYWlsaW5nIGxpc3Qgd2hlcmUgeW91IGNhbiBhc2sgYW55dGhpbmcg
YWJvdXQgYmx1ZXRvb3RoLg0KPj4gVGhpcyBpcyBhbGwgSSBoYXZlIHNlZW4gaGVyZSBmb3IgdGhl
IHBhc3QgZmV3IGRheXM/DQo+PiBXaGVyZSBjYW4gSSBhc2sgYW4gYWN0dWFsIHF1ZXN0aW9uIGFi
b3V0IGJsdWV0b290aD8NCj4NCj4gVGhlcmUgYXJlIHNvbWUgcmVhbCBodW1hbnMgaGVyZSB0b28h
wqAgOi0pDQo+DQo+IElmIHlvdSBsb29rIGJhY2sgb24gdGhlIGFyY2hpdmUgb2YgdGhpcyBsaXN0
IHlvdSB3aWxsIHNlZSBhIG1peHR1cmUgb2YNCj4gcXVlc3Rpb25zIGFuZCBwYXRjaCByZXF1ZXN0
cy4NCj4gbWFyYy5pbmZvLz9sPWxpbnV4LWJsdWV0b290aA0KPg0KPiBJJ3ZlIGtlcHQgcXVpZXQg
YXMgSSdtIG5vdCBzdXJlIEkgY2FuIGFuc3dlciBxdWVzdGlvbnMuIFRvIG9mZmVyIHNvbWUNCj4g
c2hhcmVkIGV4cGVyaWVuY2UsIEkgY2FuIHNheSB0aGF0IEkndmUgYmVlbiBleHBlcmltZW50aW5n
IHdpdGgNCj4gKEVkZHlzdG9uZSkgYmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0
ZXJzIGFjY2Vzc2luZyBCbHVlWg0KPiB0aHJvdWdoIHRoZSBEQnVzIEFQSSB1c2luZyBQeXRob24u
IEkgYWxzbyBoYXZlIG5vdCBmb3VuZCBhIHdheSB0bw0KPiBjaGFuZ2UgdGhlIHBvd2VyIGxldmVs
IG9mIGFkdmVydGlzZW1lbnRzIGVpdGhlci4gRm9yIHdoYXQgSSdtIGRvaW5nLA0KPiBqdXN0IG1h
a2luZyBzdXJlIHRoZSBUWCBwb3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdo
YXQgdGhlDQo+IGRvbmdsZSBpcyBhY3R1YWxseSBicm9hZGNhc3RpbmcgaGFzIGJlZW4gZ29vZCBl
bm91Z2guDQo+DQo+IFNvcnJ5IEkgY291bGRuJ3QgYmUgb2YgbW9yZSBoZWxwLg0KPg0KPiBSZWdh
cmRzLA0KPiBCYXJyeQ0KPg0KPj4NCj4+DQo+Pg0KPj4NCj4+IFN0ZXZlIEdsYWRkZW4NCj4+DQo+
PiBNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPj4gQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNz
IQ0KPj4NCj4+DQo+Pg0KPj4gKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KPj4gKzEgMjQ4LjMyNy40
Mzg5IEZheA0KPj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQo+PiB3d3cubWljaGlnYW5i
cm9hZGJhbmQuY29tDQo+Pg0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXw0KPj4gRnJvbTogU3RldmUgR2xhZGRlbg0KPj4gU2VudDogU3VuZGF5LCBPY3RvYmVyIDA5
LCAyMDE2IDEyOjExIFBNDQo+PiBUbzogbGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0K
Pj4gU3ViamVjdDogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxldmVsIGluIEJsdWV0
b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQo+Pg0KPj4gSGksDQo+PiBNeSBuYW1lIGlz
IFN0ZXZlIGFuZCBJIGFtIGxvY2F0ZWQgaW4gQW5uIEFyYm9yIE1pY2hpZ2FuIFVTQS4NCj4+DQo+
PiBJIGFtIG5ld8KgIGJsdWV0b290aCBMRSBhbmQgbGF0ZWx5IGFtIG9ic2Vzc2VkIHdpdGggQmx1
ZXRvb3RoIExFIGJlYWNvbnMgYW5kIHRyeWluZyB0aGVtIG91dC4NCj4+DQo+PiBJIGhhdmUgcmVh
ZCBhcnRpY2xlIGFmdGVyIGFydGljbGUgYW5kIHBhZ2UgYWZ0ZXIgcGFnZSBhYm91dCBob3cNCj4+
IHBlb3BsZSBoYXZlIHNldHVwIHVwIGJlYWNvbnMgd2l0aCBVU0IgQlQgNC4wIGludGVyZmFjZXMg
YXMgd2VsbCBhcyBzZXJpYWwgYmx1ZXRvb3RoIGJvYXJkcy4NCj4+DQo+PiBJIGFtIGN1cnJlbnRs
eSBleHBlcmltZW50aW5nIHdpdGggYSBiZWFjb24gcnVubmluZyBvbiBhIFJhc3BiZXJyeSBQaS1C
IGFuZCB1c2luZyBhbiBleHRlcm5hbCBVU0IgQmx1ZXRvb3RoIDQuMCBjbGFzcyAxIGRvbmdsZS4N
Cj4+DQo+PiBNeSBmcnVzdHJhdGlvbiBpcyB0aGF0IEkgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGZp
bmQgYW55IHVzZWZ1bA0KPj4gaW5mb3JtYXRpb24gaW4gaG93IHRvIGNoYW5nZSB0aGUgVHJhbnNt
aXR0ZXIgcG93ZXIgbGV2ZWwgd2hlbiBpbiBMRSBtb2RlLg0KPj4NCj4+IFRoZSBkb25nbGUgYXBw
ZWFycyB0byBiZSB3b3JraW5nIGF0IGRlZmF1bHQgbGV2ZWwgYmVsb3cgemVybyBkYm0uDQo+Pg0K
Pj4gVGhlIHdob2xlIHBvaW50IG9mIGJ1aWxkaW5nIHlvdXIgb3duIGJlYWNvbiB0aGlzIHdheSBp
cyB0byBiZSBhYmxlIHRvDQo+PiBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxl
dmVsIGlzIGFuIGltcG9ydGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNz
aWJsZSB5ZXQgSSBmaW5kIHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxv
bmUgZG8gdGhleSBleHBsYWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+
DQo+Pg0KPj4gRXZlcnkgdGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29u
IHNldHVwcyBmcm9tIGNvbW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5n
IGJlYWNvbiBUWCBwb3dlci4NCj4+DQo+PiBBbGwgdGhlIHBhZ2VzIEkgaGF2ZSBmb3VuZCBzZWVt
IHRvIGNvcHkgZWFjaCBvdGhlciBhbmQgcmVwZWF0IHRoZQ0KPj4gc2FtZSBpbmZvcm1hdGlvbiBv
dmVyICYgb3ZlciBCdXQgbmV2ZXIgZ2V0IGFyb3VuZCB0byBldmVuIG1lbnRpb25pbmcgb3IgZGlz
Y3Vzc2luZyBzZXR0aW5nIHRoZSBwb3dlciBvdXRwdXQgbGV2ZWwgb2YgdGhlIGJsdXRvb3RoIGRv
bmdsZS4NCj4+DQo+PiBzdWRvIGhjaXRvb2wgLWkgaGNpMCBjbWQgMHgwOCAweDAwMDggMUUgMDIg
MDEgMUEgMUEgRkYgNEMgMDAgMDIgMTUgWw0KPj4gOTIgNzcgODMgMEEgQjIgRUIgNDkgMEYgQTEg
REQgN0YgRTMgOEMgNDkgMkUgREUgXSBbIDAwIDAwIF0gWyAwMCAwMCBdDQo+PiBDNSAwMA0KPj4N
Cj4+IFRoZSBieXRlIGp1c3QgbGVmdCBvZiB0aGUgbGFzdCBvbmUgaXMgdGhlICJyZXBvcnRlZCIg
VFggbGV2ZWwgdGhhdCB5b3UgYXJlIHRyYW5zbWl0dGluZyBhdC4NCj4+IFdoaWNoIG1lYW5zIHlv
dSdyZSBzdXBwb3NlZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBhcmUg
YWN0dWFsbHkgdHJhbnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRvIHRo
ZSB3b3JsZCB3aGF0IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkgY2Fu
IHJhbmdlIChndWVzcyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+IFRoaXMgdmFs
dWUgZG9lcyBub3QgaW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0K
Pj4NCj4+IFBsZWFzZSBoZWxwISENCj4+DQo+PiBDb3VsZCB1c2UgYW55IHBvaW50ZXJzLg0KPj4N
Cj4+IEknbSBhIGhhcmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGlu
IHNvZnR3YXJlL3Byb2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8g
Z2V0IGNvbnRyb2wgb2YgdGhpcy4NCj4+DQo+PiBCZWVuIGF0IHRoaXMgZm9yIG92ZXIgYSB3ZWVr
IGFuZCBoYXZlIHNvbWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9sIG9mIHRyYW5zbWl0
IHBvd2VyIGxldmVsLg0KPj4NCj4+IEFtIHVzaW5nIFRyZW5kbmV0IFVTQiBkb25nbGVzIHdoaWNo
IGFwcGVhciB0byB1c2UgYSBDYW1icmlkZ2UgQ2hpcC7CoCBCdXQgSSdtIG5vdCBleGFjdGx5IHN1
cmUgd2hpY2ggY2hpcC4NCj4+DQo+Pg0KPj4gOn4jIGxzdXNiDQo+PiBCdXMgMDAxIERldmljZSAw
MDc6IElEIDBhMTI6MDAwMSBDYW1icmlkZ2UgU2lsaWNvbiBSYWRpbywgTHRkDQo+PiBCbHVldG9v
dGggRG9uZ2xlIChIQ0kgbW9kZSkNCj4+DQo+Pg0KPj4gcm9vdEByYXNwYmVycnlwaTp+IyBoY2lj
b25maWcgaGNpMA0KPj4gaGNpMDrCoCDCoFR5cGU6IEJSL0VEUsKgIEJ1czogVVNCDQo+PsKgIMKg
IMKgIMKgIMKgQkQgQWRkcmVzczogMDA6MTU6ODM6RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDC
oCBTQ08gTVRVOiA2NDo4DQo+PsKgIMKgIMKgIMKgIMKgVVAgUlVOTklORw0KPj7CoCDCoCDCoCDC
oCDCoFJYIGJ5dGVzOjc4MCBhY2w6MCBzY286MCBldmVudHM6NTAgZXJyb3JzOjANCj4+wqAgwqAg
wqAgwqAgwqBUWCBieXRlczoxMTEwIGFjbDowIHNjbzowIGNvbW1hbmRzOjUwIGVycm9yczowDQo+
Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+
IC0tDQo+PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5z
dWJzY3JpYmUNCj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRv
DQo+PiBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnIE1vcmUgbWFqb3Jkb21vIGluZm8gYXQNCj4+
IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KPiAtLQ0KPiBUbyB1
bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4g
bGludXgtYmx1ZXRvb3RoIiBpbiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZn
ZXIua2VybmVsLm9yZw0KPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0wqAgaHR0cDovL3ZnZXIua2Vy
bmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sDQoNCg0KDQotLQ0KLS0tLSBIaWV1IExlIC0tLQ0K
DQoNCg0KDQotLSANCg0KSm9zZXBoIFNoeWgtSW4gSHdhbmcNCkVtYWlsOiBqb3NlcGhzaWhAZ29v
Z2xlLmNvbQ0KDQo=

^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
       [not found]           ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com>
  2016-10-13 13:54             ` Steve Gladden
@ 2016-10-16 21:56             ` Steve Gladden
  2016-10-16 22:48               ` Jason Anderssen
  1 sibling, 1 reply; 13+ messages in thread
From: Steve Gladden @ 2016-10-16 21:56 UTC (permalink / raw)
  To: Joseph Hwang; +Cc: Hieu Le, Barry Byford, linux-bluetooth

T2ssIHRoaXMgaXMgZ2V0dGluZyByZWFsbHkgZnJ1c3RyYXRpbmcuDQpXaHkgd291bGQgc29tZXRo
aW5nIHNvIHNpbXBsZSBsaWtlIHRoaXMgYmUgc28gZGlmZmljdWx0PyAgDQoNCkFtIEkgcmVhbGx5
IHRoZSBvbmx5IHNoZWVwIG91dCBoZXJlIHRoYXQgaGFzIGFueSBpbnRlcmVzdCB3aGF0c29ldmVy
IGluIHRoZSBwYXN0IDUgeWVhcnMgb24gaG93IHRvIGFjdHVhbGx5IHNldCBMRSB0cmFuc21pdCBw
b3dlciBvbiBhIFVTQiBkZXZpY2U/ICAgDQpEbyBJIGp1c3Qgbm90IGdldCBpdD8gICAgIA0KUmVh
bGx5IEkgZG9u4oCZdCBnZXQgaXQuICAgDQoNCkEgcmVhbGx5IHNpbXBsZSB0YXNrIGFuZCBub2Jv
ZHkgb3V0IGhlcmUgZWl0aGVyIGtub3dzIG9yIGhhcyBhbnkgaW50ZXJlc3QgaW4gZG9pbmcgaXQu
ICANCg0KTXkgcXVlc3Rpb24gaXMgbm90IGV2ZW4gdGVjaG5pY2FsIGF0IGFsbC4gICBJZiBJIGFj
dHVhbGx5IGFza2VkIHNvbWV0aGluZyB0ZWNobmljYWwgb3V0IGhlcmUgd291bGQgd291bGQgaGFw
cGVuPyAgDQoNCk5vIG9mZmVuc2UgdG8gYW55b25lIG91dCBoZXJlIGp1c3QgdG8gbXlzZWxmIHJl
YWxseSBidXQgd2hhdCBnaXZlcz8gICANCg0KSG93IGNvdWxkIHBlb3BsZSB3b3JraW5nIHdpdGgg
dGhpcyBzdHVmZiBOT1QgYmUgaW50ZXJlc3RlZCBpbiBzaW1wbHkgY29udHJvbGxpbmcgdGhlIFRY
IHBvd2VyIG91dHB1dCB2ZXJzdXMganVzdCBsaXZpbmcgd2l0aCBzb21lIFVOS05PV04gREVGQVVM
VCB0aGF0IGp1c3Qgc29ydGEgd29ya3MgaWYgeW914oCZcmUgaGFwcHkgd2l0aCBvbmx5IDIwIGZl
ZXQgb2YgcmFuZ2UgYWx0aG91Z2ggdGhlIGNoaXAgY2FuIHB1dCBvdXQgKzEwZGJtIGFuZCBnbyBm
dXJ0aGVyIA0KT3Igc2V0IGl0IHdheSBiYWNrIHRvIC00MGRibSBhbmQgZ2V0IGpzdHUgYSBmZXcg
ZmVldCBhbmQgeWVhcnMgb2YgYmF0dGVyeSBsaWZlLiANCg0KSG93IHRoZSBhY3R1YWwgRi0gYXJl
IHBlb3BsZSBOT1QgaW50ZXJlc3RlZCBpbiB0aGlzIGFuZCB0YWxraW5nIGFib3V0IGl0IGFuZCB3
b3JraW5nIHdpdGggaXQ/ICAg4pi6ICAgDQoNCkFsbCBJIGhhdmUgZm91bmQgb24gYmNjbWQgaXMg
YSBQREYgZG9jdW1lbnQgZnJvbSAyMDA1IHRoYXQgcHJlZGF0ZXMgQU5ZIGtpbmQgb2YgQlRMRSBz
dHVmZi4gICANCg0KQW5kIHRoYXTigJlzIGp1c3QgZm9yIHRoZSBDU1IgY2hpcHNldHMgdGhlIE9O
RSB0aGF0IEkgY291bGQgZmluZCBkb2N1bWVudGF0aW9uIG9uLiAgIA0KDQpXaGF0IGFib3V0IGFs
bCB0aGUgb3RoZXJzPyAgIA0KDQpXaGF0IGdpdmVzIGhlcmUgbWFuPyAgIA0KDQpBbSBJIGNvbXBs
ZXRlbHkgaW4gdGhlIHdyb25nIHBsYWNlIHRvIGJlIGFza2luZyBhYm91dCB0aGlzPyAgIA0KDQpJ
IGRvbuKAmXQgbWVhbiBhbnkgZGlzcmVzcGVjdCwgcmVhbGx5IEkgZG9u4oCZdCEgIA0KDQpCdXQg
d2hlcmUgaW4gdGhlIHdvcmxkIGRvIEkgZ28gdG8gZ2V0IHRoaXMgYmFzaWMgaW5mb3JtYXRpb24/
ICAgDQoNCkFuZCB3aHkgZG9lcyBub2JvZHkgY2FyZSBvZiBoYXZlIGFueSBoYW5kcy1vbiBleHBl
cmllbmNlIGhlcmUgYW5kL29yIGludGVyZXN0PyAgIA0KDQpUaGFua3MhISAgDQoNClN0ZXZlICAN
Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KVHJpZWQgdGhhdCBvZiBjb3Vyc2UgYWxyZWFkeSBk
YXlzIGFnby7CoCANCkFzIHdlbGwgYXMgYW55dGhpbmcgZWxzZSBhIHNpbXBsZSBnb29nbGUgc2Vh
cmNoIHR1cm5zIHVwLsKgIA0KDQpUbyBzZXQgTWF4IHR4IHBvd2VyOg0Kc3VkbyBiY2NtZCBwc3Nl
dCAtcyAweDAwMDAgMHgwMDE3IDEwDQpUbyBzZXQgZGVmYXVsdCB0eCBwb3dlcjoNCnN1ZG8gYmNj
bWQgcHNzZXQgLXMgMHgwMDAwIDB4MDAyZCAxMMKgwqAgDQoNCkl0IGVhdHMgYm90aCBvZiB0aG9z
ZSBjb21tYW5kcyBhbmQgZG9lcyBub3QgY29tcGxhaW4gbm8gZXJyb3JzIGJ1dCBhbHNvIG5vIGNo
YW5nZSBpbiBUWCBwb3dlciBvdXRwdXQuIA0KSeKAmW0gd2F0Y2hpbmcgdGhlIGJlYWNvbnMgb24g
YSByZWNlaXZlciBhbmQgYSBzcGVjdHJ1bSBhbmFseXNlci7CoCANCg0KSWYgSSBpc3N1ZTogfiMg
aGNpY29uZmlnIGhjaTAgaW5xdHBsDQpoY2kwOsKgwqAgVHlwZTogQlIvRURSwqAgQnVzOiBVU0IN
CsKgwqDCoMKgwqDCoMKgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5wqAgQUNMIE1UVTog
MzEwOjEwwqAgU0NPIE1UVTogNjQ6OA0KwqDCoMKgwqDCoMKgwqAgSW5xdWlyeSB0cmFuc21pdCBw
b3dlciBsZXZlbDogNA0KDQpBbHdheXMgcmVhZHMgYmFjayB0aGF0IOKAnDTigJ3CoMKgIA0KDQpJ
c3N1aW5nIGVpdGhlcjrCoCANCg0KIyBiY2NtZCB3YXJtcmVzZXQgDQotb3INCiMgYmNjbWQgY29s
ZHJlc2V0DQoNCnJlc3VsdHMgaW4gdHJhbnNtaXR0ZXIgb2ZmIGFuZCBoYXZlIHRvIGRvOsKgIA0K
DQpoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRDIDAw
IDAyIDE1IEUyIDBBIDM5IEY0IDczIEY1IDRCIEM0IEExIDJGIDAxIDczIDQ1IDI3IDcxIDUwIDBB
IDI4IDBBIDI4IDAxIEZGDQotYW5kwqAgDQp+IyBoY2ljb25maWcgaGNpMCBsZWFkdjMNCg0KVG8g
Z2V0IGl0IHRyYW5zbWl0dGluZyBhZ2FpbiAoYXQgdGhlIHNhbWUgbm9uIGNoYW5nZWQgbGV2ZWwu
wqAgDQoNCkFuZCANCg0KfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQoNCmhjaTA6wqDCoCBUeXBl
OiBCUi9FRFLCoCBCdXM6IFVTQg0KwqDCoMKgwqDCoMKgwqAgQkQgQWRkcmVzczogMDA6MTU6ODM6
RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDCoCBTQ08gTVRVOiA2NDo4DQrCoMKgwqDCoMKgwqDC
oCBJbnF1aXJ5IHRyYW5zbWl0IHBvd2VyIGxldmVsOiA0DQoNCkFsd2F5cyBzaG93cyDigJw04oCd
IMKgwqANCg0KT24gdG9wIG9mIGV2ZXJ5dGhpbmcgSSBoYXZlIHN0YXRlZCBhbmQgdHJpZWQgaGVy
ZS4uIA0KSSBkb27igJl0IHRoaW5rIHRoYXQgc2V0dGluZyAoaWYgaXQgZXZlbiB3b3JrZWQpIGhh
cyBhbnkgcmVsYXRpb24gdG8gTEUgR0ZTSyBhZHZlcnRpc2luZyBtb2RlLsKgwqAgDQoNClByZXR0
eSBzdXJlIGl0IGRvZXMgbm90LsKgwqAgDQpUaGF0IChpZiBpdCB3b3JrZWQpIHNldHMgcG93ZXIg
b24gQmFzaWMgUmF0ZSBhbmQgRURSIGFzIHNlZW4gaW4gdGhlIHJlc3VsdCDigJxoY2kwOsKgwqAg
VHlwZTogQlIvRURSwqAgQnVzOiBVU0LigJ0gd2hlbiBpc3N1aW5nIHRoZSBoY2ljb25maWcgaGNp
MCBpbnF0cGwgY29tbWFuZC4NCg0KDQoNCsKgIA0KDQoNCg0KDQoNCg0KDQoNCg0KDQpTdGV2ZSBH
bGFkZGVuDQrCoA0KTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCkNvbm5lY3RpbmcgWW91ciBC
dXNpbmVzcyENCg0KDQoNCisxIDczNC41MjcuNzE1MCBEaXJlY3QNCisxIDI0OC4zMjcuNDM4OSBG
YXgNCnN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0Kd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNv
bQ0KDQpGcm9tOiBKb3NlcGggSHdhbmcgW21haWx0bzpqb3NlcGhzaWhAZ29vZ2xlLmNvbV0gDQpT
ZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTE6NTUgQU0NClRvOiBTdGV2ZSBHbGFk
ZGVuDQpDYzogSGlldSBMZTsgQmFycnkgQnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJu
ZWwub3JnDQpTdWJqZWN0OiBSZTogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxldmVs
IGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQoNCkhpIFN0ZXZlOg0KDQrC
oCBNYXliZSB5b3UgY2FuIHRyeSBDU1IncyBjb21tYW5kIGxpbmUgdXRpbGl0eSwgYmNjbWQuIFRo
ZSBzeXN0ZW0gY29udHJvbCBjb21tYW5kIE1heF9UeF9Qb3dlciBhbmQgRGVmYXVsdF9UeF9Qb3dl
ciBhbGxvdyB5b3UgdG8gc2V0IHR4IHBvd2VyLg0KDQpHb29kIGx1Y2shDQoNCkpvc2VwaA0KDQoN
Ck9uIFdlZCwgT2N0IDEyLCAyMDE2IGF0IDExOjMzIFBNLCBTdGV2ZSBHbGFkZGVuIDxzdGV2ZUBt
aWNoaWdhbmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KVGhhbmtzLA0KSSB3YXMgaG9waW5nIHRoZXJl
IHdhcyBhbiBlYXNpZXIgd2F5IGFuZCBzb21laG93IGF0IHRoZSBjb21tYW5kIGxpbmUgYnV0IEkn
bGwgZG8gd2hhdCBJIG5lZWQgdG8gZG8gYW5kIGZpZ3VyZSBpdCBvdXQgc29tZWhvdy4NCkkgdXN1
YWxseSBlbmQgdXAgb24gMTAgb3RoZXIgcmFiYml0IHRyYWlscyB3aGVuIGl0IGNvbWVzIHRvIGhh
dmluZyB0byByZWNvbXBpbGUgYW55dGhpbmcgYmVjYXVzZSBpdCB1c3VhbGx5IGp1c3QgZmFpbHMg
Zm9yIG1lIGFuZCBJJ20NCm5vdCB5ZXQgd2VsbCB2ZXJzZWQgaW4gdHJvdWJsZXNob290aW5nIHdo
ZW4gdGhpbmdzIHdvbid0IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFzaWRlIGZyb20gd2hhdCBJIGNh
biBlYXNpbHkgZ29vZ2xlLg0KDQpJIGFsc28gdGhpbmsgaXQncyBhIGxpdHRsZSBtb3JlIGNvbXBs
aWNhdGVkIHRoYW4ganVzdCBzZXR0aW5nIHRoZSBwb3dlci4NCkkgaGF2ZSBnYXRoZXJlZCBhdCBs
ZWFzdCB3aXQgaHRoZSBDU1IgY2hpcHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAzIHNlcGFy
YXRlIHBvd2VyIHNldHRpbmdzIHRoYXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55IG92ZXJh
bGwgcG93ZXIgc2V0dGluZy4NClNvIHRoZSB2YXJpb3VzIG1vZHVsYXRpb24gbW9kZXMgKGluY2x1
ZGluZyBHRlNLIC1MRSBhZHZlcnRpc2luZy0pIG5lZWQgdG8gYmUgYWRkcmVzc2VkIGFuZCBzZXQg
aW5kaXZpZHVhbGx5Lg0KVGhlcmUncyBub3QgYSBtYXN0ZXIgdHJhbnNtaXQgbGV2ZWwgdGhhdCBz
ZXRzIHRoZW0gYWxsLg0KDQoNClN0ZXZlIEdsYWRkZW4NCsKgDQpNaWNoaWdhbiBCcm9hZGJhbmQg
U3lzdGVtcw0KQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUyNy43MTUw
wqBEaXJlY3QNCisxIDI0OC4zMjcuNDM4OcKgRmF4DQpzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5j
b20NCnd3dy5taWNoaWdhbmJyb2FkYmFuZC5jb20NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t
LS0NCkZyb206IEhpZXUgTGUgW21haWx0bzpoaWV1LmxlQHZlcmlrc3lzdGVtcy5jb21dDQpTZW50
OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTowMCBBTQ0KVG86IFN0ZXZlIEdsYWRkZW4N
CkNjOiBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNClN1Ympl
Y3Q6IFJlOiBIb3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1ZXRvb3Ro
IExFIG1vZGUgZm9yIGFuIExFIGJlYWNvbj8NCg0KSGksDQoNCkluIG15IG9waW5pb24sIHRoZSBv
bmx5IHdheSBJIGNhbiBmaW5kIHRvIGluY3JlYXNlIHRoZSB0eF9wb3dlciBpcyB0byByZWNvbXBp
bGUgdGhlIGxpbnV4IGtlcm5lbC4gVGhlcmUgbWF5IGJlIGEgYmV0dGVyIHdheQ0KDQpJdCBzZWVt
cyB0aGF0IGJsdWV0b290aCBzdGFjayB3aXRoaW4ga2VybmVsIHNlcGFyYXRlZCBpbnRvIHR3byBj
bGFzc2VzOg0KMS4gSW5xdWlyeSBUeF9wb3dlci4NCjIuIEFkdmVydGlzZSBUeF9wb3dlci4NCg0K
QW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDAuDQoNCllvdSBjYW4gdGFrZSBhIGxvb2sgYXQ6DQoq
aGNpX2FsbG9jX2Rldih2b2lkKcKgIGZ1bmN0aW9uIHdpdGhpbiBuZXQvYmx1ZXRvb3RoL2hjaV9j
b3JlLmMgZmlsZQ0KaGRldi0+aW5xX3R4X3Bvd2VyID0gSENJX1RYX1BPV0VSX0lOVkFMSUQ7IGFk
dl90eF9wb3dlciA9DQpoZGV2LT5IQ0lfVFhfUE9XRVJfSU5WQUxJRDsNCg0KSG9wZSBpdCB3aWxs
IGJlIGhlbHBmdWwgdG8geW91Lg0KDQpSZWdhcmRzLA0KSGlldS4NCg0KT24gV2VkLCBPY3QgMTIs
IDIwMTYgYXQgMTI6NTIgQU0sIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5k
LmNvbT4gd3JvdGU6DQo+IFRoYW5rcyEhDQo+IFllcyBpdCdzIG5pY2UgdG8gaGVhciBmcm9tIHNv
bWVib2R5Lg0KPg0KPiBJJ3ZlIGJlZW4gc2NvdXJpbmcgdGhlIHdlYiBzbyBmYXIgdG8gbm8gYXZh
aWwgb24gd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhIHNpbXBsZSBhbmQgYWNjZXNzaWJsZSBzZXR0
aW5nLg0KPiBJdCdzIG9idmlvdXMgZnJvbSB0aGUgc3BlY3MgdGhhdCBtb3N0IGNoaXBzIGhhdmUg
YSBwcm9ncmFtbWFibGUgKHNldHRhYmxlKSB0cmFuc21pdHRlciBwb3dlci4NCj4gQW5kIHdpdGgg
YmVhY29ucyBpdCBpcyB2ZXJ5IGltcG9ydGFudCBhbmQgZXhwZWN0ZWQgdGhhdCBvbmUgc2hvdWxk
IGJlIGFibGUgdG8gYWRqdXN0IHRoZSB0cmFuc21pdHRlciBsZXZlbC4NCj4gQWxsIG9mIHRoZSBz
ZXJpYWwgYm9hcmRzIGRvIGl0IHdpdGggc2ltcGxlIEFUIGNvbW1hbmRzLg0KPg0KPiBJIGp1c3Qg
ZG9uJ3QgZ2V0IHdoeSB0aGVyZSdzIG5vIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGRvIGl0IHdp
dGggYSBVU0IgZGV2aWNlISENCj4NCj4gVGhleSBzZWxsIGNsYXNzIDEgYmx1ZXRvb3RoIHVzYiBk
b25nbGVzIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIG1vcmUgcmFuZ2UgKDEwMG0pIGlz
IHF1b3RlZCBvbiBtb3N0IGNsYXNzIDEgcHJvZHVjdHMuDQo+DQo+IEknZCBleHBlY3QgdGhlcmUg
c2hvdWxkIGJlIGEgc3RyYWlnaHQgZm9yd2FyZCBlYXN5IHRvIHNldCBwb3dlciBpbiBMRSBtb2Rl
IHRvIGdldCBtb3JlIHJhbmdlIG9yIHNhdmUgcG93ZXIgYW5kIGxpbWl0IHJhbmdlIHdoZW4gd2Fu
dGVkLg0KPg0KPiBCdXQgSSdtIHJlYWxseSBub3QgZmluZGluZyB0aGlzIGluZm9ybWF0aW9uIG91
dCB0aGVyZSENCj4NCj4gSSBkb247dCB1bmRlcnN0YW5kIHdoYXQgSSBhbSBkb2luZyB3cm9uZyBv
ciB3aHkgdGhpcyBpcyBzbyBkaWZmaWN1bHQNCj4gdG8gZmluZC7CoCA6KQ0KPg0KPg0KPg0KPg0K
Pg0KPg0KPg0KPiBPbiAxMSBPY3RvYmVyIDIwMTYgYXQgMTc6NTAsIFN0ZXZlIEdsYWRkZW4gPHN0
ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+PiBJcyB0aGlzIHRoaXMgbGlzdCBq
dXN0IHNvbWUga2luZCBvZiBhdXRvbWF0ZWQgcGF0Y2ggYW5ub3VuY2VtZW50IGxvZyBhbmQgbm90
IGFuIGFjdHVhbCBtYWlsaW5nIGxpc3Qgd2hlcmUgeW91IGNhbiBhc2sgYW55dGhpbmcgYWJvdXQg
Ymx1ZXRvb3RoLg0KPj4gVGhpcyBpcyBhbGwgSSBoYXZlIHNlZW4gaGVyZSBmb3IgdGhlIHBhc3Qg
ZmV3IGRheXM/DQo+PiBXaGVyZSBjYW4gSSBhc2sgYW4gYWN0dWFsIHF1ZXN0aW9uIGFib3V0IGJs
dWV0b290aD8NCj4NCj4gVGhlcmUgYXJlIHNvbWUgcmVhbCBodW1hbnMgaGVyZSB0b28hwqAgOi0p
DQo+DQo+IElmIHlvdSBsb29rIGJhY2sgb24gdGhlIGFyY2hpdmUgb2YgdGhpcyBsaXN0IHlvdSB3
aWxsIHNlZSBhIG1peHR1cmUgb2YNCj4gcXVlc3Rpb25zIGFuZCBwYXRjaCByZXF1ZXN0cy4NCj4g
bWFyYy5pbmZvLz9sPWxpbnV4LWJsdWV0b290aA0KPg0KPiBJJ3ZlIGtlcHQgcXVpZXQgYXMgSSdt
IG5vdCBzdXJlIEkgY2FuIGFuc3dlciBxdWVzdGlvbnMuIFRvIG9mZmVyIHNvbWUNCj4gc2hhcmVk
IGV4cGVyaWVuY2UsIEkgY2FuIHNheSB0aGF0IEkndmUgYmVlbiBleHBlcmltZW50aW5nIHdpdGgN
Cj4gKEVkZHlzdG9uZSkgYmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0ZXJzIGFj
Y2Vzc2luZyBCbHVlWg0KPiB0aHJvdWdoIHRoZSBEQnVzIEFQSSB1c2luZyBQeXRob24uIEkgYWxz
byBoYXZlIG5vdCBmb3VuZCBhIHdheSB0bw0KPiBjaGFuZ2UgdGhlIHBvd2VyIGxldmVsIG9mIGFk
dmVydGlzZW1lbnRzIGVpdGhlci4gRm9yIHdoYXQgSSdtIGRvaW5nLA0KPiBqdXN0IG1ha2luZyBz
dXJlIHRoZSBUWCBwb3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdoYXQgdGhl
DQo+IGRvbmdsZSBpcyBhY3R1YWxseSBicm9hZGNhc3RpbmcgaGFzIGJlZW4gZ29vZCBlbm91Z2gu
DQo+DQo+IFNvcnJ5IEkgY291bGRuJ3QgYmUgb2YgbW9yZSBoZWxwLg0KPg0KPiBSZWdhcmRzLA0K
PiBCYXJyeQ0KPg0KPj4NCj4+DQo+Pg0KPj4NCj4+IFN0ZXZlIEdsYWRkZW4NCj4+DQo+PiBNaWNo
aWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPj4gQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KPj4N
Cj4+DQo+Pg0KPj4gKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KPj4gKzEgMjQ4LjMyNy40Mzg5IEZh
eA0KPj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQo+PiB3d3cubWljaGlnYW5icm9hZGJh
bmQuY29tDQo+Pg0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K
Pj4gRnJvbTogU3RldmUgR2xhZGRlbg0KPj4gU2VudDogU3VuZGF5LCBPY3RvYmVyIDA5LCAyMDE2
IDEyOjExIFBNDQo+PiBUbzogbGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0KPj4gU3Vi
amVjdDogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxldmVsIGluIEJsdWV0b290aCBM
RSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQo+Pg0KPj4gSGksDQo+PiBNeSBuYW1lIGlzIFN0ZXZl
IGFuZCBJIGFtIGxvY2F0ZWQgaW4gQW5uIEFyYm9yIE1pY2hpZ2FuIFVTQS4NCj4+DQo+PiBJIGFt
IG5ld8KgIGJsdWV0b290aCBMRSBhbmQgbGF0ZWx5IGFtIG9ic2Vzc2VkIHdpdGggQmx1ZXRvb3Ro
IExFIGJlYWNvbnMgYW5kIHRyeWluZyB0aGVtIG91dC4NCj4+DQo+PiBJIGhhdmUgcmVhZCBhcnRp
Y2xlIGFmdGVyIGFydGljbGUgYW5kIHBhZ2UgYWZ0ZXIgcGFnZSBhYm91dCBob3cNCj4+IHBlb3Bs
ZSBoYXZlIHNldHVwIHVwIGJlYWNvbnMgd2l0aCBVU0IgQlQgNC4wIGludGVyZmFjZXMgYXMgd2Vs
bCBhcyBzZXJpYWwgYmx1ZXRvb3RoIGJvYXJkcy4NCj4+DQo+PiBJIGFtIGN1cnJlbnRseSBleHBl
cmltZW50aW5nIHdpdGggYSBiZWFjb24gcnVubmluZyBvbiBhIFJhc3BiZXJyeSBQaS1CIGFuZCB1
c2luZyBhbiBleHRlcm5hbCBVU0IgQmx1ZXRvb3RoIDQuMCBjbGFzcyAxIGRvbmdsZS4NCj4+DQo+
PiBNeSBmcnVzdHJhdGlvbiBpcyB0aGF0IEkgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGZpbmQgYW55
IHVzZWZ1bA0KPj4gaW5mb3JtYXRpb24gaW4gaG93IHRvIGNoYW5nZSB0aGUgVHJhbnNtaXR0ZXIg
cG93ZXIgbGV2ZWwgd2hlbiBpbiBMRSBtb2RlLg0KPj4NCj4+IFRoZSBkb25nbGUgYXBwZWFycyB0
byBiZSB3b3JraW5nIGF0IGRlZmF1bHQgbGV2ZWwgYmVsb3cgemVybyBkYm0uDQo+Pg0KPj4gVGhl
IHdob2xlIHBvaW50IG9mIGJ1aWxkaW5nIHlvdXIgb3duIGJlYWNvbiB0aGlzIHdheSBpcyB0byBi
ZSBhYmxlIHRvDQo+PiBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxldmVsIGlz
IGFuIGltcG9ydGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNzaWJsZSB5
ZXQgSSBmaW5kIHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxvbmUgZG8g
dGhleSBleHBsYWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+DQo+Pg0K
Pj4gRXZlcnkgdGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29uIHNldHVw
cyBmcm9tIGNvbW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5nIGJlYWNv
biBUWCBwb3dlci4NCj4+DQo+PiBBbGwgdGhlIHBhZ2VzIEkgaGF2ZSBmb3VuZCBzZWVtIHRvIGNv
cHkgZWFjaCBvdGhlciBhbmQgcmVwZWF0IHRoZQ0KPj4gc2FtZSBpbmZvcm1hdGlvbiBvdmVyICYg
b3ZlciBCdXQgbmV2ZXIgZ2V0IGFyb3VuZCB0byBldmVuIG1lbnRpb25pbmcgb3IgZGlzY3Vzc2lu
ZyBzZXR0aW5nIHRoZSBwb3dlciBvdXRwdXQgbGV2ZWwgb2YgdGhlIGJsdXRvb3RoIGRvbmdsZS4N
Cj4+DQo+PiBzdWRvIGhjaXRvb2wgLWkgaGNpMCBjbWQgMHgwOCAweDAwMDggMUUgMDIgMDEgMUEg
MUEgRkYgNEMgMDAgMDIgMTUgWw0KPj4gOTIgNzcgODMgMEEgQjIgRUIgNDkgMEYgQTEgREQgN0Yg
RTMgOEMgNDkgMkUgREUgXSBbIDAwIDAwIF0gWyAwMCAwMCBdDQo+PiBDNSAwMA0KPj4NCj4+IFRo
ZSBieXRlIGp1c3QgbGVmdCBvZiB0aGUgbGFzdCBvbmUgaXMgdGhlICJyZXBvcnRlZCIgVFggbGV2
ZWwgdGhhdCB5b3UgYXJlIHRyYW5zbWl0dGluZyBhdC4NCj4+IFdoaWNoIG1lYW5zIHlvdSdyZSBz
dXBwb3NlZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBhcmUgYWN0dWFs
bHkgdHJhbnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRvIHRoZSB3b3Js
ZCB3aGF0IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkgY2FuIHJhbmdl
IChndWVzcyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+IFRoaXMgdmFsdWUgZG9l
cyBub3QgaW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0KPj4NCj4+
IFBsZWFzZSBoZWxwISENCj4+DQo+PiBDb3VsZCB1c2UgYW55IHBvaW50ZXJzLg0KPj4NCj4+IEkn
bSBhIGhhcmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGluIHNvZnR3
YXJlL3Byb2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8gZ2V0IGNv
bnRyb2wgb2YgdGhpcy4NCj4+DQo+PiBCZWVuIGF0IHRoaXMgZm9yIG92ZXIgYSB3ZWVrIGFuZCBo
YXZlIHNvbWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9sIG9mIHRyYW5zbWl0IHBvd2Vy
IGxldmVsLg0KPj4NCj4+IEFtIHVzaW5nIFRyZW5kbmV0IFVTQiBkb25nbGVzIHdoaWNoIGFwcGVh
ciB0byB1c2UgYSBDYW1icmlkZ2UgQ2hpcC7CoCBCdXQgSSdtIG5vdCBleGFjdGx5IHN1cmUgd2hp
Y2ggY2hpcC4NCj4+DQo+Pg0KPj4gOn4jIGxzdXNiDQo+PiBCdXMgMDAxIERldmljZSAwMDc6IElE
IDBhMTI6MDAwMSBDYW1icmlkZ2UgU2lsaWNvbiBSYWRpbywgTHRkDQo+PiBCbHVldG9vdGggRG9u
Z2xlIChIQ0kgbW9kZSkNCj4+DQo+Pg0KPj4gcm9vdEByYXNwYmVycnlwaTp+IyBoY2ljb25maWcg
aGNpMA0KPj4gaGNpMDrCoCDCoFR5cGU6IEJSL0VEUsKgIEJ1czogVVNCDQo+PsKgIMKgIMKgIMKg
IMKgQkQgQWRkcmVzczogMDA6MTU6ODM6RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDCoCBTQ08g
TVRVOiA2NDo4DQo+PsKgIMKgIMKgIMKgIMKgVVAgUlVOTklORw0KPj7CoCDCoCDCoCDCoCDCoFJY
IGJ5dGVzOjc4MCBhY2w6MCBzY286MCBldmVudHM6NTAgZXJyb3JzOjANCj4+wqAgwqAgwqAgwqAg
wqBUWCBieXRlczoxMTEwIGFjbDowIHNjbzowIGNvbW1hbmRzOjUwIGVycm9yczowDQo+Pg0KPj4N
Cj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+IC0tDQo+
PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3Jp
YmUNCj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvDQo+PiBt
YWpvcmRvbW9Admdlci5rZXJuZWwub3JnIE1vcmUgbWFqb3Jkb21vIGluZm8gYXQNCj4+IGh0dHA6
Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KPiAtLQ0KPiBUbyB1bnN1YnNj
cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4gbGludXgt
Ymx1ZXRvb3RoIiBpbiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2Vy
bmVsLm9yZw0KPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0wqAgaHR0cDovL3ZnZXIua2VybmVsLm9y
Zy9tYWpvcmRvbW8taW5mby5odG1sDQoNCg0KDQotLQ0KLS0tLSBIaWV1IExlIC0tLQ0KDQoNCg0K
DQotLSANCg0KSm9zZXBoIFNoeWgtSW4gSHdhbmcNCkVtYWlsOiBqb3NlcGhzaWhAZ29vZ2xlLmNv
bQ0KDQo=

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-16 21:56             ` Steve Gladden
@ 2016-10-16 22:48               ` Jason Anderssen
  2016-10-17  4:15                 ` Steve Gladden
       [not found]                 ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local>
  0 siblings, 2 replies; 13+ messages in thread
From: Jason Anderssen @ 2016-10-16 22:48 UTC (permalink / raw)
  To: Steve Gladden; +Cc: Joseph Hwang, Hieu Le, Barry Byford, linux-bluetooth

Hi Steve,

I have been reading and watching your emails, and have not replied as I probably don’t have any answers, but my guess is as follows :

Most people, myself included, are using Linux and hardware like Raspberry pi to pick up beacons, not actually be a beacon, I know you can create a beacon with linux, but it is not really the main focus for a lot of people.
The hardware I use for BLE advertising completely lets me and others to program the power level, which then is received from the Raspberry pi or like hardware, so I don’t have your issue or frustration.

So my summary is: you maybe a minority in your work :-)  Nothing wrong with that, but it does mean extra development and research on your behalf I would say.

Anyway, I hear your frustration, and I add no value to your question, hopefully some insight as how I see things fit in life and might explain your current situation.

Remember this is simply my opinion, and is probably wrong too :)

Cheers
Jason

> On 17 Oct 2016, at 7:56 AM, Steve Gladden <steve@michiganbroadband.com> wrote:
> 
> Ok, this is getting really frustrating.
> Why would something so simple like this be so difficult?  
> 
> Am I really the only sheep out here that has any interest whatsoever in the past 5 years on how to actually set LE transmit power on a USB device?   
> Do I just not get it?     
> Really I don’t get it.   
> 
> A really simple task and nobody out here either knows or has any interest in doing it.  
> 
> My question is not even technical at all.   If I actually asked something technical out here would would happen?  
> 
> No offense to anyone out here just to myself really but what gives?   
> 
> How could people working with this stuff NOT be interested in simply controlling the TX power output versus just living with some UNKNOWN DEFAULT that just sorta works if you’re happy with only 20 feet of range although the chip can put out +10dbm and go further 
> Or set it way back to -40dbm and get jstu a few feet and years of battery life. 
> 
> How the actual F- are people NOT interested in this and talking about it and working with it?   ☺   
> 
> All I have found on bccmd is a PDF document from 2005 that predates ANY kind of BTLE stuff.   
> 
> And that’s just for the CSR chipsets the ONE that I could find documentation on.   
> 
> What about all the others?   
> 
> What gives here man?   
> 
> Am I completely in the wrong place to be asking about this?   
> 
> I don’t mean any disrespect, really I don’t!  
> 
> But where in the world do I go to get this basic information?   
> 
> And why does nobody care of have any hands-on experience here and/or interest?   
> 
> Thanks!!  
> 
> Steve  
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Tried that of course already days ago.  
> As well as anything else a simple google search turns up.  
> 
> To set Max tx power:
> sudo bccmd psset -s 0x0000 0x0017 10
> To set default tx power:
> sudo bccmd psset -s 0x0000 0x002d 10   
> 
> It eats both of those commands and does not complain no errors but also no change in TX power output. 
> I’m watching the beacons on a receiver and a spectrum analyser.  
> 
> If I issue: ~# hciconfig hci0 inqtpl
> hci0:   Type: BR/EDR  Bus: USB
>         BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
>         Inquiry transmit power level: 4
> 
> Always reads back that “4”   
> 
> Issuing either:  
> 
> # bccmd warmreset 
> -or
> # bccmd coldreset
> 
> results in transmitter off and have to do:  
> 
> hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 01 73 45 27 71 50 0A 28 0A 28 01 FF
> -and  
> ~# hciconfig hci0 leadv3
> 
> To get it transmitting again (at the same non changed level.  
> 
> And 
> 
> ~# hciconfig hci0 inqtpl
> 
> hci0:   Type: BR/EDR  Bus: USB
>         BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
>         Inquiry transmit power level: 4
> 
> Always shows “4”   
> 
> On top of everything I have stated and tried here.. 
> I don’t think that setting (if it even worked) has any relation to LE GFSK advertising mode.   
> 
> Pretty sure it does not.   
> That (if it worked) sets power on Basic Rate and EDR as seen in the result “hci0:   Type: BR/EDR  Bus: USB” when issuing the hciconfig hci0 inqtpl command.
> 
> 
> 
>   
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Steve Gladden
>  
> Michigan Broadband Systems
> Connecting Your Business!
> 
> 
> 
> +1 734.527.7150 Direct
> +1 248.327.4389 Fax
> steve@michiganbroadband.com
> www.michiganbroadband.com
> 
> From: Joseph Hwang [mailto:josephsih@google.com] 
> Sent: Wednesday, October 12, 2016 11:55 AM
> To: Steve Gladden
> Cc: Hieu Le; Barry Byford; linux-bluetooth@vger.kernel.org
> Subject: Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
> 
> Hi Steve:
> 
>   Maybe you can try CSR's command line utility, bccmd. The system control command Max_Tx_Power and Default_Tx_Power allow you to set tx power.
> 
> Good luck!
> 
> Joseph
> 
> 
> On Wed, Oct 12, 2016 at 11:33 PM, Steve Gladden <steve@michiganbroadband.com> wrote:
> Thanks,
> I was hoping there was an easier way and somehow at the command line but I'll do what I need to do and figure it out somehow.
> I usually end up on 10 other rabbit trails when it comes to having to recompile anything because it usually just fails for me and I'm
> not yet well versed in troubleshooting when things won't compile successfully aside from what I can easily google.
> 
> I also think it's a little more complicated than just setting the power.
> I have gathered at least wit hthe CSR chipset that there are at least 3 separate power settings that can be adjusted and not any overall power setting.
> So the various modulation modes (including GFSK -LE advertising-) need to be addressed and set individually.
> There's not a master transmit level that sets them all.
> 
> 
> Steve Gladden
>  
> Michigan Broadband Systems
> Connecting Your Business!
> 
> 
> 
> +1 734.527.7150 Direct
> +1 248.327.4389 Fax
> steve@michiganbroadband.com
> www.michiganbroadband.com
> 
> -----Original Message-----
> From: Hieu Le [mailto:hieu.le@veriksystems.com]
> Sent: Wednesday, October 12, 2016 1:00 AM
> To: Steve Gladden
> Cc: Barry Byford; linux-bluetooth@vger.kernel.org
> Subject: Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
> 
> Hi,
> 
> In my opinion, the only way I can find to increase the tx_power is to recompile the linux kernel. There may be a better way
> 
> It seems that bluetooth stack within kernel separated into two classes:
> 1. Inquiry Tx_power.
> 2. Advertise Tx_power.
> 
> And the default value is 0.
> 
> You can take a look at:
> *hci_alloc_dev(void)  function within net/bluetooth/hci_core.c file
> hdev->inq_tx_power = HCI_TX_POWER_INVALID; adv_tx_power =
> hdev->HCI_TX_POWER_INVALID;
> 
> Hope it will be helpful to you.
> 
> Regards,
> Hieu.
> 
> On Wed, Oct 12, 2016 at 12:52 AM, Steve Gladden <steve@michiganbroadband.com> wrote:
>> Thanks!!
>> Yes it's nice to hear from somebody.
>> 
>> I've been scouring the web so far to no avail on what I think should be a simple and accessible setting.
>> It's obvious from the specs that most chips have a programmable (settable) transmitter power.
>> And with beacons it is very important and expected that one should be able to adjust the transmitter level.
>> All of the serial boards do it with simple AT commands.
>> 
>> I just don't get why there's no documentation on how to do it with a USB device!!
>> 
>> They sell class 1 bluetooth usb dongles for applications that require more range (100m) is quoted on most class 1 products.
>> 
>> I'd expect there should be a straight forward easy to set power in LE mode to get more range or save power and limit range when wanted.
>> 
>> But I'm really not finding this information out there!
>> 
>> I don;t understand what I am doing wrong or why this is so difficult
>> to find.  :)
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote:
>>> Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth.
>>> This is all I have seen here for the past few days?
>>> Where can I ask an actual question about bluetooth?
>> 
>> There are some real humans here too!  :-)
>> 
>> If you look back on the archive of this list you will see a mixture of
>> questions and patch requests.
>> marc.info/?l=linux-bluetooth
>> 
>> I've kept quiet as I'm not sure I can answer questions. To offer some
>> shared experience, I can say that I've been experimenting with
>> (Eddystone) beacons on Linux single board computers accessing BlueZ
>> through the DBus API using Python. I also have not found a way to
>> change the power level of advertisements either. For what I'm doing,
>> just making sure the TX power in the Eddystone advert matches what the
>> dongle is actually broadcasting has been good enough.
>> 
>> Sorry I couldn't be of more help.
>> 
>> Regards,
>> Barry
>> 
>>> 
>>> 
>>> 
>>> 
>>> Steve Gladden
>>> 
>>> Michigan Broadband Systems
>>> Connecting Your Business!
>>> 
>>> 
>>> 
>>> +1 734.527.7150 Direct
>>> +1 248.327.4389 Fax
>>> steve@michiganbroadband.com
>>> www.michiganbroadband.com
>>> 
>>> ________________________________________
>>> From: Steve Gladden
>>> Sent: Sunday, October 09, 2016 12:11 PM
>>> To: linux-bluetooth@vger.kernel.org
>>> Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
>>> 
>>> Hi,
>>> My name is Steve and I am located in Ann Arbor Michigan USA.
>>> 
>>> I am new  bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out.
>>> 
>>> I have read article after article and page after page about how
>>> people have setup up beacons with USB BT 4.0 interfaces as well as serial bluetooth boards.
>>> 
>>> I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle.
>>> 
>>> My frustration is that I have not been able to find any useful
>>> information in how to change the Transmitter power level when in LE mode.
>>> 
>>> The dongle appears to be working at default level below zero dbm.
>>> 
>>> The whole point of building your own beacon this way is to be able to
>>> customize it and setting the power level is an important key item that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power.
>>> 
>>> 
>>> Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power.
>>> 
>>> All the pages I have found seem to copy each other and repeat the
>>> same information over & over But never get around to even mentioning or discussing setting the power output level of the blutooth dongle.
>>> 
>>> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [
>>> 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ]
>>> C5 00
>>> 
>>> The byte just left of the last one is the "reported" TX level that you are transmitting at.
>>> Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX).
>>> This value does not influence or reflect actual transmit power.
>>> 
>>> Please help!!
>>> 
>>> Could use any pointers.
>>> 
>>> I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this.
>>> 
>>> Been at this for over a week and have some working beacons but no control of transmit power level.
>>> 
>>> Am using Trendnet USB dongles which appear to use a Cambridge Chip.  But I'm not exactly sure which chip.
>>> 
>>> 
>>> :~# lsusb
>>> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd
>>> Bluetooth Dongle (HCI mode)
>>> 
>>> 
>>> root@raspberrypi:~# hciconfig hci0
>>> hci0:   Type: BR/EDR  Bus: USB
>>>          BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
>>>          UP RUNNING
>>>          RX bytes:780 acl:0 sco:0 events:50 errors:0
>>>          TX bytes:1110 acl:0 sco:0 commands:50 errors:0
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe
>>> linux-bluetooth" in the body of a message to
>>> majordomo@vger.kernel.org More majordomo info at
>>> http://vger.kernel.org/majordomo-info.html
>> --
>> To unsubscribe from this list: send the line "unsubscribe
>> linux-bluetooth" in the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 
> --
> ---- Hieu Le ---
> 
> 
> 
> 
> -- 
> 
> Joseph Shyh-In Hwang
> Email: josephsih@google.com
> 
> N���r�y���b�X�ǧv�^�)޺{.n�+�{�n[�-�)���w*\x1fjg�\x1e��ݢj/���z�ޖ��2�ޙ���&�)ߡ�a��\x7f�\x1e�G��h�\x0f�j:+v�w�٥


^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-16 22:48               ` Jason Anderssen
@ 2016-10-17  4:15                 ` Steve Gladden
  2016-10-19  7:22                   ` Andrei Emeltchenko
       [not found]                 ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local>
  1 sibling, 1 reply; 13+ messages in thread
From: Steve Gladden @ 2016-10-17  4:15 UTC (permalink / raw)
  To: Jason Anderssen; +Cc: Joseph Hwang, Hieu Le, Barry Byford, linux-bluetooth

SGkgSmFzb24gYW5kIHRoYW5rcyENCg0KTm8sIGZ1bGx5IGFncmVlIHdpdGggd2hhdCB5b3Ugc2F5
Lg0KDQpJJ20gd2lsbGluZyB0byBkbyB0aGUgZXh0cmEgcmVzZWFyY2guDQpqdXN0IGEgbGl0dGxl
IGJ1bW1lZCB0aGF0IHRoZSBpbmZvcm1hdGlvbiBJIHNlZWsgc2VlbWluZ2x5IGp1c3QgaXMgbm90
IHRoZXJlIGFueXdoZXJlLg0KDQpBbmQgSSBhbHNvIHdvdWxkIHRoaW5nIHRoYXQgbWFueSBvdGhl
ciBhcHBsaWNhdGlvbnMgKGFuZCBwZW9wbGUpIHdvdWxkIHdhbnQgdG8gYmUgYWJsZSB0byBhZGp1
c3QgdGhlIHBvd2VyIGZvciBvdGhlciB1c2VzIGFzIHdlbGwuDQpFc3BlY2lhbGx5IHRvIGdldCBm
dWxsIHJhbmdlIGF2YWlsYWJsZSB3aXRoIGZ1bGwgVFggb3V0cHV0IHBvd2VyIHZlcnN1cyB0aGUg
InVua25vd24gZGVmYXVsdCIuICBPciBmaXJtd2FyZSBzZXQgdW5rbm93biBkZWZhdWx0IGV0Yy4N
Cg0KSSB0aG91Z2h0IHRoZXJlJ2QgYmUgbW9yZSBwZW9wbGUgb3V0IGhlcmUgdGhhdCB3YW50ZWQg
YW5kIGtuZXcgaG93IHRvIHNldC9jaGFuZ2UgdHJhbnNtaXQgcG93ZXIgbGV2ZWwuDQoNClRoYW5r
cyBmb3IgcmVwbHlpbmcgYW5kIGl0IHdhcyBlbmpveWFibGUgdG8gaGVhciBmcm9tIHlvdSENCg0K
VGFrZSBjYXJlIQ0KDQoNClN0ZXZlIEdsYWRkZW4NCg0KTWljaGlnYW4gQnJvYWRiYW5kIFN5c3Rl
bXMNCkNvbm5lY3RpbmcgWW91ciBCdXNpbmVzcyENCg0KDQoNCisxIDczNC41MjcuNzE1MCBEaXJl
Y3QNCisxIDI0OC4zMjcuNDM4OSBGYXgNCnN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0Kd3d3
Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJv
bTogSmFzb24gQW5kZXJzc2VuIFttYWlsdG86akBrZXlpbml0aWF0aXZlLmNvbV0NClNlbnQ6IFN1
bmRheSwgT2N0b2JlciAxNiwgMjAxNiA2OjQ5IFBNDQpUbzogU3RldmUgR2xhZGRlbg0KQ2M6IEpv
c2VwaCBId2FuZzsgSGlldSBMZTsgQmFycnkgQnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdlci5r
ZXJuZWwub3JnDQpTdWJqZWN0OiBSZTogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxl
dmVsIGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQoNCkhpIFN0ZXZlLA0K
DQpJIGhhdmUgYmVlbiByZWFkaW5nIGFuZCB3YXRjaGluZyB5b3VyIGVtYWlscywgYW5kIGhhdmUg
bm90IHJlcGxpZWQgYXMgSSBwcm9iYWJseSBkb27igJl0IGhhdmUgYW55IGFuc3dlcnMsIGJ1dCBt
eSBndWVzcyBpcyBhcyBmb2xsb3dzIDoNCg0KTW9zdCBwZW9wbGUsIG15c2VsZiBpbmNsdWRlZCwg
YXJlIHVzaW5nIExpbnV4IGFuZCBoYXJkd2FyZSBsaWtlIFJhc3BiZXJyeSBwaSB0byBwaWNrIHVw
IGJlYWNvbnMsIG5vdCBhY3R1YWxseSBiZSBhIGJlYWNvbiwgSSBrbm93IHlvdSBjYW4gY3JlYXRl
IGEgYmVhY29uIHdpdGggbGludXgsIGJ1dCBpdCBpcyBub3QgcmVhbGx5IHRoZSBtYWluIGZvY3Vz
IGZvciBhIGxvdCBvZiBwZW9wbGUuDQpUaGUgaGFyZHdhcmUgSSB1c2UgZm9yIEJMRSBhZHZlcnRp
c2luZyBjb21wbGV0ZWx5IGxldHMgbWUgYW5kIG90aGVycyB0byBwcm9ncmFtIHRoZSBwb3dlciBs
ZXZlbCwgd2hpY2ggdGhlbiBpcyByZWNlaXZlZCBmcm9tIHRoZSBSYXNwYmVycnkgcGkgb3IgbGlr
ZSBoYXJkd2FyZSwgc28gSSBkb27igJl0IGhhdmUgeW91ciBpc3N1ZSBvciBmcnVzdHJhdGlvbi4N
Cg0KU28gbXkgc3VtbWFyeSBpczogeW91IG1heWJlIGEgbWlub3JpdHkgaW4geW91ciB3b3JrIDot
KSAgTm90aGluZyB3cm9uZyB3aXRoIHRoYXQsIGJ1dCBpdCBkb2VzIG1lYW4gZXh0cmEgZGV2ZWxv
cG1lbnQgYW5kIHJlc2VhcmNoIG9uIHlvdXIgYmVoYWxmIEkgd291bGQgc2F5Lg0KDQpBbnl3YXks
IEkgaGVhciB5b3VyIGZydXN0cmF0aW9uLCBhbmQgSSBhZGQgbm8gdmFsdWUgdG8geW91ciBxdWVz
dGlvbiwgaG9wZWZ1bGx5IHNvbWUgaW5zaWdodCBhcyBob3cgSSBzZWUgdGhpbmdzIGZpdCBpbiBs
aWZlIGFuZCBtaWdodCBleHBsYWluIHlvdXIgY3VycmVudCBzaXR1YXRpb24uDQoNClJlbWVtYmVy
IHRoaXMgaXMgc2ltcGx5IG15IG9waW5pb24sIGFuZCBpcyBwcm9iYWJseSB3cm9uZyB0b28gOikN
Cg0KQ2hlZXJzDQpKYXNvbg0KDQo+IE9uIDE3IE9jdCAyMDE2LCBhdCA3OjU2IEFNLCBTdGV2ZSBH
bGFkZGVuIDxzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KPg0KPiBPaywgdGhp
cyBpcyBnZXR0aW5nIHJlYWxseSBmcnVzdHJhdGluZy4NCj4gV2h5IHdvdWxkIHNvbWV0aGluZyBz
byBzaW1wbGUgbGlrZSB0aGlzIGJlIHNvIGRpZmZpY3VsdD8NCj4NCj4gQW0gSSByZWFsbHkgdGhl
IG9ubHkgc2hlZXAgb3V0IGhlcmUgdGhhdCBoYXMgYW55IGludGVyZXN0IHdoYXRzb2V2ZXIgaW4g
dGhlIHBhc3QgNSB5ZWFycyBvbiBob3cgdG8gYWN0dWFsbHkgc2V0IExFIHRyYW5zbWl0IHBvd2Vy
IG9uIGEgVVNCIGRldmljZT8NCj4gRG8gSSBqdXN0IG5vdCBnZXQgaXQ/DQo+IFJlYWxseSBJIGRv
buKAmXQgZ2V0IGl0Lg0KPg0KPiBBIHJlYWxseSBzaW1wbGUgdGFzayBhbmQgbm9ib2R5IG91dCBo
ZXJlIGVpdGhlciBrbm93cyBvciBoYXMgYW55IGludGVyZXN0IGluIGRvaW5nIGl0Lg0KPg0KPiBN
eSBxdWVzdGlvbiBpcyBub3QgZXZlbiB0ZWNobmljYWwgYXQgYWxsLiAgIElmIEkgYWN0dWFsbHkg
YXNrZWQgc29tZXRoaW5nIHRlY2huaWNhbCBvdXQgaGVyZSB3b3VsZCB3b3VsZCBoYXBwZW4/DQo+
DQo+IE5vIG9mZmVuc2UgdG8gYW55b25lIG91dCBoZXJlIGp1c3QgdG8gbXlzZWxmIHJlYWxseSBi
dXQgd2hhdCBnaXZlcz8NCj4NCj4gSG93IGNvdWxkIHBlb3BsZSB3b3JraW5nIHdpdGggdGhpcyBz
dHVmZiBOT1QgYmUgaW50ZXJlc3RlZCBpbiBzaW1wbHkNCj4gY29udHJvbGxpbmcgdGhlIFRYIHBv
d2VyIG91dHB1dCB2ZXJzdXMganVzdCBsaXZpbmcgd2l0aCBzb21lIFVOS05PV04gREVGQVVMVCB0
aGF0IGp1c3Qgc29ydGEgd29ya3MgaWYgeW914oCZcmUgaGFwcHkgd2l0aCBvbmx5IDIwIGZlZXQg
b2YgcmFuZ2UgYWx0aG91Z2ggdGhlIGNoaXAgY2FuIHB1dCBvdXQgKzEwZGJtIGFuZCBnbyBmdXJ0
aGVyIE9yIHNldCBpdCB3YXkgYmFjayB0byAtNDBkYm0gYW5kIGdldCBqc3R1IGEgZmV3IGZlZXQg
YW5kIHllYXJzIG9mIGJhdHRlcnkgbGlmZS4NCj4NCj4gSG93IHRoZSBhY3R1YWwgRi0gYXJlIHBl
b3BsZSBOT1QgaW50ZXJlc3RlZCBpbiB0aGlzIGFuZCB0YWxraW5nIGFib3V0IGl0IGFuZCB3b3Jr
aW5nIHdpdGggaXQ/ICAg4pi6DQo+DQo+IEFsbCBJIGhhdmUgZm91bmQgb24gYmNjbWQgaXMgYSBQ
REYgZG9jdW1lbnQgZnJvbSAyMDA1IHRoYXQgcHJlZGF0ZXMgQU5ZIGtpbmQgb2YgQlRMRSBzdHVm
Zi4NCj4NCj4gQW5kIHRoYXTigJlzIGp1c3QgZm9yIHRoZSBDU1IgY2hpcHNldHMgdGhlIE9ORSB0
aGF0IEkgY291bGQgZmluZCBkb2N1bWVudGF0aW9uIG9uLg0KPg0KPiBXaGF0IGFib3V0IGFsbCB0
aGUgb3RoZXJzPw0KPg0KPiBXaGF0IGdpdmVzIGhlcmUgbWFuPw0KPg0KPiBBbSBJIGNvbXBsZXRl
bHkgaW4gdGhlIHdyb25nIHBsYWNlIHRvIGJlIGFza2luZyBhYm91dCB0aGlzPw0KPg0KPiBJIGRv
buKAmXQgbWVhbiBhbnkgZGlzcmVzcGVjdCwgcmVhbGx5IEkgZG9u4oCZdCENCj4NCj4gQnV0IHdo
ZXJlIGluIHRoZSB3b3JsZCBkbyBJIGdvIHRvIGdldCB0aGlzIGJhc2ljIGluZm9ybWF0aW9uPw0K
Pg0KPiBBbmQgd2h5IGRvZXMgbm9ib2R5IGNhcmUgb2YgaGF2ZSBhbnkgaGFuZHMtb24gZXhwZXJp
ZW5jZSBoZXJlIGFuZC9vciBpbnRlcmVzdD8NCj4NCj4gVGhhbmtzISENCj4NCj4gU3RldmUNCj4N
Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gVHJpZWQgdGhhdCBvZiBjb3Vy
c2UgYWxyZWFkeSBkYXlzIGFnby4NCj4gQXMgd2VsbCBhcyBhbnl0aGluZyBlbHNlIGEgc2ltcGxl
IGdvb2dsZSBzZWFyY2ggdHVybnMgdXAuDQo+DQo+IFRvIHNldCBNYXggdHggcG93ZXI6DQo+IHN1
ZG8gYmNjbWQgcHNzZXQgLXMgMHgwMDAwIDB4MDAxNyAxMA0KPiBUbyBzZXQgZGVmYXVsdCB0eCBw
b3dlcjoNCj4gc3VkbyBiY2NtZCBwc3NldCAtcyAweDAwMDAgMHgwMDJkIDEwDQo+DQo+IEl0IGVh
dHMgYm90aCBvZiB0aG9zZSBjb21tYW5kcyBhbmQgZG9lcyBub3QgY29tcGxhaW4gbm8gZXJyb3Jz
IGJ1dCBhbHNvIG5vIGNoYW5nZSBpbiBUWCBwb3dlciBvdXRwdXQuDQo+IEnigJltIHdhdGNoaW5n
IHRoZSBiZWFjb25zIG9uIGEgcmVjZWl2ZXIgYW5kIGEgc3BlY3RydW0gYW5hbHlzZXIuDQo+DQo+
IElmIEkgaXNzdWU6IH4jIGhjaWNvbmZpZyBoY2kwIGlucXRwbA0KPiBoY2kwOiAgIFR5cGU6IEJS
L0VEUiAgQnVzOiBVU0INCj4gICAgICAgICBCRCBBZGRyZXNzOiAwMDoxNTo4MzpFQTowQTpCOSAg
QUNMIE1UVTogMzEwOjEwICBTQ08gTVRVOiA2NDo4DQo+ICAgICAgICAgSW5xdWlyeSB0cmFuc21p
dCBwb3dlciBsZXZlbDogNA0KPg0KPiBBbHdheXMgcmVhZHMgYmFjayB0aGF0IOKAnDTigJ0NCj4N
Cj4gSXNzdWluZyBlaXRoZXI6DQo+DQo+ICMgYmNjbWQgd2FybXJlc2V0DQo+IC1vcg0KPiAjIGJj
Y21kIGNvbGRyZXNldA0KPg0KPiByZXN1bHRzIGluIHRyYW5zbWl0dGVyIG9mZiBhbmQgaGF2ZSB0
byBkbzoNCj4NCj4gaGNpdG9vbCAtaSBoY2kwIGNtZCAweDA4IDB4MDAwOCAxRSAwMiAwMSAxQSAx
QSBGRiA0QyAwMCAwMiAxNSBFMiAwQSAzOQ0KPiBGNCA3MyBGNSA0QiBDNCBBMSAyRiAwMSA3MyA0
NSAyNyA3MSA1MCAwQSAyOCAwQSAyOCAwMSBGRiAtYW5kIH4jDQo+IGhjaWNvbmZpZyBoY2kwIGxl
YWR2Mw0KPg0KPiBUbyBnZXQgaXQgdHJhbnNtaXR0aW5nIGFnYWluIChhdCB0aGUgc2FtZSBub24g
Y2hhbmdlZCBsZXZlbC4NCj4NCj4gQW5kDQo+DQo+IH4jIGhjaWNvbmZpZyBoY2kwIGlucXRwbA0K
Pg0KPiBoY2kwOiAgIFR5cGU6IEJSL0VEUiAgQnVzOiBVU0INCj4gICAgICAgICBCRCBBZGRyZXNz
OiAwMDoxNTo4MzpFQTowQTpCOSAgQUNMIE1UVTogMzEwOjEwICBTQ08gTVRVOiA2NDo4DQo+ICAg
ICAgICAgSW5xdWlyeSB0cmFuc21pdCBwb3dlciBsZXZlbDogNA0KPg0KPiBBbHdheXMgc2hvd3Mg
4oCcNOKAnQ0KPg0KPiBPbiB0b3Agb2YgZXZlcnl0aGluZyBJIGhhdmUgc3RhdGVkIGFuZCB0cmll
ZCBoZXJlLi4NCj4gSSBkb27igJl0IHRoaW5rIHRoYXQgc2V0dGluZyAoaWYgaXQgZXZlbiB3b3Jr
ZWQpIGhhcyBhbnkgcmVsYXRpb24gdG8gTEUgR0ZTSyBhZHZlcnRpc2luZyBtb2RlLg0KPg0KPiBQ
cmV0dHkgc3VyZSBpdCBkb2VzIG5vdC4NCj4gVGhhdCAoaWYgaXQgd29ya2VkKSBzZXRzIHBvd2Vy
IG9uIEJhc2ljIFJhdGUgYW5kIEVEUiBhcyBzZWVuIGluIHRoZSByZXN1bHQg4oCcaGNpMDogICBU
eXBlOiBCUi9FRFIgIEJ1czogVVNC4oCdIHdoZW4gaXNzdWluZyB0aGUgaGNpY29uZmlnIGhjaTAg
aW5xdHBsIGNvbW1hbmQuDQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+
DQo+IFN0ZXZlIEdsYWRkZW4NCj4NCj4gTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCj4gQ29u
bmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KPg0KPg0KPg0KPiArMSA3MzQuNTI3LjcxNTAgRGlyZWN0
DQo+ICsxIDI0OC4zMjcuNDM4OSBGYXgNCj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQo+
IHd3dy5taWNoaWdhbmJyb2FkYmFuZC5jb20NCj4NCj4gRnJvbTogSm9zZXBoIEh3YW5nIFttYWls
dG86am9zZXBoc2loQGdvb2dsZS5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxMiwg
MjAxNiAxMTo1NSBBTQ0KPiBUbzogU3RldmUgR2xhZGRlbg0KPiBDYzogSGlldSBMZTsgQmFycnkg
Qnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBI
b3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1ZXRvb3RoIExFIG1vZGUg
Zm9yIGFuIExFIGJlYWNvbj8NCj4NCj4gSGkgU3RldmU6DQo+DQo+ICAgTWF5YmUgeW91IGNhbiB0
cnkgQ1NSJ3MgY29tbWFuZCBsaW5lIHV0aWxpdHksIGJjY21kLiBUaGUgc3lzdGVtIGNvbnRyb2wg
Y29tbWFuZCBNYXhfVHhfUG93ZXIgYW5kIERlZmF1bHRfVHhfUG93ZXIgYWxsb3cgeW91IHRvIHNl
dCB0eCBwb3dlci4NCj4NCj4gR29vZCBsdWNrIQ0KPg0KPiBKb3NlcGgNCj4NCj4NCj4gT24gV2Vk
LCBPY3QgMTIsIDIwMTYgYXQgMTE6MzMgUE0sIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2Fu
YnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+IFRoYW5rcywNCj4gSSB3YXMgaG9waW5nIHRoZXJlIHdh
cyBhbiBlYXNpZXIgd2F5IGFuZCBzb21laG93IGF0IHRoZSBjb21tYW5kIGxpbmUgYnV0IEknbGwg
ZG8gd2hhdCBJIG5lZWQgdG8gZG8gYW5kIGZpZ3VyZSBpdCBvdXQgc29tZWhvdy4NCj4gSSB1c3Vh
bGx5IGVuZCB1cCBvbiAxMCBvdGhlciByYWJiaXQgdHJhaWxzIHdoZW4gaXQgY29tZXMgdG8gaGF2
aW5nIHRvDQo+IHJlY29tcGlsZSBhbnl0aGluZyBiZWNhdXNlIGl0IHVzdWFsbHkganVzdCBmYWls
cyBmb3IgbWUgYW5kIEknbSBub3QgeWV0IHdlbGwgdmVyc2VkIGluIHRyb3VibGVzaG9vdGluZyB3
aGVuIHRoaW5ncyB3b24ndCBjb21waWxlIHN1Y2Nlc3NmdWxseSBhc2lkZSBmcm9tIHdoYXQgSSBj
YW4gZWFzaWx5IGdvb2dsZS4NCj4NCj4gSSBhbHNvIHRoaW5rIGl0J3MgYSBsaXR0bGUgbW9yZSBj
b21wbGljYXRlZCB0aGFuIGp1c3Qgc2V0dGluZyB0aGUgcG93ZXIuDQo+IEkgaGF2ZSBnYXRoZXJl
ZCBhdCBsZWFzdCB3aXQgaHRoZSBDU1IgY2hpcHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAz
IHNlcGFyYXRlIHBvd2VyIHNldHRpbmdzIHRoYXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55
IG92ZXJhbGwgcG93ZXIgc2V0dGluZy4NCj4gU28gdGhlIHZhcmlvdXMgbW9kdWxhdGlvbiBtb2Rl
cyAoaW5jbHVkaW5nIEdGU0sgLUxFIGFkdmVydGlzaW5nLSkgbmVlZCB0byBiZSBhZGRyZXNzZWQg
YW5kIHNldCBpbmRpdmlkdWFsbHkuDQo+IFRoZXJlJ3Mgbm90IGEgbWFzdGVyIHRyYW5zbWl0IGxl
dmVsIHRoYXQgc2V0cyB0aGVtIGFsbC4NCj4NCj4NCj4gU3RldmUgR2xhZGRlbg0KPg0KPiBNaWNo
aWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPiBDb25uZWN0aW5nIFlvdXIgQnVzaW5lc3MhDQo+DQo+
DQo+DQo+ICsxIDczNC41MjcuNzE1MCBEaXJlY3QNCj4gKzEgMjQ4LjMyNy40Mzg5IEZheA0KPiBz
dGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20NCj4gd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0K
Pg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBIaWV1IExlIFttYWlsdG86
aGlldS5sZUB2ZXJpa3N5c3RlbXMuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIs
IDIwMTYgMTowMCBBTQ0KPiBUbzogU3RldmUgR2xhZGRlbg0KPiBDYzogQmFycnkgQnlmb3JkOyBs
aW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBIb3cgY2FuIHlv
dSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1ZXRvb3RoIExFIG1vZGUgZm9yIGFuIExF
IGJlYWNvbj8NCj4NCj4gSGksDQo+DQo+IEluIG15IG9waW5pb24sIHRoZSBvbmx5IHdheSBJIGNh
biBmaW5kIHRvIGluY3JlYXNlIHRoZSB0eF9wb3dlciBpcyB0bw0KPiByZWNvbXBpbGUgdGhlIGxp
bnV4IGtlcm5lbC4gVGhlcmUgbWF5IGJlIGEgYmV0dGVyIHdheQ0KPg0KPiBJdCBzZWVtcyB0aGF0
IGJsdWV0b290aCBzdGFjayB3aXRoaW4ga2VybmVsIHNlcGFyYXRlZCBpbnRvIHR3byBjbGFzc2Vz
Og0KPiAxLiBJbnF1aXJ5IFR4X3Bvd2VyLg0KPiAyLiBBZHZlcnRpc2UgVHhfcG93ZXIuDQo+DQo+
IEFuZCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyAwLg0KPg0KPiBZb3UgY2FuIHRha2UgYSBsb29rIGF0
Og0KPiAqaGNpX2FsbG9jX2Rldih2b2lkKSAgZnVuY3Rpb24gd2l0aGluIG5ldC9ibHVldG9vdGgv
aGNpX2NvcmUuYyBmaWxlDQo+IGhkZXYtPmlucV90eF9wb3dlciA9IEhDSV9UWF9QT1dFUl9JTlZB
TElEOyBhZHZfdHhfcG93ZXIgPQ0KPiBoZGV2LT5IQ0lfVFhfUE9XRVJfSU5WQUxJRDsNCj4NCj4g
SG9wZSBpdCB3aWxsIGJlIGhlbHBmdWwgdG8geW91Lg0KPg0KPiBSZWdhcmRzLA0KPiBIaWV1Lg0K
Pg0KPiBPbiBXZWQsIE9jdCAxMiwgMjAxNiBhdCAxMjo1MiBBTSwgU3RldmUgR2xhZGRlbiA8c3Rl
dmVAbWljaGlnYW5icm9hZGJhbmQuY29tPiB3cm90ZToNCj4+IFRoYW5rcyEhDQo+PiBZZXMgaXQn
cyBuaWNlIHRvIGhlYXIgZnJvbSBzb21lYm9keS4NCj4+DQo+PiBJJ3ZlIGJlZW4gc2NvdXJpbmcg
dGhlIHdlYiBzbyBmYXIgdG8gbm8gYXZhaWwgb24gd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhIHNp
bXBsZSBhbmQgYWNjZXNzaWJsZSBzZXR0aW5nLg0KPj4gSXQncyBvYnZpb3VzIGZyb20gdGhlIHNw
ZWNzIHRoYXQgbW9zdCBjaGlwcyBoYXZlIGEgcHJvZ3JhbW1hYmxlIChzZXR0YWJsZSkgdHJhbnNt
aXR0ZXIgcG93ZXIuDQo+PiBBbmQgd2l0aCBiZWFjb25zIGl0IGlzIHZlcnkgaW1wb3J0YW50IGFu
ZCBleHBlY3RlZCB0aGF0IG9uZSBzaG91bGQgYmUgYWJsZSB0byBhZGp1c3QgdGhlIHRyYW5zbWl0
dGVyIGxldmVsLg0KPj4gQWxsIG9mIHRoZSBzZXJpYWwgYm9hcmRzIGRvIGl0IHdpdGggc2ltcGxl
IEFUIGNvbW1hbmRzLg0KPj4NCj4+IEkganVzdCBkb24ndCBnZXQgd2h5IHRoZXJlJ3Mgbm8gZG9j
dW1lbnRhdGlvbiBvbiBob3cgdG8gZG8gaXQgd2l0aCBhIFVTQiBkZXZpY2UhIQ0KPj4NCj4+IFRo
ZXkgc2VsbCBjbGFzcyAxIGJsdWV0b290aCB1c2IgZG9uZ2xlcyBmb3IgYXBwbGljYXRpb25zIHRo
YXQgcmVxdWlyZSBtb3JlIHJhbmdlICgxMDBtKSBpcyBxdW90ZWQgb24gbW9zdCBjbGFzcyAxIHBy
b2R1Y3RzLg0KPj4NCj4+IEknZCBleHBlY3QgdGhlcmUgc2hvdWxkIGJlIGEgc3RyYWlnaHQgZm9y
d2FyZCBlYXN5IHRvIHNldCBwb3dlciBpbiBMRSBtb2RlIHRvIGdldCBtb3JlIHJhbmdlIG9yIHNh
dmUgcG93ZXIgYW5kIGxpbWl0IHJhbmdlIHdoZW4gd2FudGVkLg0KPj4NCj4+IEJ1dCBJJ20gcmVh
bGx5IG5vdCBmaW5kaW5nIHRoaXMgaW5mb3JtYXRpb24gb3V0IHRoZXJlIQ0KPj4NCj4+IEkgZG9u
O3QgdW5kZXJzdGFuZCB3aGF0IEkgYW0gZG9pbmcgd3Jvbmcgb3Igd2h5IHRoaXMgaXMgc28gZGlm
ZmljdWx0DQo+PiB0byBmaW5kLiAgOikNCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+PiBP
biAxMSBPY3RvYmVyIDIwMTYgYXQgMTc6NTAsIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2Fu
YnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+Pj4gSXMgdGhpcyB0aGlzIGxpc3QganVzdCBzb21lIGtp
bmQgb2YgYXV0b21hdGVkIHBhdGNoIGFubm91bmNlbWVudCBsb2cgYW5kIG5vdCBhbiBhY3R1YWwg
bWFpbGluZyBsaXN0IHdoZXJlIHlvdSBjYW4gYXNrIGFueXRoaW5nIGFib3V0IGJsdWV0b290aC4N
Cj4+PiBUaGlzIGlzIGFsbCBJIGhhdmUgc2VlbiBoZXJlIGZvciB0aGUgcGFzdCBmZXcgZGF5cz8N
Cj4+PiBXaGVyZSBjYW4gSSBhc2sgYW4gYWN0dWFsIHF1ZXN0aW9uIGFib3V0IGJsdWV0b290aD8N
Cj4+DQo+PiBUaGVyZSBhcmUgc29tZSByZWFsIGh1bWFucyBoZXJlIHRvbyEgIDotKQ0KPj4NCj4+
IElmIHlvdSBsb29rIGJhY2sgb24gdGhlIGFyY2hpdmUgb2YgdGhpcyBsaXN0IHlvdSB3aWxsIHNl
ZSBhIG1peHR1cmUNCj4+IG9mIHF1ZXN0aW9ucyBhbmQgcGF0Y2ggcmVxdWVzdHMuDQo+PiBtYXJj
LmluZm8vP2w9bGludXgtYmx1ZXRvb3RoDQo+Pg0KPj4gSSd2ZSBrZXB0IHF1aWV0IGFzIEknbSBu
b3Qgc3VyZSBJIGNhbiBhbnN3ZXIgcXVlc3Rpb25zLiBUbyBvZmZlciBzb21lDQo+PiBzaGFyZWQg
ZXhwZXJpZW5jZSwgSSBjYW4gc2F5IHRoYXQgSSd2ZSBiZWVuIGV4cGVyaW1lbnRpbmcgd2l0aA0K
Pj4gKEVkZHlzdG9uZSkgYmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0ZXJzIGFj
Y2Vzc2luZyBCbHVlWg0KPj4gdGhyb3VnaCB0aGUgREJ1cyBBUEkgdXNpbmcgUHl0aG9uLiBJIGFs
c28gaGF2ZSBub3QgZm91bmQgYSB3YXkgdG8NCj4+IGNoYW5nZSB0aGUgcG93ZXIgbGV2ZWwgb2Yg
YWR2ZXJ0aXNlbWVudHMgZWl0aGVyLiBGb3Igd2hhdCBJJ20gZG9pbmcsDQo+PiBqdXN0IG1ha2lu
ZyBzdXJlIHRoZSBUWCBwb3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdoYXQN
Cj4+IHRoZSBkb25nbGUgaXMgYWN0dWFsbHkgYnJvYWRjYXN0aW5nIGhhcyBiZWVuIGdvb2QgZW5v
dWdoLg0KPj4NCj4+IFNvcnJ5IEkgY291bGRuJ3QgYmUgb2YgbW9yZSBoZWxwLg0KPj4NCj4+IFJl
Z2FyZHMsDQo+PiBCYXJyeQ0KPj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+IFN0ZXZlIEdsYWRk
ZW4NCj4+Pg0KPj4+IE1pY2hpZ2FuIEJyb2FkYmFuZCBTeXN0ZW1zDQo+Pj4gQ29ubmVjdGluZyBZ
b3VyIEJ1c2luZXNzIQ0KPj4+DQo+Pj4NCj4+Pg0KPj4+ICsxIDczNC41MjcuNzE1MCBEaXJlY3QN
Cj4+PiArMSAyNDguMzI3LjQzODkgRmF4DQo+Pj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29t
DQo+Pj4gd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KPj4+DQo+Pj4gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+IEZyb206IFN0ZXZlIEdsYWRkZW4NCj4+PiBT
ZW50OiBTdW5kYXksIE9jdG9iZXIgMDksIDIwMTYgMTI6MTEgUE0NCj4+PiBUbzogbGludXgtYmx1
ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0KPj4+IFN1YmplY3Q6IEhvdyBjYW4geW91IHNldCBUcmFu
c21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUgYmVhY29uPw0K
Pj4+DQo+Pj4gSGksDQo+Pj4gTXkgbmFtZSBpcyBTdGV2ZSBhbmQgSSBhbSBsb2NhdGVkIGluIEFu
biBBcmJvciBNaWNoaWdhbiBVU0EuDQo+Pj4NCj4+PiBJIGFtIG5ldyAgYmx1ZXRvb3RoIExFIGFu
ZCBsYXRlbHkgYW0gb2JzZXNzZWQgd2l0aCBCbHVldG9vdGggTEUgYmVhY29ucyBhbmQgdHJ5aW5n
IHRoZW0gb3V0Lg0KPj4+DQo+Pj4gSSBoYXZlIHJlYWQgYXJ0aWNsZSBhZnRlciBhcnRpY2xlIGFu
ZCBwYWdlIGFmdGVyIHBhZ2UgYWJvdXQgaG93DQo+Pj4gcGVvcGxlIGhhdmUgc2V0dXAgdXAgYmVh
Y29ucyB3aXRoIFVTQiBCVCA0LjAgaW50ZXJmYWNlcyBhcyB3ZWxsIGFzIHNlcmlhbCBibHVldG9v
dGggYm9hcmRzLg0KPj4+DQo+Pj4gSSBhbSBjdXJyZW50bHkgZXhwZXJpbWVudGluZyB3aXRoIGEg
YmVhY29uIHJ1bm5pbmcgb24gYSBSYXNwYmVycnkgUGktQiBhbmQgdXNpbmcgYW4gZXh0ZXJuYWwg
VVNCIEJsdWV0b290aCA0LjAgY2xhc3MgMSBkb25nbGUuDQo+Pj4NCj4+PiBNeSBmcnVzdHJhdGlv
biBpcyB0aGF0IEkgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGZpbmQgYW55IHVzZWZ1bA0KPj4+IGlu
Zm9ybWF0aW9uIGluIGhvdyB0byBjaGFuZ2UgdGhlIFRyYW5zbWl0dGVyIHBvd2VyIGxldmVsIHdo
ZW4gaW4gTEUgbW9kZS4NCj4+Pg0KPj4+IFRoZSBkb25nbGUgYXBwZWFycyB0byBiZSB3b3JraW5n
IGF0IGRlZmF1bHQgbGV2ZWwgYmVsb3cgemVybyBkYm0uDQo+Pj4NCj4+PiBUaGUgd2hvbGUgcG9p
bnQgb2YgYnVpbGRpbmcgeW91ciBvd24gYmVhY29uIHRoaXMgd2F5IGlzIHRvIGJlIGFibGUNCj4+
PiB0byBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxldmVsIGlzIGFuIGltcG9y
dGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNzaWJsZSB5ZXQgSSBmaW5k
IHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxvbmUgZG8gdGhleSBleHBs
YWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+Pg0KPj4+DQo+Pj4gRXZl
cnkgdGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29uIHNldHVwcyBmcm9t
IGNvbW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5nIGJlYWNvbiBUWCBw
b3dlci4NCj4+Pg0KPj4+IEFsbCB0aGUgcGFnZXMgSSBoYXZlIGZvdW5kIHNlZW0gdG8gY29weSBl
YWNoIG90aGVyIGFuZCByZXBlYXQgdGhlDQo+Pj4gc2FtZSBpbmZvcm1hdGlvbiBvdmVyICYgb3Zl
ciBCdXQgbmV2ZXIgZ2V0IGFyb3VuZCB0byBldmVuIG1lbnRpb25pbmcgb3IgZGlzY3Vzc2luZyBz
ZXR0aW5nIHRoZSBwb3dlciBvdXRwdXQgbGV2ZWwgb2YgdGhlIGJsdXRvb3RoIGRvbmdsZS4NCj4+
Pg0KPj4+IHN1ZG8gaGNpdG9vbCAtaSBoY2kwIGNtZCAweDA4IDB4MDAwOCAxRSAwMiAwMSAxQSAx
QSBGRiA0QyAwMCAwMiAxNSBbDQo+Pj4gOTIgNzcgODMgMEEgQjIgRUIgNDkgMEYgQTEgREQgN0Yg
RTMgOEMgNDkgMkUgREUgXSBbIDAwIDAwIF0gWyAwMCAwMA0KPj4+IF0NCj4+PiBDNSAwMA0KPj4+
DQo+Pj4gVGhlIGJ5dGUganVzdCBsZWZ0IG9mIHRoZSBsYXN0IG9uZSBpcyB0aGUgInJlcG9ydGVk
IiBUWCBsZXZlbCB0aGF0IHlvdSBhcmUgdHJhbnNtaXR0aW5nIGF0Lg0KPj4+IFdoaWNoIG1lYW5z
IHlvdSdyZSBzdXBwb3NlZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBh
cmUgYWN0dWFsbHkgdHJhbnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRv
IHRoZSB3b3JsZCB3aGF0IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkg
Y2FuIHJhbmdlIChndWVzcyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+PiBUaGlz
IHZhbHVlIGRvZXMgbm90IGluZmx1ZW5jZSBvciByZWZsZWN0IGFjdHVhbCB0cmFuc21pdCBwb3dl
ci4NCj4+Pg0KPj4+IFBsZWFzZSBoZWxwISENCj4+Pg0KPj4+IENvdWxkIHVzZSBhbnkgcG9pbnRl
cnMuDQo+Pj4NCj4+PiBJJ20gYSBoYXJkd2FyZSBndXkgYXMgd2VsbCBzbyBub3QgdmVyeSBleHBl
cmllbmNlZCBpbiBzb2Z0d2FyZS9wcm9ncmFtbWluZyBidXQgSSdtIHdpbGxpbmcgdG8gdHJ5IGFu
eXRoaW5nIHRvIGdldCBjb250cm9sIG9mIHRoaXMuDQo+Pj4NCj4+PiBCZWVuIGF0IHRoaXMgZm9y
IG92ZXIgYSB3ZWVrIGFuZCBoYXZlIHNvbWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9s
IG9mIHRyYW5zbWl0IHBvd2VyIGxldmVsLg0KPj4+DQo+Pj4gQW0gdXNpbmcgVHJlbmRuZXQgVVNC
IGRvbmdsZXMgd2hpY2ggYXBwZWFyIHRvIHVzZSBhIENhbWJyaWRnZSBDaGlwLiAgQnV0IEknbSBu
b3QgZXhhY3RseSBzdXJlIHdoaWNoIGNoaXAuDQo+Pj4NCj4+Pg0KPj4+IDp+IyBsc3VzYg0KPj4+
IEJ1cyAwMDEgRGV2aWNlIDAwNzogSUQgMGExMjowMDAxIENhbWJyaWRnZSBTaWxpY29uIFJhZGlv
LCBMdGQNCj4+PiBCbHVldG9vdGggRG9uZ2xlIChIQ0kgbW9kZSkNCj4+Pg0KPj4+DQo+Pj4gcm9v
dEByYXNwYmVycnlwaTp+IyBoY2ljb25maWcgaGNpMA0KPj4+IGhjaTA6ICAgVHlwZTogQlIvRURS
ICBCdXM6IFVTQg0KPj4+ICAgICAgICAgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5ICBB
Q0wgTVRVOiAzMTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4+PiAgICAgICAgICBVUCBSVU5OSU5HDQo+
Pj4gICAgICAgICAgUlggYnl0ZXM6NzgwIGFjbDowIHNjbzowIGV2ZW50czo1MCBlcnJvcnM6MA0K
Pj4+ICAgICAgICAgIFRYIGJ5dGVzOjExMTAgYWNsOjAgc2NvOjAgY29tbWFuZHM6NTAgZXJyb3Jz
OjANCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+
DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gLS0NCj4+PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlz
dDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4+PiBsaW51eC1ibHVldG9vdGgiIGluIHRo
ZSBib2R5IG9mIGEgbWVzc2FnZSB0bw0KPj4+IG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcgTW9y
ZSBtYWpvcmRvbW8gaW5mbyBhdA0KPj4+IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21v
LWluZm8uaHRtbA0KPj4gLS0NCj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5k
IHRoZSBsaW5lICJ1bnN1YnNjcmliZQ0KPj4gbGludXgtYmx1ZXRvb3RoIiBpbiB0aGUgYm9keSBv
ZiBhIG1lc3NhZ2UgdG8NCj4+IG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcgTW9yZSBtYWpvcmRv
bW8gaW5mbyBhdA0KPj4gaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1s
DQo+DQo+DQo+DQo+IC0tDQo+IC0tLS0gSGlldSBMZSAtLS0NCj4NCj4NCj4NCj4NCj4gLS0NCj4N
Cj4gSm9zZXBoIFNoeWgtSW4gSHdhbmcNCj4gRW1haWw6IGpvc2VwaHNpaEBnb29nbGUuY29tDQo+
DQo+IE4gICByIHkgICBiIFggx6d2IF4gKd66ey5uICsgeyBuWyAtICkgICB3KmpnIB4gIN2iai8g
ICB6IN6WICAyIN6ZICAgJiAp36EgYQ0KPiAgIH8gHiBHICBoIA8gajordiB3INmlDQoNCg==

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
  2016-10-17  4:15                 ` Steve Gladden
@ 2016-10-19  7:22                   ` Andrei Emeltchenko
  0 siblings, 0 replies; 13+ messages in thread
From: Andrei Emeltchenko @ 2016-10-19  7:22 UTC (permalink / raw)
  To: Steve Gladden
  Cc: Jason Anderssen, Joseph Hwang, Hieu Le, Barry Byford, linux-bluetooth

Hi Steve,

On Mon, Oct 17, 2016 at 12:15:40AM -0400, Steve Gladden wrote:
> Hi Jason and thanks!
>=20
> No, fully agree with what you say.
>=20
> I'm willing to do the extra research.
> just a little bummed that the information I seek seemingly just is not th=
ere anywhere.
>=20
> And I also would thing that many other applications (and people) would
> want to be able to adjust the power for other uses as well.
> Especially to get full range available with full TX output power
> versus the "unknown default".  Or firmware set unknown default etc.

Johan already replied that there is no standard HCI command for that.
But you can use Vendor Specific Commands if there are any for changing
TX power.

So you should check manual for your hardware and use the command you
mentioned below:

hcitool -i hci0 cmd ....

Best regards=20
Andrei Emeltchenko=20

>=20
> I thought there'd be more people out here that wanted and knew how to set=
/change transmit power level.
>=20
> Thanks for replying and it was enjoyable to hear from you!
>=20
> Take care!
>=20
>=20
> Steve Gladden
>=20
> Michigan Broadband Systems
> Connecting Your Business!
>=20
>=20
>=20
> +1 734.527.7150 Direct
> +1 248.327.4389 Fax
> steve@michiganbroadband.com
> www.michiganbroadband.com
>=20
> -----Original Message-----
> From: Jason Anderssen [mailto:j@keyinitiative.com]
> Sent: Sunday, October 16, 2016 6:49 PM
> To: Steve Gladden
> Cc: Joseph Hwang; Hieu Le; Barry Byford; linux-bluetooth@vger.kernel.org
> Subject: Re: How can you set Transmit power level in Bluetooth LE mode fo=
r an LE beacon?
>=20
> Hi Steve,
>=20
> I have been reading and watching your emails, and have not replied as I p=
robably don=E2=80=99t have any answers, but my guess is as follows :
>=20
> Most people, myself included, are using Linux and hardware like Raspberry=
 pi to pick up beacons, not actually be a beacon, I know you can create a b=
eacon with linux, but it is not really the main focus for a lot of people.
> The hardware I use for BLE advertising completely lets me and others to p=
rogram the power level, which then is received from the Raspberry pi or lik=
e hardware, so I don=E2=80=99t have your issue or frustration.
>=20
> So my summary is: you maybe a minority in your work :-)  Nothing wrong wi=
th that, but it does mean extra development and research on your behalf I w=
ould say.
>=20
> Anyway, I hear your frustration, and I add no value to your question, hop=
efully some insight as how I see things fit in life and might explain your =
current situation.
>=20
> Remember this is simply my opinion, and is probably wrong too :)
>=20
> Cheers
> Jason
>=20
> > On 17 Oct 2016, at 7:56 AM, Steve Gladden <steve@michiganbroadband.com>=
 wrote:
> >
> > Ok, this is getting really frustrating.
> > Why would something so simple like this be so difficult?
> >
> > Am I really the only sheep out here that has any interest whatsoever in=
 the past 5 years on how to actually set LE transmit power on a USB device?
> > Do I just not get it?
> > Really I don=E2=80=99t get it.
> >
> > A really simple task and nobody out here either knows or has any intere=
st in doing it.
> >
> > My question is not even technical at all.   If I actually asked somethi=
ng technical out here would would happen?
> >
> > No offense to anyone out here just to myself really but what gives?
> >
> > How could people working with this stuff NOT be interested in simply
> > controlling the TX power output versus just living with some UNKNOWN DE=
FAULT that just sorta works if you=E2=80=99re happy with only 20 feet of ra=
nge although the chip can put out +10dbm and go further Or set it way back =
to -40dbm and get jstu a few feet and years of battery life.
> >
> > How the actual F- are people NOT interested in this and talking about i=
t and working with it?   =E2=98=BA
> >
> > All I have found on bccmd is a PDF document from 2005 that predates ANY=
 kind of BTLE stuff.
> >
> > And that=E2=80=99s just for the CSR chipsets the ONE that I could find =
documentation on.
> >
> > What about all the others?
> >
> > What gives here man?
> >
> > Am I completely in the wrong place to be asking about this?
> >
> > I don=E2=80=99t mean any disrespect, really I don=E2=80=99t!
> >
> > But where in the world do I go to get this basic information?
> >
> > And why does nobody care of have any hands-on experience here and/or in=
terest?
> >
> > Thanks!!
> >
> > Steve
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Tried that of course already days ago.
> > As well as anything else a simple google search turns up.
> >
> > To set Max tx power:
> > sudo bccmd psset -s 0x0000 0x0017 10
> > To set default tx power:
> > sudo bccmd psset -s 0x0000 0x002d 10
> >
> > It eats both of those commands and does not complain no errors but also=
 no change in TX power output.
> > I=E2=80=99m watching the beacons on a receiver and a spectrum analyser.
> >
> > If I issue: ~# hciconfig hci0 inqtpl
> > hci0:   Type: BR/EDR  Bus: USB
> >         BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
> >         Inquiry transmit power level: 4
> >
> > Always reads back that =E2=80=9C4=E2=80=9D
> >
> > Issuing either:
> >
> > # bccmd warmreset
> > -or
> > # bccmd coldreset
> >
> > results in transmitter off and have to do:
> >
> > hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39
> > F4 73 F5 4B C4 A1 2F 01 73 45 27 71 50 0A 28 0A 28 01 FF -and ~#
> > hciconfig hci0 leadv3
> >
> > To get it transmitting again (at the same non changed level.
> >
> > And
> >
> > ~# hciconfig hci0 inqtpl
> >
> > hci0:   Type: BR/EDR  Bus: USB
> >         BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
> >         Inquiry transmit power level: 4
> >
> > Always shows =E2=80=9C4=E2=80=9D
> >
> > On top of everything I have stated and tried here..
> > I don=E2=80=99t think that setting (if it even worked) has any relation=
 to LE GFSK advertising mode.
> >
> > Pretty sure it does not.
> > That (if it worked) sets power on Basic Rate and EDR as seen in the res=
ult =E2=80=9Chci0:   Type: BR/EDR  Bus: USB=E2=80=9D when issuing the hcico=
nfig hci0 inqtpl command.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Steve Gladden
> >
> > Michigan Broadband Systems
> > Connecting Your Business!
> >
> >
> >
> > +1 734.527.7150 Direct
> > +1 248.327.4389 Fax
> > steve@michiganbroadband.com
> > www.michiganbroadband.com
> >
> > From: Joseph Hwang [mailto:josephsih@google.com]
> > Sent: Wednesday, October 12, 2016 11:55 AM
> > To: Steve Gladden
> > Cc: Hieu Le; Barry Byford; linux-bluetooth@vger.kernel.org
> > Subject: Re: How can you set Transmit power level in Bluetooth LE mode =
for an LE beacon?
> >
> > Hi Steve:
> >
> >   Maybe you can try CSR's command line utility, bccmd. The system contr=
ol command Max_Tx_Power and Default_Tx_Power allow you to set tx power.
> >
> > Good luck!
> >
> > Joseph
> >
> >
> > On Wed, Oct 12, 2016 at 11:33 PM, Steve Gladden <steve@michiganbroadban=
d.com> wrote:
> > Thanks,
> > I was hoping there was an easier way and somehow at the command line bu=
t I'll do what I need to do and figure it out somehow.
> > I usually end up on 10 other rabbit trails when it comes to having to
> > recompile anything because it usually just fails for me and I'm not yet=
 well versed in troubleshooting when things won't compile successfully asid=
e from what I can easily google.
> >
> > I also think it's a little more complicated than just setting the power.
> > I have gathered at least wit hthe CSR chipset that there are at least 3=
 separate power settings that can be adjusted and not any overall power set=
ting.
> > So the various modulation modes (including GFSK -LE advertising-) need =
to be addressed and set individually.
> > There's not a master transmit level that sets them all.
> >
> >
> > Steve Gladden
> >
> > Michigan Broadband Systems
> > Connecting Your Business!
> >
> >
> >
> > +1 734.527.7150 Direct
> > +1 248.327.4389 Fax
> > steve@michiganbroadband.com
> > www.michiganbroadband.com
> >
> > -----Original Message-----
> > From: Hieu Le [mailto:hieu.le@veriksystems.com]
> > Sent: Wednesday, October 12, 2016 1:00 AM
> > To: Steve Gladden
> > Cc: Barry Byford; linux-bluetooth@vger.kernel.org
> > Subject: Re: How can you set Transmit power level in Bluetooth LE mode =
for an LE beacon?
> >
> > Hi,
> >
> > In my opinion, the only way I can find to increase the tx_power is to
> > recompile the linux kernel. There may be a better way
> >
> > It seems that bluetooth stack within kernel separated into two classes:
> > 1. Inquiry Tx_power.
> > 2. Advertise Tx_power.
> >
> > And the default value is 0.
> >
> > You can take a look at:
> > *hci_alloc_dev(void)  function within net/bluetooth/hci_core.c file
> > hdev->inq_tx_power =3D HCI_TX_POWER_INVALID; adv_tx_power =3D
> > hdev->HCI_TX_POWER_INVALID;
> >
> > Hope it will be helpful to you.
> >
> > Regards,
> > Hieu.
> >
> > On Wed, Oct 12, 2016 at 12:52 AM, Steve Gladden <steve@michiganbroadban=
d.com> wrote:
> >> Thanks!!
> >> Yes it's nice to hear from somebody.
> >>
> >> I've been scouring the web so far to no avail on what I think should b=
e a simple and accessible setting.
> >> It's obvious from the specs that most chips have a programmable (setta=
ble) transmitter power.
> >> And with beacons it is very important and expected that one should be =
able to adjust the transmitter level.
> >> All of the serial boards do it with simple AT commands.
> >>
> >> I just don't get why there's no documentation on how to do it with a U=
SB device!!
> >>
> >> They sell class 1 bluetooth usb dongles for applications that require =
more range (100m) is quoted on most class 1 products.
> >>
> >> I'd expect there should be a straight forward easy to set power in LE =
mode to get more range or save power and limit range when wanted.
> >>
> >> But I'm really not finding this information out there!
> >>
> >> I don;t understand what I am doing wrong or why this is so difficult
> >> to find.  :)
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.co=
m> wrote:
> >>> Is this this list just some kind of automated patch announcement log =
and not an actual mailing list where you can ask anything about bluetooth.
> >>> This is all I have seen here for the past few days?
> >>> Where can I ask an actual question about bluetooth?
> >>
> >> There are some real humans here too!  :-)
> >>
> >> If you look back on the archive of this list you will see a mixture
> >> of questions and patch requests.
> >> marc.info/?l=3Dlinux-bluetooth
> >>
> >> I've kept quiet as I'm not sure I can answer questions. To offer some
> >> shared experience, I can say that I've been experimenting with
> >> (Eddystone) beacons on Linux single board computers accessing BlueZ
> >> through the DBus API using Python. I also have not found a way to
> >> change the power level of advertisements either. For what I'm doing,
> >> just making sure the TX power in the Eddystone advert matches what
> >> the dongle is actually broadcasting has been good enough.
> >>
> >> Sorry I couldn't be of more help.
> >>
> >> Regards,
> >> Barry
> >>
> >>>
> >>>
> >>>
> >>>
> >>> Steve Gladden
> >>>
> >>> Michigan Broadband Systems
> >>> Connecting Your Business!
> >>>
> >>>
> >>>
> >>> +1 734.527.7150 Direct
> >>> +1 248.327.4389 Fax
> >>> steve@michiganbroadband.com
> >>> www.michiganbroadband.com
> >>>
> >>> ________________________________________
> >>> From: Steve Gladden
> >>> Sent: Sunday, October 09, 2016 12:11 PM
> >>> To: linux-bluetooth@vger.kernel.org
> >>> Subject: How can you set Transmit power level in Bluetooth LE mode fo=
r an LE beacon?
> >>>
> >>> Hi,
> >>> My name is Steve and I am located in Ann Arbor Michigan USA.
> >>>
> >>> I am new  bluetooth LE and lately am obsessed with Bluetooth LE beaco=
ns and trying them out.
> >>>
> >>> I have read article after article and page after page about how
> >>> people have setup up beacons with USB BT 4.0 interfaces as well as se=
rial bluetooth boards.
> >>>
> >>> I am currently experimenting with a beacon running on a Raspberry Pi-=
B and using an external USB Bluetooth 4.0 class 1 dongle.
> >>>
> >>> My frustration is that I have not been able to find any useful
> >>> information in how to change the Transmitter power level when in LE m=
ode.
> >>>
> >>> The dongle appears to be working at default level below zero dbm.
> >>>
> >>> The whole point of building your own beacon this way is to be able
> >>> to customize it and setting the power level is an important key item =
that should be easily accessible yet I find that NOBODY ever even mentions =
it let alone do they explain or provide a way to set the power.
> >>>
> >>>
> >>> Every text that I have found that details beacon setups from command =
line never bother to mention setting beacon TX power.
> >>>
> >>> All the pages I have found seem to copy each other and repeat the
> >>> same information over & over But never get around to even mentioning =
or discussing setting the power output level of the blutooth dongle.
> >>>
> >>> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [
> >>> 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00
> >>> ]
> >>> C5 00
> >>>
> >>> The byte just left of the last one is the "reported" TX level that yo=
u are transmitting at.
> >>> Which means you're supposed to know (or guess?) what dbm level you ar=
e actually transmitting at and set it here to display to the world what you=
r transmitter level is set to so they can range (guess or estimate distance=
 from TX).
> >>> This value does not influence or reflect actual transmit power.
> >>>
> >>> Please help!!
> >>>
> >>> Could use any pointers.
> >>>
> >>> I'm a hardware guy as well so not very experienced in software/progra=
mming but I'm willing to try anything to get control of this.
> >>>
> >>> Been at this for over a week and have some working beacons but no con=
trol of transmit power level.
> >>>
> >>> Am using Trendnet USB dongles which appear to use a Cambridge Chip.  =
But I'm not exactly sure which chip.
> >>>
> >>>
> >>> :~# lsusb
> >>> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd
> >>> Bluetooth Dongle (HCI mode)
> >>>
> >>>
> >>> root@raspberrypi:~# hciconfig hci0
> >>> hci0:   Type: BR/EDR  Bus: USB
> >>>          BD Address: 00:15:83:EA:0A:B9  ACL MTU: 310:10  SCO MTU: 64:8
> >>>          UP RUNNING
> >>>          RX bytes:780 acl:0 sco:0 events:50 errors:0
> >>>          TX bytes:1110 acl:0 sco:0 commands:50 errors:0
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> To unsubscribe from this list: send the line "unsubscribe
> >>> linux-bluetooth" in the body of a message to
> >>> majordomo@vger.kernel.org More majordomo info at
> >>> http://vger.kernel.org/majordomo-info.html
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe
> >> linux-bluetooth" in the body of a message to
> >> majordomo@vger.kernel.org More majordomo info at
> >> http://vger.kernel.org/majordomo-info.html
> >
> >
> >
> > --
> > ---- Hieu Le ---
> >
> >
> >
> >
> > --
> >
> > Joseph Shyh-In Hwang
> > Email: josephsih@google.com
> >
> > N   r y   b X =C7=A7v ^ )=DE=BA{.n + { n[ - )   w*jg =1E  =DD=A2j/   z =
=DE=96  2 =DE=99   & )=DF=A1 a
> >   =7F =1E G  h =0F j:+v w =D9=A5
>=20

^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?
       [not found]                 ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local>
@ 2016-10-24 21:24                   ` Steve Gladden
  0 siblings, 0 replies; 13+ messages in thread
From: Steve Gladden @ 2016-10-24 21:24 UTC (permalink / raw)
  To: 'Jason Anderssen'
  Cc: 'Joseph Hwang', 'Hieu Le', 'Barry Byford',
	'linux-bluetooth@vger.kernel.org'

SGVsbG8gQW5kcmVpOg0KPj5Kb2hhbiBhbHJlYWR5IHJlcGxpZWQgdGhhdCB0aGVyZSBpcyBubyBz
dGFuZGFyZCBIQ0kgY29tbWFuZCBmb3IgdGhhdC4NCj4+QnV0IHlvdSBjYW4gdXNlIFZlbmRvciBT
cGVjaWZpYyBDb21tYW5kcyBpZiB0aGVyZSBhcmUgYW55IGZvciBjaGFuZ2luZw0KPj5UWCBwb3dl
ci4NCg0KDQpUaGUgY2xvc2VzdCB0aGluZyBJIGhhdmUgZXZlciBiZWVuIGFibGUgdG8gZmluZCB0
aGF0IHNob3dzIGFueSB2ZW5kb3Igc3BlY2lmaWMgY29tbWFuZHMgaXMgdGhpcyBPTEQgZG9jdW1l
bnQgZnJvbSAyMDA1IHdoaWNoIGlzIGZyb20gbG9uZyBiZWZvcmUgQmx1ZXRvb3RoIExFIGV2ZXIg
ZXhpc3RlZCAtLS0tLT4gaHR0cHM6Ly9oaW1zZWxmLmZpbGVzLndvcmRwcmVzcy5jb20vMjAxMy8w
NS9iY2NtZC1jb21tYW5kcy5wZGYNCg0KQWxzbyBpbmNsdWRlZCBoZXJlIGFzIG1vcmUgb2YgYSBq
b2tlIHRoYW4gYW55dGhpbmcgZWxzZSBpcyBhIGNvcHkgb2YgYSB0eXBpY2FsICJ2ZW5kb3IgbWFu
dWFsIg0KVHlwaWNhbCBWZW5kb3IgTWFudWFsICAtLS0tLT4gaHR0cDovL2ltYWdlczEwLm5ld2Vn
Zy5jb20vTWFudWZhY3R1cmVyLUJyb2NodXJlL01hbnVmYWN0dXJlcl9Ccm9jaHVyZV8zMy00MTIt
MDAxLnBkZg0KDQoNCj4+U28geW91IHNob3VsZCBjaGVjayBtYW51YWwgZm9yIHlvdXIgaGFyZHdh
cmUgYW5kIHVzZSB0aGUgY29tbWFuZCB5b3UNCj4+bWVudGlvbmVkIGJlbG93Og0KDQpZZXMgSSBz
aG91bGQhICAgSW4gZmFjdCBJJ2QgcmVhbGx5IGVuam95IGRvaW5nIHNvIGlmIEkgY291bGQganVz
dCBmaW5kLi4gbmV2ZXJtaW5kLiAgICA6LSkNCg0KDQpBbmRyZWksIHBlciBjaGFuY2UgZG8geW91
IGhhdmUgYW4gZXhhbXBsZSBvZiBhIHZlbmRvciBtYW51YWwgdGhhdCBpbmNsdWRlcyB0aGVzZSBj
b21tYW5kcz8NCk9yIGFueSBzb3VyY2Ugb2YgaW5mb3JtYXRpb24gdGhhdCBJIHN0aWxsIGFtIG5v
dCBmYW1pbGlhciB3aXRoPw0KVGhhbmtzIGFuZCB0YWtlIGNhcmUhDQpTdGV2ZQ0KDQoNCj4+SGNp
dG9vbCAtaSBoY2kwIGNtZCAuLi4uDQoNCj4+QmVzdCByZWdhcmRzDQo+PkFuZHJlaSBFbWVsdGNo
ZW5rbw0KDQoNCg0KDQoNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogU3Rl
dmUgR2xhZGRlbg0KU2VudDogTW9uZGF5LCBPY3RvYmVyIDE3LCAyMDE2IDEyOjE2IEFNDQpUbzog
SmFzb24gQW5kZXJzc2VuIDxqQGtleWluaXRpYXRpdmUuY29tPg0KQ2M6IEpvc2VwaCBId2FuZyA8
am9zZXBoc2loQGdvb2dsZS5jb20+OyBIaWV1IExlIDxoaWV1LmxlQHZlcmlrc3lzdGVtcy5jb20+
OyBCYXJyeSBCeWZvcmQgPDMxYmF6NjZAZ21haWwuY29tPjsgbGludXgtYmx1ZXRvb3RoQHZnZXIu
a2VybmVsLm9yZw0KU3ViamVjdDogUkU6IEhvdyBjYW4geW91IHNldCBUcmFuc21pdCBwb3dlciBs
ZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUgYmVhY29uPw0KDQpIaSBKYXNvbiBh
bmQgdGhhbmtzIQ0KDQpObywgZnVsbHkgYWdyZWUgd2l0aCB3aGF0IHlvdSBzYXkuDQoNCkknbSB3
aWxsaW5nIHRvIGRvIHRoZSBleHRyYSByZXNlYXJjaC4NCmp1c3QgYSBsaXR0bGUgYnVtbWVkIHRo
YXQgdGhlIGluZm9ybWF0aW9uIEkgc2VlayBzZWVtaW5nbHkganVzdCBpcyBub3QgdGhlcmUgYW55
d2hlcmUuDQoNCkFuZCBJIGFsc28gd291bGQgdGhpbmcgdGhhdCBtYW55IG90aGVyIGFwcGxpY2F0
aW9ucyAoYW5kIHBlb3BsZSkgd291bGQgd2FudCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgcG93
ZXIgZm9yIG90aGVyIHVzZXMgYXMgd2VsbC4NCkVzcGVjaWFsbHkgdG8gZ2V0IGZ1bGwgcmFuZ2Ug
YXZhaWxhYmxlIHdpdGggZnVsbCBUWCBvdXRwdXQgcG93ZXIgdmVyc3VzIHRoZSAidW5rbm93biBk
ZWZhdWx0Ii4gIE9yIGZpcm13YXJlIHNldCB1bmtub3duIGRlZmF1bHQgZXRjLg0KDQpJIHRob3Vn
aHQgdGhlcmUnZCBiZSBtb3JlIHBlb3BsZSBvdXQgaGVyZSB0aGF0IHdhbnRlZCBhbmQga25ldyBo
b3cgdG8gc2V0L2NoYW5nZSB0cmFuc21pdCBwb3dlciBsZXZlbC4NCg0KVGhhbmtzIGZvciByZXBs
eWluZyBhbmQgaXQgd2FzIGVuam95YWJsZSB0byBoZWFyIGZyb20geW91IQ0KDQpUYWtlIGNhcmUh
DQoNCg0KU3RldmUgR2xhZGRlbg0KDQpNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KQ29ubmVj
dGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KKzEgMjQ4
LjMyNy40Mzg5IEZheA0Kc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQp3d3cubWljaGlnYW5i
cm9hZGJhbmQuY29tDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBKYXNvbiBB
bmRlcnNzZW4gW21haWx0bzpqQGtleWluaXRpYXRpdmUuY29tXQ0KU2VudDogU3VuZGF5LCBPY3Rv
YmVyIDE2LCAyMDE2IDY6NDkgUE0NClRvOiBTdGV2ZSBHbGFkZGVuDQpDYzogSm9zZXBoIEh3YW5n
OyBIaWV1IExlOyBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcN
ClN1YmplY3Q6IFJlOiBIb3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1
ZXRvb3RoIExFIG1vZGUgZm9yIGFuIExFIGJlYWNvbj8NCg0KSGkgU3RldmUsDQoNCkkgaGF2ZSBi
ZWVuIHJlYWRpbmcgYW5kIHdhdGNoaW5nIHlvdXIgZW1haWxzLCBhbmQgaGF2ZSBub3QgcmVwbGll
ZCBhcyBJIHByb2JhYmx5IGRvbuKAmXQgaGF2ZSBhbnkgYW5zd2VycywgYnV0IG15IGd1ZXNzIGlz
IGFzIGZvbGxvd3MgOg0KDQpNb3N0IHBlb3BsZSwgbXlzZWxmIGluY2x1ZGVkLCBhcmUgdXNpbmcg
TGludXggYW5kIGhhcmR3YXJlIGxpa2UgUmFzcGJlcnJ5IHBpIHRvIHBpY2sgdXAgYmVhY29ucywg
bm90IGFjdHVhbGx5IGJlIGEgYmVhY29uLCBJIGtub3cgeW91IGNhbiBjcmVhdGUgYSBiZWFjb24g
d2l0aCBsaW51eCwgYnV0IGl0IGlzIG5vdCByZWFsbHkgdGhlIG1haW4gZm9jdXMgZm9yIGEgbG90
IG9mIHBlb3BsZS4NClRoZSBoYXJkd2FyZSBJIHVzZSBmb3IgQkxFIGFkdmVydGlzaW5nIGNvbXBs
ZXRlbHkgbGV0cyBtZSBhbmQgb3RoZXJzIHRvIHByb2dyYW0gdGhlIHBvd2VyIGxldmVsLCB3aGlj
aCB0aGVuIGlzIHJlY2VpdmVkIGZyb20gdGhlIFJhc3BiZXJyeSBwaSBvciBsaWtlIGhhcmR3YXJl
LCBzbyBJIGRvbuKAmXQgaGF2ZSB5b3VyIGlzc3VlIG9yIGZydXN0cmF0aW9uLg0KDQpTbyBteSBz
dW1tYXJ5IGlzOiB5b3UgbWF5YmUgYSBtaW5vcml0eSBpbiB5b3VyIHdvcmsgOi0pICBOb3RoaW5n
IHdyb25nIHdpdGggdGhhdCwgYnV0IGl0IGRvZXMgbWVhbiBleHRyYSBkZXZlbG9wbWVudCBhbmQg
cmVzZWFyY2ggb24geW91ciBiZWhhbGYgSSB3b3VsZCBzYXkuDQoNCkFueXdheSwgSSBoZWFyIHlv
dXIgZnJ1c3RyYXRpb24sIGFuZCBJIGFkZCBubyB2YWx1ZSB0byB5b3VyIHF1ZXN0aW9uLCBob3Bl
ZnVsbHkgc29tZSBpbnNpZ2h0IGFzIGhvdyBJIHNlZSB0aGluZ3MgZml0IGluIGxpZmUgYW5kIG1p
Z2h0IGV4cGxhaW4geW91ciBjdXJyZW50IHNpdHVhdGlvbi4NCg0KUmVtZW1iZXIgdGhpcyBpcyBz
aW1wbHkgbXkgb3BpbmlvbiwgYW5kIGlzIHByb2JhYmx5IHdyb25nIHRvbyA6KQ0KDQpDaGVlcnMN
Ckphc29uDQoNCj4gT24gMTcgT2N0IDIwMTYsIGF0IDc6NTYgQU0sIFN0ZXZlIEdsYWRkZW4gPHN0
ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+DQo+IE9rLCB0aGlzIGlzIGdldHRp
bmcgcmVhbGx5IGZydXN0cmF0aW5nLg0KPiBXaHkgd291bGQgc29tZXRoaW5nIHNvIHNpbXBsZSBs
aWtlIHRoaXMgYmUgc28gZGlmZmljdWx0Pw0KPg0KPiBBbSBJIHJlYWxseSB0aGUgb25seSBzaGVl
cCBvdXQgaGVyZSB0aGF0IGhhcyBhbnkgaW50ZXJlc3Qgd2hhdHNvZXZlciBpbiB0aGUgcGFzdCA1
IHllYXJzIG9uIGhvdyB0byBhY3R1YWxseSBzZXQgTEUgdHJhbnNtaXQgcG93ZXIgb24gYSBVU0Ig
ZGV2aWNlPw0KPiBEbyBJIGp1c3Qgbm90IGdldCBpdD8NCj4gUmVhbGx5IEkgZG9u4oCZdCBnZXQg
aXQuDQo+DQo+IEEgcmVhbGx5IHNpbXBsZSB0YXNrIGFuZCBub2JvZHkgb3V0IGhlcmUgZWl0aGVy
IGtub3dzIG9yIGhhcyBhbnkgaW50ZXJlc3QgaW4gZG9pbmcgaXQuDQo+DQo+IE15IHF1ZXN0aW9u
IGlzIG5vdCBldmVuIHRlY2huaWNhbCBhdCBhbGwuICAgSWYgSSBhY3R1YWxseSBhc2tlZCBzb21l
dGhpbmcgdGVjaG5pY2FsIG91dCBoZXJlIHdvdWxkIHdvdWxkIGhhcHBlbj8NCj4NCj4gTm8gb2Zm
ZW5zZSB0byBhbnlvbmUgb3V0IGhlcmUganVzdCB0byBteXNlbGYgcmVhbGx5IGJ1dCB3aGF0IGdp
dmVzPw0KPg0KPiBIb3cgY291bGQgcGVvcGxlIHdvcmtpbmcgd2l0aCB0aGlzIHN0dWZmIE5PVCBi
ZSBpbnRlcmVzdGVkIGluIHNpbXBseQ0KPiBjb250cm9sbGluZyB0aGUgVFggcG93ZXIgb3V0cHV0
IHZlcnN1cyBqdXN0IGxpdmluZyB3aXRoIHNvbWUgVU5LTk9XTiBERUZBVUxUIHRoYXQganVzdCBz
b3J0YSB3b3JrcyBpZiB5b3XigJlyZSBoYXBweSB3aXRoIG9ubHkgMjAgZmVldCBvZiByYW5nZSBh
bHRob3VnaCB0aGUgY2hpcCBjYW4gcHV0IG91dCArMTBkYm0gYW5kIGdvIGZ1cnRoZXIgT3Igc2V0
IGl0IHdheSBiYWNrIHRvIC00MGRibSBhbmQgZ2V0IGpzdHUgYSBmZXcgZmVldCBhbmQgeWVhcnMg
b2YgYmF0dGVyeSBsaWZlLg0KPg0KPiBIb3cgdGhlIGFjdHVhbCBGLSBhcmUgcGVvcGxlIE5PVCBp
bnRlcmVzdGVkIGluIHRoaXMgYW5kIHRhbGtpbmcgYWJvdXQgaXQgYW5kIHdvcmtpbmcgd2l0aCBp
dD8gICDimLoNCj4NCj4gQWxsIEkgaGF2ZSBmb3VuZCBvbiBiY2NtZCBpcyBhIFBERiBkb2N1bWVu
dCBmcm9tIDIwMDUgdGhhdCBwcmVkYXRlcyBBTlkga2luZCBvZiBCVExFIHN0dWZmLg0KPg0KPiBB
bmQgdGhhdOKAmXMganVzdCBmb3IgdGhlIENTUiBjaGlwc2V0cyB0aGUgT05FIHRoYXQgSSBjb3Vs
ZCBmaW5kIGRvY3VtZW50YXRpb24gb24uDQo+DQo+IFdoYXQgYWJvdXQgYWxsIHRoZSBvdGhlcnM/
DQo+DQo+IFdoYXQgZ2l2ZXMgaGVyZSBtYW4/DQo+DQo+IEFtIEkgY29tcGxldGVseSBpbiB0aGUg
d3JvbmcgcGxhY2UgdG8gYmUgYXNraW5nIGFib3V0IHRoaXM/DQo+DQo+IEkgZG9u4oCZdCBtZWFu
IGFueSBkaXNyZXNwZWN0LCByZWFsbHkgSSBkb27igJl0IQ0KPg0KPiBCdXQgd2hlcmUgaW4gdGhl
IHdvcmxkIGRvIEkgZ28gdG8gZ2V0IHRoaXMgYmFzaWMgaW5mb3JtYXRpb24/DQo+DQo+IEFuZCB3
aHkgZG9lcyBub2JvZHkgY2FyZSBvZiBoYXZlIGFueSBoYW5kcy1vbiBleHBlcmllbmNlIGhlcmUg
YW5kL29yIGludGVyZXN0Pw0KPg0KPiBUaGFua3MhIQ0KPg0KPiBTdGV2ZQ0KPg0KPg0KPg0KPg0K
Pg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPiBUcmllZCB0aGF0IG9mIGNvdXJzZSBhbHJlYWR5
IGRheXMgYWdvLg0KPiBBcyB3ZWxsIGFzIGFueXRoaW5nIGVsc2UgYSBzaW1wbGUgZ29vZ2xlIHNl
YXJjaCB0dXJucyB1cC4NCj4NCj4gVG8gc2V0IE1heCB0eCBwb3dlcjoNCj4gc3VkbyBiY2NtZCBw
c3NldCAtcyAweDAwMDAgMHgwMDE3IDEwDQo+IFRvIHNldCBkZWZhdWx0IHR4IHBvd2VyOg0KPiBz
dWRvIGJjY21kIHBzc2V0IC1zIDB4MDAwMCAweDAwMmQgMTANCj4NCj4gSXQgZWF0cyBib3RoIG9m
IHRob3NlIGNvbW1hbmRzIGFuZCBkb2VzIG5vdCBjb21wbGFpbiBubyBlcnJvcnMgYnV0IGFsc28g
bm8gY2hhbmdlIGluIFRYIHBvd2VyIG91dHB1dC4NCj4gSeKAmW0gd2F0Y2hpbmcgdGhlIGJlYWNv
bnMgb24gYSByZWNlaXZlciBhbmQgYSBzcGVjdHJ1bSBhbmFseXNlci4NCj4NCj4gSWYgSSBpc3N1
ZTogfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQo+IGhjaTA6ICAgVHlwZTogQlIvRURSICBCdXM6
IFVTQg0KPiAgICAgICAgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5ICBBQ0wgTVRVOiAz
MTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4gICAgICAgICBJbnF1aXJ5IHRyYW5zbWl0IHBvd2VyIGxl
dmVsOiA0DQo+DQo+IEFsd2F5cyByZWFkcyBiYWNrIHRoYXQg4oCcNOKAnQ0KPg0KPiBJc3N1aW5n
IGVpdGhlcjoNCj4NCj4gIyBiY2NtZCB3YXJtcmVzZXQNCj4gLW9yDQo+ICMgYmNjbWQgY29sZHJl
c2V0DQo+DQo+IHJlc3VsdHMgaW4gdHJhbnNtaXR0ZXIgb2ZmIGFuZCBoYXZlIHRvIGRvOg0KPg0K
PiBoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRDIDAw
IDAyIDE1IEUyIDBBIDM5DQo+IEY0IDczIEY1IDRCIEM0IEExIDJGIDAxIDczIDQ1IDI3IDcxIDUw
IDBBIDI4IDBBIDI4IDAxIEZGIC1hbmQgfiMNCj4gaGNpY29uZmlnIGhjaTAgbGVhZHYzDQo+DQo+
IFRvIGdldCBpdCB0cmFuc21pdHRpbmcgYWdhaW4gKGF0IHRoZSBzYW1lIG5vbiBjaGFuZ2VkIGxl
dmVsLg0KPg0KPiBBbmQNCj4NCj4gfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQo+DQo+IGhjaTA6
ICAgVHlwZTogQlIvRURSICBCdXM6IFVTQg0KPiAgICAgICAgIEJEIEFkZHJlc3M6IDAwOjE1Ojgz
OkVBOjBBOkI5ICBBQ0wgTVRVOiAzMTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4gICAgICAgICBJbnF1
aXJ5IHRyYW5zbWl0IHBvd2VyIGxldmVsOiA0DQo+DQo+IEFsd2F5cyBzaG93cyDigJw04oCdDQo+
DQo+IE9uIHRvcCBvZiBldmVyeXRoaW5nIEkgaGF2ZSBzdGF0ZWQgYW5kIHRyaWVkIGhlcmUuLg0K
PiBJIGRvbuKAmXQgdGhpbmsgdGhhdCBzZXR0aW5nIChpZiBpdCBldmVuIHdvcmtlZCkgaGFzIGFu
eSByZWxhdGlvbiB0byBMRSBHRlNLIGFkdmVydGlzaW5nIG1vZGUuDQo+DQo+IFByZXR0eSBzdXJl
IGl0IGRvZXMgbm90Lg0KPiBUaGF0IChpZiBpdCB3b3JrZWQpIHNldHMgcG93ZXIgb24gQmFzaWMg
UmF0ZSBhbmQgRURSIGFzIHNlZW4gaW4gdGhlIHJlc3VsdCDigJxoY2kwOiAgIFR5cGU6IEJSL0VE
UiAgQnVzOiBVU0LigJ0gd2hlbiBpc3N1aW5nIHRoZSBoY2ljb25maWcgaGNpMCBpbnF0cGwgY29t
bWFuZC4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gU3RldmUg
R2xhZGRlbg0KPg0KPiBNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPiBDb25uZWN0aW5nIFlv
dXIgQnVzaW5lc3MhDQo+DQo+DQo+DQo+ICsxIDczNC41MjcuNzE1MCBEaXJlY3QNCj4gKzEgMjQ4
LjMyNy40Mzg5IEZheA0KPiBzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20NCj4gd3d3Lm1pY2hp
Z2FuYnJvYWRiYW5kLmNvbQ0KPg0KPiBGcm9tOiBKb3NlcGggSHdhbmcgW21haWx0bzpqb3NlcGhz
aWhAZ29vZ2xlLmNvbV0NCj4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDEyLCAyMDE2IDExOjU1
IEFNDQo+IFRvOiBTdGV2ZSBHbGFkZGVuDQo+IENjOiBIaWV1IExlOyBCYXJyeSBCeWZvcmQ7IGxp
bnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IEhvdyBjYW4geW91
IHNldCBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUg
YmVhY29uPw0KPg0KPiBIaSBTdGV2ZToNCj4NCj4gICBNYXliZSB5b3UgY2FuIHRyeSBDU1IncyBj
b21tYW5kIGxpbmUgdXRpbGl0eSwgYmNjbWQuIFRoZSBzeXN0ZW0gY29udHJvbCBjb21tYW5kIE1h
eF9UeF9Qb3dlciBhbmQgRGVmYXVsdF9UeF9Qb3dlciBhbGxvdyB5b3UgdG8gc2V0IHR4IHBvd2Vy
Lg0KPg0KPiBHb29kIGx1Y2shDQo+DQo+IEpvc2VwaA0KPg0KPg0KPiBPbiBXZWQsIE9jdCAxMiwg
MjAxNiBhdCAxMTozMyBQTSwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9hZGJhbmQu
Y29tPiB3cm90ZToNCj4gVGhhbmtzLA0KPiBJIHdhcyBob3BpbmcgdGhlcmUgd2FzIGFuIGVhc2ll
ciB3YXkgYW5kIHNvbWVob3cgYXQgdGhlIGNvbW1hbmQgbGluZSBidXQgSSdsbCBkbyB3aGF0IEkg
bmVlZCB0byBkbyBhbmQgZmlndXJlIGl0IG91dCBzb21laG93Lg0KPiBJIHVzdWFsbHkgZW5kIHVw
IG9uIDEwIG90aGVyIHJhYmJpdCB0cmFpbHMgd2hlbiBpdCBjb21lcyB0byBoYXZpbmcgdG8NCj4g
cmVjb21waWxlIGFueXRoaW5nIGJlY2F1c2UgaXQgdXN1YWxseSBqdXN0IGZhaWxzIGZvciBtZSBh
bmQgSSdtIG5vdCB5ZXQgd2VsbCB2ZXJzZWQgaW4gdHJvdWJsZXNob290aW5nIHdoZW4gdGhpbmdz
IHdvbid0IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFzaWRlIGZyb20gd2hhdCBJIGNhbiBlYXNpbHkg
Z29vZ2xlLg0KPg0KPiBJIGFsc28gdGhpbmsgaXQncyBhIGxpdHRsZSBtb3JlIGNvbXBsaWNhdGVk
IHRoYW4ganVzdCBzZXR0aW5nIHRoZSBwb3dlci4NCj4gSSBoYXZlIGdhdGhlcmVkIGF0IGxlYXN0
IHdpdCBodGhlIENTUiBjaGlwc2V0IHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0IDMgc2VwYXJhdGUg
cG93ZXIgc2V0dGluZ3MgdGhhdCBjYW4gYmUgYWRqdXN0ZWQgYW5kIG5vdCBhbnkgb3ZlcmFsbCBw
b3dlciBzZXR0aW5nLg0KPiBTbyB0aGUgdmFyaW91cyBtb2R1bGF0aW9uIG1vZGVzIChpbmNsdWRp
bmcgR0ZTSyAtTEUgYWR2ZXJ0aXNpbmctKSBuZWVkIHRvIGJlIGFkZHJlc3NlZCBhbmQgc2V0IGlu
ZGl2aWR1YWxseS4NCj4gVGhlcmUncyBub3QgYSBtYXN0ZXIgdHJhbnNtaXQgbGV2ZWwgdGhhdCBz
ZXRzIHRoZW0gYWxsLg0KPg0KPg0KPiBTdGV2ZSBHbGFkZGVuDQo+DQo+IE1pY2hpZ2FuIEJyb2Fk
YmFuZCBTeXN0ZW1zDQo+IENvbm5lY3RpbmcgWW91ciBCdXNpbmVzcyENCj4NCj4NCj4NCj4gKzEg
NzM0LjUyNy43MTUwIERpcmVjdA0KPiArMSAyNDguMzI3LjQzODkgRmF4DQo+IHN0ZXZlQG1pY2hp
Z2FuYnJvYWRiYW5kLmNvbQ0KPiB3d3cubWljaGlnYW5icm9hZGJhbmQuY29tDQo+DQo+IC0tLS0t
T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEhpZXUgTGUgW21haWx0bzpoaWV1LmxlQHZl
cmlrc3lzdGVtcy5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxMiwgMjAxNiAxOjAw
IEFNDQo+IFRvOiBTdGV2ZSBHbGFkZGVuDQo+IENjOiBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0
b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IEhvdyBjYW4geW91IHNldCBUcmFu
c21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUgYmVhY29uPw0K
Pg0KPiBIaSwNCj4NCj4gSW4gbXkgb3BpbmlvbiwgdGhlIG9ubHkgd2F5IEkgY2FuIGZpbmQgdG8g
aW5jcmVhc2UgdGhlIHR4X3Bvd2VyIGlzIHRvDQo+IHJlY29tcGlsZSB0aGUgbGludXgga2VybmVs
LiBUaGVyZSBtYXkgYmUgYSBiZXR0ZXIgd2F5DQo+DQo+IEl0IHNlZW1zIHRoYXQgYmx1ZXRvb3Ro
IHN0YWNrIHdpdGhpbiBrZXJuZWwgc2VwYXJhdGVkIGludG8gdHdvIGNsYXNzZXM6DQo+IDEuIElu
cXVpcnkgVHhfcG93ZXIuDQo+IDIuIEFkdmVydGlzZSBUeF9wb3dlci4NCj4NCj4gQW5kIHRoZSBk
ZWZhdWx0IHZhbHVlIGlzIDAuDQo+DQo+IFlvdSBjYW4gdGFrZSBhIGxvb2sgYXQ6DQo+ICpoY2lf
YWxsb2NfZGV2KHZvaWQpICBmdW5jdGlvbiB3aXRoaW4gbmV0L2JsdWV0b290aC9oY2lfY29yZS5j
IGZpbGUNCj4gaGRldi0+aW5xX3R4X3Bvd2VyID0gSENJX1RYX1BPV0VSX0lOVkFMSUQ7IGFkdl90
eF9wb3dlciA9DQo+IGhkZXYtPkhDSV9UWF9QT1dFUl9JTlZBTElEOw0KPg0KPiBIb3BlIGl0IHdp
bGwgYmUgaGVscGZ1bCB0byB5b3UuDQo+DQo+IFJlZ2FyZHMsDQo+IEhpZXUuDQo+DQo+IE9uIFdl
ZCwgT2N0IDEyLCAyMDE2IGF0IDEyOjUyIEFNLCBTdGV2ZSBHbGFkZGVuIDxzdGV2ZUBtaWNoaWdh
bmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KPj4gVGhhbmtzISENCj4+IFllcyBpdCdzIG5pY2UgdG8g
aGVhciBmcm9tIHNvbWVib2R5Lg0KPj4NCj4+IEkndmUgYmVlbiBzY291cmluZyB0aGUgd2ViIHNv
IGZhciB0byBubyBhdmFpbCBvbiB3aGF0IEkgdGhpbmsgc2hvdWxkIGJlIGEgc2ltcGxlIGFuZCBh
Y2Nlc3NpYmxlIHNldHRpbmcuDQo+PiBJdCdzIG9idmlvdXMgZnJvbSB0aGUgc3BlY3MgdGhhdCBt
b3N0IGNoaXBzIGhhdmUgYSBwcm9ncmFtbWFibGUgKHNldHRhYmxlKSB0cmFuc21pdHRlciBwb3dl
ci4NCj4+IEFuZCB3aXRoIGJlYWNvbnMgaXQgaXMgdmVyeSBpbXBvcnRhbnQgYW5kIGV4cGVjdGVk
IHRoYXQgb25lIHNob3VsZCBiZSBhYmxlIHRvIGFkanVzdCB0aGUgdHJhbnNtaXR0ZXIgbGV2ZWwu
DQo+PiBBbGwgb2YgdGhlIHNlcmlhbCBib2FyZHMgZG8gaXQgd2l0aCBzaW1wbGUgQVQgY29tbWFu
ZHMuDQo+Pg0KPj4gSSBqdXN0IGRvbid0IGdldCB3aHkgdGhlcmUncyBubyBkb2N1bWVudGF0aW9u
IG9uIGhvdyB0byBkbyBpdCB3aXRoIGEgVVNCIGRldmljZSEhDQo+Pg0KPj4gVGhleSBzZWxsIGNs
YXNzIDEgYmx1ZXRvb3RoIHVzYiBkb25nbGVzIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJl
IG1vcmUgcmFuZ2UgKDEwMG0pIGlzIHF1b3RlZCBvbiBtb3N0IGNsYXNzIDEgcHJvZHVjdHMuDQo+
Pg0KPj4gSSdkIGV4cGVjdCB0aGVyZSBzaG91bGQgYmUgYSBzdHJhaWdodCBmb3J3YXJkIGVhc3kg
dG8gc2V0IHBvd2VyIGluIExFIG1vZGUgdG8gZ2V0IG1vcmUgcmFuZ2Ugb3Igc2F2ZSBwb3dlciBh
bmQgbGltaXQgcmFuZ2Ugd2hlbiB3YW50ZWQuDQo+Pg0KPj4gQnV0IEknbSByZWFsbHkgbm90IGZp
bmRpbmcgdGhpcyBpbmZvcm1hdGlvbiBvdXQgdGhlcmUhDQo+Pg0KPj4gSSBkb247dCB1bmRlcnN0
YW5kIHdoYXQgSSBhbSBkb2luZyB3cm9uZyBvciB3aHkgdGhpcyBpcyBzbyBkaWZmaWN1bHQNCj4+
IHRvIGZpbmQuICA6KQ0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+IE9uIDExIE9jdG9i
ZXIgMjAxNiBhdCAxNzo1MCwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9hZGJhbmQu
Y29tPiB3cm90ZToNCj4+PiBJcyB0aGlzIHRoaXMgbGlzdCBqdXN0IHNvbWUga2luZCBvZiBhdXRv
bWF0ZWQgcGF0Y2ggYW5ub3VuY2VtZW50IGxvZyBhbmQgbm90IGFuIGFjdHVhbCBtYWlsaW5nIGxp
c3Qgd2hlcmUgeW91IGNhbiBhc2sgYW55dGhpbmcgYWJvdXQgYmx1ZXRvb3RoLg0KPj4+IFRoaXMg
aXMgYWxsIEkgaGF2ZSBzZWVuIGhlcmUgZm9yIHRoZSBwYXN0IGZldyBkYXlzPw0KPj4+IFdoZXJl
IGNhbiBJIGFzayBhbiBhY3R1YWwgcXVlc3Rpb24gYWJvdXQgYmx1ZXRvb3RoPw0KPj4NCj4+IFRo
ZXJlIGFyZSBzb21lIHJlYWwgaHVtYW5zIGhlcmUgdG9vISAgOi0pDQo+Pg0KPj4gSWYgeW91IGxv
b2sgYmFjayBvbiB0aGUgYXJjaGl2ZSBvZiB0aGlzIGxpc3QgeW91IHdpbGwgc2VlIGEgbWl4dHVy
ZQ0KPj4gb2YgcXVlc3Rpb25zIGFuZCBwYXRjaCByZXF1ZXN0cy4NCj4+IG1hcmMuaW5mby8/bD1s
aW51eC1ibHVldG9vdGgNCj4+DQo+PiBJJ3ZlIGtlcHQgcXVpZXQgYXMgSSdtIG5vdCBzdXJlIEkg
Y2FuIGFuc3dlciBxdWVzdGlvbnMuIFRvIG9mZmVyIHNvbWUNCj4+IHNoYXJlZCBleHBlcmllbmNl
LCBJIGNhbiBzYXkgdGhhdCBJJ3ZlIGJlZW4gZXhwZXJpbWVudGluZyB3aXRoDQo+PiAoRWRkeXN0
b25lKSBiZWFjb25zIG9uIExpbnV4IHNpbmdsZSBib2FyZCBjb21wdXRlcnMgYWNjZXNzaW5nIEJs
dWVaDQo+PiB0aHJvdWdoIHRoZSBEQnVzIEFQSSB1c2luZyBQeXRob24uIEkgYWxzbyBoYXZlIG5v
dCBmb3VuZCBhIHdheSB0bw0KPj4gY2hhbmdlIHRoZSBwb3dlciBsZXZlbCBvZiBhZHZlcnRpc2Vt
ZW50cyBlaXRoZXIuIEZvciB3aGF0IEknbSBkb2luZywNCj4+IGp1c3QgbWFraW5nIHN1cmUgdGhl
IFRYIHBvd2VyIGluIHRoZSBFZGR5c3RvbmUgYWR2ZXJ0IG1hdGNoZXMgd2hhdA0KPj4gdGhlIGRv
bmdsZSBpcyBhY3R1YWxseSBicm9hZGNhc3RpbmcgaGFzIGJlZW4gZ29vZCBlbm91Z2guDQo+Pg0K
Pj4gU29ycnkgSSBjb3VsZG4ndCBiZSBvZiBtb3JlIGhlbHAuDQo+Pg0KPj4gUmVnYXJkcywNCj4+
IEJhcnJ5DQo+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gU3RldmUgR2xhZGRlbg0KPj4+DQo+
Pj4gTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCj4+PiBDb25uZWN0aW5nIFlvdXIgQnVzaW5l
c3MhDQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KPj4+ICsxIDI0
OC4zMjcuNDM4OSBGYXgNCj4+PiBzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20NCj4+PiB3d3cu
bWljaGlnYW5icm9hZGJhbmQuY29tDQo+Pj4NCj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fDQo+Pj4gRnJvbTogU3RldmUgR2xhZGRlbg0KPj4+IFNlbnQ6IFN1bmRh
eSwgT2N0b2JlciAwOSwgMjAxNiAxMjoxMSBQTQ0KPj4+IFRvOiBsaW51eC1ibHVldG9vdGhAdmdl
ci5rZXJuZWwub3JnDQo+Pj4gU3ViamVjdDogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2Vy
IGxldmVsIGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQo+Pj4NCj4+PiBI
aSwNCj4+PiBNeSBuYW1lIGlzIFN0ZXZlIGFuZCBJIGFtIGxvY2F0ZWQgaW4gQW5uIEFyYm9yIE1p
Y2hpZ2FuIFVTQS4NCj4+Pg0KPj4+IEkgYW0gbmV3ICBibHVldG9vdGggTEUgYW5kIGxhdGVseSBh
bSBvYnNlc3NlZCB3aXRoIEJsdWV0b290aCBMRSBiZWFjb25zIGFuZCB0cnlpbmcgdGhlbSBvdXQu
DQo+Pj4NCj4+PiBJIGhhdmUgcmVhZCBhcnRpY2xlIGFmdGVyIGFydGljbGUgYW5kIHBhZ2UgYWZ0
ZXIgcGFnZSBhYm91dCBob3cNCj4+PiBwZW9wbGUgaGF2ZSBzZXR1cCB1cCBiZWFjb25zIHdpdGgg
VVNCIEJUIDQuMCBpbnRlcmZhY2VzIGFzIHdlbGwgYXMgc2VyaWFsIGJsdWV0b290aCBib2FyZHMu
DQo+Pj4NCj4+PiBJIGFtIGN1cnJlbnRseSBleHBlcmltZW50aW5nIHdpdGggYSBiZWFjb24gcnVu
bmluZyBvbiBhIFJhc3BiZXJyeSBQaS1CIGFuZCB1c2luZyBhbiBleHRlcm5hbCBVU0IgQmx1ZXRv
b3RoIDQuMCBjbGFzcyAxIGRvbmdsZS4NCj4+Pg0KPj4+IE15IGZydXN0cmF0aW9uIGlzIHRoYXQg
SSBoYXZlIG5vdCBiZWVuIGFibGUgdG8gZmluZCBhbnkgdXNlZnVsDQo+Pj4gaW5mb3JtYXRpb24g
aW4gaG93IHRvIGNoYW5nZSB0aGUgVHJhbnNtaXR0ZXIgcG93ZXIgbGV2ZWwgd2hlbiBpbiBMRSBt
b2RlLg0KPj4+DQo+Pj4gVGhlIGRvbmdsZSBhcHBlYXJzIHRvIGJlIHdvcmtpbmcgYXQgZGVmYXVs
dCBsZXZlbCBiZWxvdyB6ZXJvIGRibS4NCj4+Pg0KPj4+IFRoZSB3aG9sZSBwb2ludCBvZiBidWls
ZGluZyB5b3VyIG93biBiZWFjb24gdGhpcyB3YXkgaXMgdG8gYmUgYWJsZQ0KPj4+IHRvIGN1c3Rv
bWl6ZSBpdCBhbmQgc2V0dGluZyB0aGUgcG93ZXIgbGV2ZWwgaXMgYW4gaW1wb3J0YW50IGtleSBp
dGVtIHRoYXQgc2hvdWxkIGJlIGVhc2lseSBhY2Nlc3NpYmxlIHlldCBJIGZpbmQgdGhhdCBOT0JP
RFkgZXZlciBldmVuIG1lbnRpb25zIGl0IGxldCBhbG9uZSBkbyB0aGV5IGV4cGxhaW4gb3IgcHJv
dmlkZSBhIHdheSB0byBzZXQgdGhlIHBvd2VyLg0KPj4+DQo+Pj4NCj4+PiBFdmVyeSB0ZXh0IHRo
YXQgSSBoYXZlIGZvdW5kIHRoYXQgZGV0YWlscyBiZWFjb24gc2V0dXBzIGZyb20gY29tbWFuZCBs
aW5lIG5ldmVyIGJvdGhlciB0byBtZW50aW9uIHNldHRpbmcgYmVhY29uIFRYIHBvd2VyLg0KPj4+
DQo+Pj4gQWxsIHRoZSBwYWdlcyBJIGhhdmUgZm91bmQgc2VlbSB0byBjb3B5IGVhY2ggb3RoZXIg
YW5kIHJlcGVhdCB0aGUNCj4+PiBzYW1lIGluZm9ybWF0aW9uIG92ZXIgJiBvdmVyIEJ1dCBuZXZl
ciBnZXQgYXJvdW5kIHRvIGV2ZW4gbWVudGlvbmluZyBvciBkaXNjdXNzaW5nIHNldHRpbmcgdGhl
IHBvd2VyIG91dHB1dCBsZXZlbCBvZiB0aGUgYmx1dG9vdGggZG9uZ2xlLg0KPj4+DQo+Pj4gc3Vk
byBoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRDIDAw
IDAyIDE1IFsNCj4+PiA5MiA3NyA4MyAwQSBCMiBFQiA0OSAwRiBBMSBERCA3RiBFMyA4QyA0OSAy
RSBERSBdIFsgMDAgMDAgXSBbIDAwIDAwDQo+Pj4gXQ0KPj4+IEM1IDAwDQo+Pj4NCj4+PiBUaGUg
Ynl0ZSBqdXN0IGxlZnQgb2YgdGhlIGxhc3Qgb25lIGlzIHRoZSAicmVwb3J0ZWQiIFRYIGxldmVs
IHRoYXQgeW91IGFyZSB0cmFuc21pdHRpbmcgYXQuDQo+Pj4gV2hpY2ggbWVhbnMgeW91J3JlIHN1
cHBvc2VkIHRvIGtub3cgKG9yIGd1ZXNzPykgd2hhdCBkYm0gbGV2ZWwgeW91IGFyZSBhY3R1YWxs
eSB0cmFuc21pdHRpbmcgYXQgYW5kIHNldCBpdCBoZXJlIHRvIGRpc3BsYXkgdG8gdGhlIHdvcmxk
IHdoYXQgeW91ciB0cmFuc21pdHRlciBsZXZlbCBpcyBzZXQgdG8gc28gdGhleSBjYW4gcmFuZ2Ug
KGd1ZXNzIG9yIGVzdGltYXRlIGRpc3RhbmNlIGZyb20gVFgpLg0KPj4+IFRoaXMgdmFsdWUgZG9l
cyBub3QgaW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0KPj4+DQo+
Pj4gUGxlYXNlIGhlbHAhIQ0KPj4+DQo+Pj4gQ291bGQgdXNlIGFueSBwb2ludGVycy4NCj4+Pg0K
Pj4+IEknbSBhIGhhcmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGlu
IHNvZnR3YXJlL3Byb2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8g
Z2V0IGNvbnRyb2wgb2YgdGhpcy4NCj4+Pg0KPj4+IEJlZW4gYXQgdGhpcyBmb3Igb3ZlciBhIHdl
ZWsgYW5kIGhhdmUgc29tZSB3b3JraW5nIGJlYWNvbnMgYnV0IG5vIGNvbnRyb2wgb2YgdHJhbnNt
aXQgcG93ZXIgbGV2ZWwuDQo+Pj4NCj4+PiBBbSB1c2luZyBUcmVuZG5ldCBVU0IgZG9uZ2xlcyB3
aGljaCBhcHBlYXIgdG8gdXNlIGEgQ2FtYnJpZGdlIENoaXAuICBCdXQgSSdtIG5vdCBleGFjdGx5
IHN1cmUgd2hpY2ggY2hpcC4NCj4+Pg0KPj4+DQo+Pj4gOn4jIGxzdXNiDQo+Pj4gQnVzIDAwMSBE
ZXZpY2UgMDA3OiBJRCAwYTEyOjAwMDEgQ2FtYnJpZGdlIFNpbGljb24gUmFkaW8sIEx0ZA0KPj4+
IEJsdWV0b290aCBEb25nbGUgKEhDSSBtb2RlKQ0KPj4+DQo+Pj4NCj4+PiByb290QHJhc3BiZXJy
eXBpOn4jIGhjaWNvbmZpZyBoY2kwDQo+Pj4gaGNpMDogICBUeXBlOiBCUi9FRFIgIEJ1czogVVNC
DQo+Pj4gICAgICAgICAgQkQgQWRkcmVzczogMDA6MTU6ODM6RUE6MEE6QjkgIEFDTCBNVFU6IDMx
MDoxMCAgU0NPIE1UVTogNjQ6OA0KPj4+ICAgICAgICAgIFVQIFJVTk5JTkcNCj4+PiAgICAgICAg
ICBSWCBieXRlczo3ODAgYWNsOjAgc2NvOjAgZXZlbnRzOjUwIGVycm9yczowDQo+Pj4gICAgICAg
ICAgVFggYnl0ZXM6MTExMCBhY2w6MCBzY286MCBjb21tYW5kczo1MCBlcnJvcnM6MA0KPj4+DQo+
Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+
DQo+Pj4NCj4+PiAtLQ0KPj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRo
ZSBsaW5lICJ1bnN1YnNjcmliZQ0KPj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2Yg
YSBtZXNzYWdlIHRvDQo+Pj4gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZyBNb3JlIG1ham9yZG9t
byBpbmZvIGF0DQo+Pj4gaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1s
DQo+PiAtLQ0KPj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUg
InVuc3Vic2NyaWJlDQo+PiBsaW51eC1ibHVldG9vdGgiIGluIHRoZSBib2R5IG9mIGEgbWVzc2Fn
ZSB0bw0KPj4gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZyBNb3JlIG1ham9yZG9tbyBpbmZvIGF0
DQo+PiBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCj4NCj4NCj4N
Cj4gLS0NCj4gLS0tLSBIaWV1IExlIC0tLQ0KPg0KPg0KPg0KPg0KPiAtLQ0KPg0KPiBKb3NlcGgg
U2h5aC1JbiBId2FuZw0KPiBFbWFpbDogam9zZXBoc2loQGdvb2dsZS5jb20NCj4NCj4gTiAgIHIg
eSAgIGIgWCDHp3YgXiAp3rp7Lm4gKyB7IG5bIC0gKSAgIHcqamcgHiAg3aJqLyAgIHog3pYgIDIg
3pkgICAmICnfoSBhDQo+ICAgfyAeIEcgIGggDyBqOit2IHcg2aUNCg0K

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-10-24 21:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-09 16:11 How can you set Transmit power level in Bluetooth LE mode for an LE beacon? Steve Gladden
2016-10-11 16:50 ` Steve Gladden
2016-10-11 17:38   ` Barry Byford
2016-10-11 17:52     ` Steve Gladden
2016-10-12  5:00       ` Hieu Le
2016-10-12  7:22         ` Johan Hedberg
2016-10-12 15:33         ` Steve Gladden
     [not found]           ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com>
2016-10-13 13:54             ` Steve Gladden
2016-10-16 21:56             ` Steve Gladden
2016-10-16 22:48               ` Jason Anderssen
2016-10-17  4:15                 ` Steve Gladden
2016-10-19  7:22                   ` Andrei Emeltchenko
     [not found]                 ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local>
2016-10-24 21:24                   ` Steve Gladden

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.