2016-10-16 21:56:49

by Steve Gladden

[permalink] [raw]
Subject: RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?

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=


2016-10-19 07:22:38

by Andrei Emeltchenko

[permalink] [raw]
Subject: Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?

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
> [email protected]
> http://www.michiganbroadband.com
>=20
> -----Original Message-----
> From: Jason Anderssen [mailto:[email protected]]
> Sent: Sunday, October 16, 2016 6:49 PM
> To: Steve Gladden
> Cc: Joseph Hwang; Hieu Le; Barry Byford; [email protected]
> 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 <[email protected]>=
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
> > [email protected]
> > http://www.michiganbroadband.com
> >
> > From: Joseph Hwang [mailto:[email protected]]
> > Sent: Wednesday, October 12, 2016 11:55 AM
> > To: Steve Gladden
> > Cc: Hieu Le; Barry Byford; [email protected]
> > 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
> > [email protected]
> > http://www.michiganbroadband.com
> >
> > -----Original Message-----
> > From: Hieu Le [mailto:[email protected]]
> > Sent: Wednesday, October 12, 2016 1:00 AM
> > To: Steve Gladden
> > Cc: Barry Byford; [email protected]
> > 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 <[email protected]=
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
> >>> [email protected]
> >>> http://www.michiganbroadband.com
> >>>
> >>> ________________________________________
> >>> From: Steve Gladden
> >>> Sent: Sunday, October 09, 2016 12:11 PM
> >>> To: [email protected]
> >>> 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
> >>> [email protected] 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
> >> [email protected] More majordomo info at
> >> http://vger.kernel.org/majordomo-info.html
> >
> >
> >
> > --
> > ---- Hieu Le ---
> >
> >
> >
> >
> > --
> >
> > Joseph Shyh-In Hwang
> > Email: [email protected]
> >
> > 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

2016-10-17 04:15:40

by Steve Gladden

[permalink] [raw]
Subject: RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?

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==

2016-10-16 22:48:57

by Jason Anderssen

[permalink] [raw]
Subject: Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon?

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 <[email protected]> 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
> [email protected]
> http://www.michiganbroadband.com
>
> From: Joseph Hwang [mailto:[email protected]]
> Sent: Wednesday, October 12, 2016 11:55 AM
> To: Steve Gladden
> Cc: Hieu Le; Barry Byford; [email protected]
> 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 <[email protected]> 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
> [email protected]
> http://www.michiganbroadband.com
>
> -----Original Message-----
> From: Hieu Le [mailto:[email protected]]
> Sent: Wednesday, October 12, 2016 1:00 AM
> To: Steve Gladden
> Cc: Barry Byford; [email protected]
> 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 <[email protected]> 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 <[email protected]> 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
>>> [email protected]
>>> http://www.michiganbroadband.com
>>>
>>> ________________________________________
>>> From: Steve Gladden
>>> Sent: Sunday, October 09, 2016 12:11 PM
>>> To: [email protected]
>>> 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
>>> [email protected] 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 [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> ---- Hieu Le ---
>
>
>
>
> --
>
> Joseph Shyh-In Hwang
> Email: [email protected]
>
> N���r�y���b�X�ǧv�^�)޺{.n�+�{�n[�-�)���w*jg���ݢj/���z�ޖ��2�ޙ���&�)ߡ�a����G��h��j:+v�w�٥