Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Support for Toshiba bluetooth stack #2419

nvaccessAuto opened this Issue Jun 8, 2012 · 18 comments


None yet
2 participants

Reported by jteh on 2012-06-08 08:02
When enumerating com ports (e.g. in braille display drivers), our hwPortUtils module can retrieve the names of any bluetooth devices it encounters if the system is using the Microsoft bluetooth stack. This needs to be supported for the Toshiba bluetooth stack as well.

Unfortunately, I have no idea how to do this at present.

Comment 1 by Ulf on 2012-06-15 15:01
I have fond a free Sourcecode (C++) at http://www.naughter.com/enumser.html that enums the coms. In the setupapi1-section all available C>OMs are listed (on my PCs) I have an Avantalk bluetooth stick, but don't know what stack.

Comment 2 by jteh on 2012-06-17 06:29
hwPortUtils uses setupapi itself. I'm not sure why hwPortUtils is missing your bluetooth ports.

The second problem is that even if we do find the port, we need a way to get the name of the associated bluetooth device. That is specific to the bluetooth stack.

Comment 3 by jteh on 2012-12-07 06:09
I was able to install the Toshiba bluetooth stack on my system. For reference, I downloaded it from here; I'm not sure where to download it from Toshiba for non-Toshiba systems if that's even possible.

I've implemented support for it in e4fc30c. Note that what I'm doing is undocumented. I figured it out by manually inspecting the registry. I'd appreciate it if others who use this stack could test with displays and report.

If it doesn't work, please do the following:

  1. Open the NVDA Python console with NVDA+control+z.
  2. Copy and paste the following line:
 import hwPortUtils as hu, api; api.copyToClip(unicode(list(hu.listComPorts())))
  1. Press enter.
  2. Paste your clipboard into your reply.
    Milestone changed from None to 2013.1

Comment 4 by jteh on 2012-12-07 06:19
Leaving open until at least one other user confirms that this works.

Comment 5 by nvdakor on 2012-12-07 06:24
Can you merge the new feature into braillePorts branch so I can confirm that it works while connecting my Apex via Toshiba stack? Thanks.

Comment 6 by jteh on 2012-12-07 06:36

Comment 7 by nvdakor on 2012-12-07 07:01
Here's the output I get:
[u'BT Port (COM1)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM1'}, {'friendlyName': u'BT Port (COM11)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM11'}, {'friendlyName': u'BT Port (COM22)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM22'}, {'friendlyName': u'BT Port (COM6)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM6'}, {'friendlyName': u'BT Port (COM13)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM13'}, {'friendlyName': u'BT Port (COM10)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM10'}, {'friendlyName': u'BT Port (COM21)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM21'}, {'friendlyName': u'BT Port (COM12)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM12'}, {'friendlyName': u'BT Port (COM7)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM7'}, {'friendlyName': u'BT Port (COM20)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM20'}, {'friendlyName': u'BT Port (COM14)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM14'}]({'friendlyName':)
This is with Toshiba Bluetooth Stack under Windows 8.

Comment 8 by nvdakor on 2012-12-07 07:04
Don't worry about comment 7 (unless if it would be useful) - the correct output of the console command line was "true".

Comment 9 by jteh on 2012-12-07 07:33
comment:7 was the output I wanted. Unfortunately, it seems my code doesn't work on your system, so I guess this only works for some versions of the stack or something. Damn!

Did you do anything special when you added the device? For example, did you use the express mode or did you customise the COM port for the device? Did you check the option for it to be available to all users or did you leave that unchecked?

What version of the Toshiba stack are you using?

Finally, how comfortable are you with poking around the registry using regedit?

Comment 10 by nvdakor on 2012-12-07 07:48
I'm using Bluetooth Stack for Windows by Toshiba version 7.00 (which I downloaded from Toshiba Support site for my laptop (Satellite U400). I'm using the stack version designed for Windows 7, which works well under Windows 8.
When I added Apex, I used custom mode and did tell the stack to use a custom com port (com1). Under services list, there were two services which Apex exposed: PAN and serial port. Using the instructions posted on Humanware's website, I chose serial port service and told the stack to share the pairing info with all users.
And yes, I'm comfortable with probing the registry using regedit.

Comment 11 by jteh on 2012-12-07 08:04
Okay. The simplest way is probably to export everything from these registry keys to a file so I can see how it looks on your system:

  • HKEY_CURRENT_USER\Software\Toshiba\BluetoothStack
  • HKEY_LOCAL_MACHINE\Software\Toshiba\BluetoothStack
  • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Toshiba\BluetoothStack
    You may wish to email these to me privately if you're concerned about security, as I'm not sure whether they contain any sensitive data.

Attachment HKCU_toshiba_bluetooth_stack_keys.txt added by nvdakor on 2012-12-07 08:13
Registry export of HKCU\Software\Toshiba\Bluetooth_stack.

Attachment HKLM_toshiba_bluetooth_stack_keys.txt added by nvdakor on 2012-12-07 08:14
Registry export of HKLM\Software\Toshiba\Bluetooth_stack.

Comment 12 by nvdakor on 2012-12-07 08:15
Attached the exports of the first two values, as I'm running 32-bit version of Win8.

Comment 13 by jteh on 2012-12-07 08:24
The data is exactly as i expected, so I don't understand why this doesn't work.

Can you please paste the output of the following Python console command:

import hwPortUtils as hu; hu.getToshibaBluetoothPortInfo(u"COM1")

Thanks for your help.

Comment 14 by jteh on 2012-12-07 08:43
Ah! I think I found the bug. Merged in braillePorts,5626.

Comment 15 by nvdakor on 2012-12-07 09:04
Success - when I pasted the command line text in Python console, it did report my Apex's name (APEX000723), and under braille settings, Bluetooth and automatic finally shows up. Thanks.

Comment 16 by jteh on 2012-12-07 10:45
State: closed

@nvaccessAuto nvaccessAuto added this to the 2013.1 milestone Nov 10, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment