How to get Bluetooth Low Energy manufacturer's name
up vote
2
down vote
favorite
I'm learning about Bluetooth (and LE), and I'm writing simple desktop application for Windows 10 to communicate with different kinds of BLE fitness devices.
I have Bluetooth up and running and I can send and receive data, but I have a small problem; sometimes I don't get correct manufacturer name from "Manufacturer Name String". I need to know the manufacturer so that I can send manufacturer specific commands to the devices.
The problem seems to be related to different computer hardware and/or drivers, because the problem happens only on my friends computers, not on my computers. The devices I use don't support "PnP ID" and "System ID" so I can't use those to get needed information.
I also read somewhere that I can use MAC address to know the manufacturer, but the devices I use don't give me the address in a format that can be used to get Company Identifier.
What else can I use to get the manufacturer name and/or code?
bluetooth windows-10 bluetooth-lowenergy
add a comment |
up vote
2
down vote
favorite
I'm learning about Bluetooth (and LE), and I'm writing simple desktop application for Windows 10 to communicate with different kinds of BLE fitness devices.
I have Bluetooth up and running and I can send and receive data, but I have a small problem; sometimes I don't get correct manufacturer name from "Manufacturer Name String". I need to know the manufacturer so that I can send manufacturer specific commands to the devices.
The problem seems to be related to different computer hardware and/or drivers, because the problem happens only on my friends computers, not on my computers. The devices I use don't support "PnP ID" and "System ID" so I can't use those to get needed information.
I also read somewhere that I can use MAC address to know the manufacturer, but the devices I use don't give me the address in a format that can be used to get Company Identifier.
What else can I use to get the manufacturer name and/or code?
bluetooth windows-10 bluetooth-lowenergy
When you say I don't get the correct name, what exactly do you mean? I imagine, if this doesn't work, then the only thing you can do is use something like device model number (also available from the device information service) and cross reference that against some sort of database?
– Adam Mitchell
Nov 9 at 13:33
How it currently works is that I convert data from Manufacturer Name String to Hex and then to text, then set the text to upper case and check if it contains name of one of the Manufacturers. For some reason it doesn't work on all computers. Checking for model could work on some devices but not all of them, I tested it already.
– Jay El
Nov 9 at 14:19
When you say it doesn't work, do you mean that you can convert the string to text but it looks like nonsense? Sounds like an endianness issue between systems. Try dealing with the string in the opposite endianness on the machines that you're having an issue with and see what happens!
– Adam Mitchell
Nov 9 at 14:34
add a comment |
up vote
2
down vote
favorite
up vote
2
down vote
favorite
I'm learning about Bluetooth (and LE), and I'm writing simple desktop application for Windows 10 to communicate with different kinds of BLE fitness devices.
I have Bluetooth up and running and I can send and receive data, but I have a small problem; sometimes I don't get correct manufacturer name from "Manufacturer Name String". I need to know the manufacturer so that I can send manufacturer specific commands to the devices.
The problem seems to be related to different computer hardware and/or drivers, because the problem happens only on my friends computers, not on my computers. The devices I use don't support "PnP ID" and "System ID" so I can't use those to get needed information.
I also read somewhere that I can use MAC address to know the manufacturer, but the devices I use don't give me the address in a format that can be used to get Company Identifier.
What else can I use to get the manufacturer name and/or code?
bluetooth windows-10 bluetooth-lowenergy
I'm learning about Bluetooth (and LE), and I'm writing simple desktop application for Windows 10 to communicate with different kinds of BLE fitness devices.
I have Bluetooth up and running and I can send and receive data, but I have a small problem; sometimes I don't get correct manufacturer name from "Manufacturer Name String". I need to know the manufacturer so that I can send manufacturer specific commands to the devices.
The problem seems to be related to different computer hardware and/or drivers, because the problem happens only on my friends computers, not on my computers. The devices I use don't support "PnP ID" and "System ID" so I can't use those to get needed information.
I also read somewhere that I can use MAC address to know the manufacturer, but the devices I use don't give me the address in a format that can be used to get Company Identifier.
What else can I use to get the manufacturer name and/or code?
bluetooth windows-10 bluetooth-lowenergy
bluetooth windows-10 bluetooth-lowenergy
asked Nov 9 at 11:55
Jay El
111
111
When you say I don't get the correct name, what exactly do you mean? I imagine, if this doesn't work, then the only thing you can do is use something like device model number (also available from the device information service) and cross reference that against some sort of database?
– Adam Mitchell
Nov 9 at 13:33
How it currently works is that I convert data from Manufacturer Name String to Hex and then to text, then set the text to upper case and check if it contains name of one of the Manufacturers. For some reason it doesn't work on all computers. Checking for model could work on some devices but not all of them, I tested it already.
– Jay El
Nov 9 at 14:19
When you say it doesn't work, do you mean that you can convert the string to text but it looks like nonsense? Sounds like an endianness issue between systems. Try dealing with the string in the opposite endianness on the machines that you're having an issue with and see what happens!
– Adam Mitchell
Nov 9 at 14:34
add a comment |
When you say I don't get the correct name, what exactly do you mean? I imagine, if this doesn't work, then the only thing you can do is use something like device model number (also available from the device information service) and cross reference that against some sort of database?
– Adam Mitchell
Nov 9 at 13:33
How it currently works is that I convert data from Manufacturer Name String to Hex and then to text, then set the text to upper case and check if it contains name of one of the Manufacturers. For some reason it doesn't work on all computers. Checking for model could work on some devices but not all of them, I tested it already.
– Jay El
Nov 9 at 14:19
When you say it doesn't work, do you mean that you can convert the string to text but it looks like nonsense? Sounds like an endianness issue between systems. Try dealing with the string in the opposite endianness on the machines that you're having an issue with and see what happens!
– Adam Mitchell
Nov 9 at 14:34
When you say I don't get the correct name, what exactly do you mean? I imagine, if this doesn't work, then the only thing you can do is use something like device model number (also available from the device information service) and cross reference that against some sort of database?
– Adam Mitchell
Nov 9 at 13:33
When you say I don't get the correct name, what exactly do you mean? I imagine, if this doesn't work, then the only thing you can do is use something like device model number (also available from the device information service) and cross reference that against some sort of database?
– Adam Mitchell
Nov 9 at 13:33
How it currently works is that I convert data from Manufacturer Name String to Hex and then to text, then set the text to upper case and check if it contains name of one of the Manufacturers. For some reason it doesn't work on all computers. Checking for model could work on some devices but not all of them, I tested it already.
– Jay El
Nov 9 at 14:19
How it currently works is that I convert data from Manufacturer Name String to Hex and then to text, then set the text to upper case and check if it contains name of one of the Manufacturers. For some reason it doesn't work on all computers. Checking for model could work on some devices but not all of them, I tested it already.
– Jay El
Nov 9 at 14:19
When you say it doesn't work, do you mean that you can convert the string to text but it looks like nonsense? Sounds like an endianness issue between systems. Try dealing with the string in the opposite endianness on the machines that you're having an issue with and see what happens!
– Adam Mitchell
Nov 9 at 14:34
When you say it doesn't work, do you mean that you can convert the string to text but it looks like nonsense? Sounds like an endianness issue between systems. Try dealing with the string in the opposite endianness on the machines that you're having an issue with and see what happens!
– Adam Mitchell
Nov 9 at 14:34
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
Looking at the MAC address will probably be very unreliable, as many BTLE devices use a random MAC address for privacy reasons.
However, there is also the UUID of the individual BTLE characteristics, which contains a manufacturer code. See here for a list: https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members (note that this applies to shortened 16-bit UUIDs, not to the full 128-bit ones).
Thanks for the answer, but unfortunately the manufacturer isn't listed on that page.
– Jay El
Nov 9 at 13:25
add a comment |
up vote
0
down vote
If the advertising data contains a manufacturer data record, the 16-bit manufacturer id can be looked up here:
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Looking at the MAC address will probably be very unreliable, as many BTLE devices use a random MAC address for privacy reasons.
However, there is also the UUID of the individual BTLE characteristics, which contains a manufacturer code. See here for a list: https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members (note that this applies to shortened 16-bit UUIDs, not to the full 128-bit ones).
Thanks for the answer, but unfortunately the manufacturer isn't listed on that page.
– Jay El
Nov 9 at 13:25
add a comment |
up vote
0
down vote
Looking at the MAC address will probably be very unreliable, as many BTLE devices use a random MAC address for privacy reasons.
However, there is also the UUID of the individual BTLE characteristics, which contains a manufacturer code. See here for a list: https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members (note that this applies to shortened 16-bit UUIDs, not to the full 128-bit ones).
Thanks for the answer, but unfortunately the manufacturer isn't listed on that page.
– Jay El
Nov 9 at 13:25
add a comment |
up vote
0
down vote
up vote
0
down vote
Looking at the MAC address will probably be very unreliable, as many BTLE devices use a random MAC address for privacy reasons.
However, there is also the UUID of the individual BTLE characteristics, which contains a manufacturer code. See here for a list: https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members (note that this applies to shortened 16-bit UUIDs, not to the full 128-bit ones).
Looking at the MAC address will probably be very unreliable, as many BTLE devices use a random MAC address for privacy reasons.
However, there is also the UUID of the individual BTLE characteristics, which contains a manufacturer code. See here for a list: https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members (note that this applies to shortened 16-bit UUIDs, not to the full 128-bit ones).
answered Nov 9 at 13:12
Florian Echtler
401314
401314
Thanks for the answer, but unfortunately the manufacturer isn't listed on that page.
– Jay El
Nov 9 at 13:25
add a comment |
Thanks for the answer, but unfortunately the manufacturer isn't listed on that page.
– Jay El
Nov 9 at 13:25
Thanks for the answer, but unfortunately the manufacturer isn't listed on that page.
– Jay El
Nov 9 at 13:25
Thanks for the answer, but unfortunately the manufacturer isn't listed on that page.
– Jay El
Nov 9 at 13:25
add a comment |
up vote
0
down vote
If the advertising data contains a manufacturer data record, the 16-bit manufacturer id can be looked up here:
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
add a comment |
up vote
0
down vote
If the advertising data contains a manufacturer data record, the 16-bit manufacturer id can be looked up here:
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
add a comment |
up vote
0
down vote
up vote
0
down vote
If the advertising data contains a manufacturer data record, the 16-bit manufacturer id can be looked up here:
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
If the advertising data contains a manufacturer data record, the 16-bit manufacturer id can be looked up here:
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
answered Nov 11 at 11:06
Emil
5,55921123
5,55921123
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53225274%2fhow-to-get-bluetooth-low-energy-manufacturers-name%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
When you say I don't get the correct name, what exactly do you mean? I imagine, if this doesn't work, then the only thing you can do is use something like device model number (also available from the device information service) and cross reference that against some sort of database?
– Adam Mitchell
Nov 9 at 13:33
How it currently works is that I convert data from Manufacturer Name String to Hex and then to text, then set the text to upper case and check if it contains name of one of the Manufacturers. For some reason it doesn't work on all computers. Checking for model could work on some devices but not all of them, I tested it already.
– Jay El
Nov 9 at 14:19
When you say it doesn't work, do you mean that you can convert the string to text but it looks like nonsense? Sounds like an endianness issue between systems. Try dealing with the string in the opposite endianness on the machines that you're having an issue with and see what happens!
– Adam Mitchell
Nov 9 at 14:34