27" Apple Thunderbolt Display + Win 8.1 64x -> "Unable to open Cinema display USB HID device. Please make sure any other program using the device are closed."

Issue #42 invalid
Former user created an issue

Hi I tried install Brightness Controller 1.4.4(didn't work) then 1.5.5 Beta, but still doesn't work. I think the issue is probably new hardware of the display.

This is Gather HID Information :

<?xml version="1.0" encoding="utf-16"?> <ArrayOfHidDeviceInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <HidDeviceInfo> <Path>\?\hid#vid_05ac&pid_0252&mi_01&col02#9&286e8e30&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}</Path> <ProductString>Touchpad</ProductString> <ManufacturerString>Apple Inc.</ManufacturerString> <HidAttributes> <Size>12</Size> <VendorID>1452</VendorID> <ProductID>594</ProductID> <VersionNumber>537</VersionNumber> </HidAttributes> <HidCaps> <Usage>1</Usage> <UsagePage>255</UsagePage> <InputReportByteLength>64</InputReportByteLength> <OutputReportByteLength>0</OutputReportByteLength> <FeatureReportByteLength>17</FeatureReportByteLength> <Reserved> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> </Reserved> <NumberLinkCollectionNodes>1</NumberLinkCollectionNodes> <NumberInputButtonCaps>1</NumberInputButtonCaps> <NumberInputValueCaps>0</NumberInputValueCaps> <NumberInputDataIndices>1</NumberInputDataIndices> <NumberOutputButtonCaps>0</NumberOutputButtonCaps> <NumberOutputValueCaps>0</NumberOutputValueCaps> <NumberOutputDataIndices>0</NumberOutputDataIndices> <NumberFeatureButtonCaps>0</NumberFeatureButtonCaps> <NumberFeatureValueCaps>1</NumberFeatureValueCaps> <NumberFeatureDataIndices>1</NumberFeatureDataIndices> </HidCaps> <FeatureValueCaps> <HidValueCaps> <UsagePage>255</UsagePage> <ReportID>68</ReportID> <IsAlias>false</IsAlias> <BitField>2</BitField> <LinkCollection>0</LinkCollection> <LinkUsage>1</LinkUsage> <LinkUsagePage>255</LinkUsagePage> <IsRange>false</IsRange> <IsStringRange>false</IsStringRange> <IsDesignatorRange>false</IsDesignatorRange> <IsAbsolute>true</IsAbsolute> <HasNull>false</HasNull> <Reserved>0</Reserved> <BitSize>8</BitSize> <ReportCount>16</ReportCount> <Reserved2> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> <unsignedShort>0</unsignedShort> </Reserved2> <UnitsExp>0</UnitsExp> <Units>0</Units> <LogicalMin>-128</LogicalMin> <LogicalMax>127</LogicalMax> <PhysicalMin>0</PhysicalMin> <PhysicalMax>-1</PhysicalMax> <UsageMin>4</UsageMin> <UsageMax>4</UsageMax> <StringMin>0</StringMin> <StringMax>0</StringMax> <DesignatorMin>0</DesignatorMin> <DesignatorMax>0</DesignatorMax> <DataIndexMin>0</DataIndexMin> <DataIndexMax>0</DataIndexMax> </HidValueCaps> </FeatureValueCaps> <InputButtonCaps> <HidButtonCaps> <UsagePage>255</UsagePage> <ReportID>68</ReportID> <IsAlias>false</IsAlias> <BitField>0</BitField> <LinkCollection>0</LinkCollection> <LinkUsage>1</LinkUsage> <LinkUsagePage>255</LinkUsagePage> <IsRange>false</IsRange> <IsStringRange>false</IsStringRange> <IsDesignatorRange>false</IsDesignatorRange> <IsAbsolute>true</IsAbsolute> <Reserved> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> <unsignedInt>0</unsignedInt> </Reserved> <UsageMin>2</UsageMin> <UsageMax>2</UsageMax> <StringMin>0</StringMin> <StringMax>0</StringMax> <DesignatorMin>0</DesignatorMin> <DesignatorMax>0</DesignatorMax> <DataIndexMin>0</DataIndexMin> <DataIndexMax>0</DataIndexMax> </HidButtonCaps> </InputButtonCaps> </HidDeviceInfo> </ArrayOfHidDeviceInfo>

Thanks in advance

Comments (3)

  1. Jens Holst Schumacher repo owner

    Formatted that would be.

    <?xml version="1.0" encoding="UTF-8"?>
    <ArrayOfHidDeviceInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <HidDeviceInfo>
          <Path>\?\hid#vid_05ac&pid_0252&mi_01&col02#9&286e8e30&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}</Path>
          <ProductString>Touchpad</ProductString>
          <ManufacturerString>Apple Inc.</ManufacturerString>
          <HidAttributes>
             <Size>12</Size>
             <VendorID>1452</VendorID>
             <ProductID>594</ProductID>
             <VersionNumber>537</VersionNumber>
          </HidAttributes>
          <HidCaps>
             <Usage>1</Usage>
             <UsagePage>255</UsagePage>
             <InputReportByteLength>64</InputReportByteLength>
             <OutputReportByteLength>0</OutputReportByteLength>
             <FeatureReportByteLength>17</FeatureReportByteLength>
             <Reserved>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
                <unsignedShort>0</unsignedShort>
             </Reserved>
             <NumberLinkCollectionNodes>1</NumberLinkCollectionNodes>
             <NumberInputButtonCaps>1</NumberInputButtonCaps>
             <NumberInputValueCaps>0</NumberInputValueCaps>
             <NumberInputDataIndices>1</NumberInputDataIndices>
             <NumberOutputButtonCaps>0</NumberOutputButtonCaps>
             <NumberOutputValueCaps>0</NumberOutputValueCaps>
             <NumberOutputDataIndices>0</NumberOutputDataIndices>
             <NumberFeatureButtonCaps>0</NumberFeatureButtonCaps>
             <NumberFeatureValueCaps>1</NumberFeatureValueCaps>
             <NumberFeatureDataIndices>1</NumberFeatureDataIndices>
          </HidCaps>
          <FeatureValueCaps>
             <HidValueCaps>
                <UsagePage>255</UsagePage>
                <ReportID>68</ReportID>
                <IsAlias>false</IsAlias>
                <BitField>2</BitField>
                <LinkCollection>0</LinkCollection>
                <LinkUsage>1</LinkUsage>
                <LinkUsagePage>255</LinkUsagePage>
                <IsRange>false</IsRange>
                <IsStringRange>false</IsStringRange>
                <IsDesignatorRange>false</IsDesignatorRange>
                <IsAbsolute>true</IsAbsolute>
                <HasNull>false</HasNull>
                <Reserved>0</Reserved>
                <BitSize>8</BitSize>
                <ReportCount>16</ReportCount>
                <Reserved2>
                   <unsignedShort>0</unsignedShort>
                   <unsignedShort>0</unsignedShort>
                   <unsignedShort>0</unsignedShort>
                   <unsignedShort>0</unsignedShort>
                   <unsignedShort>0</unsignedShort>
                </Reserved2>
                <UnitsExp>0</UnitsExp>
                <Units>0</Units>
                <LogicalMin>-128</LogicalMin>
                <LogicalMax>127</LogicalMax>
                <PhysicalMin>0</PhysicalMin>
                <PhysicalMax>-1</PhysicalMax>
                <UsageMin>4</UsageMin>
                <UsageMax>4</UsageMax>
                <StringMin>0</StringMin>
                <StringMax>0</StringMax>
                <DesignatorMin>0</DesignatorMin>
                <DesignatorMax>0</DesignatorMax>
                <DataIndexMin>0</DataIndexMin>
                <DataIndexMax>0</DataIndexMax>
             </HidValueCaps>
          </FeatureValueCaps>
          <InputButtonCaps>
             <HidButtonCaps>
                <UsagePage>255</UsagePage>
                <ReportID>68</ReportID>
                <IsAlias>false</IsAlias>
                <BitField>0</BitField>
                <LinkCollection>0</LinkCollection>
                <LinkUsage>1</LinkUsage>
                <LinkUsagePage>255</LinkUsagePage>
                <IsRange>false</IsRange>
                <IsStringRange>false</IsStringRange>
                <IsDesignatorRange>false</IsDesignatorRange>
                <IsAbsolute>true</IsAbsolute>
                <Reserved>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                   <unsignedInt>0</unsignedInt>
                </Reserved>
                <UsageMin>2</UsageMin>
                <UsageMax>2</UsageMax>
                <StringMin>0</StringMin>
                <StringMax>0</StringMax>
                <DesignatorMin>0</DesignatorMin>
                <DesignatorMax>0</DesignatorMax>
                <DataIndexMin>0</DataIndexMin>
                <DataIndexMax>0</DataIndexMax>
             </HidButtonCaps>
          </InputButtonCaps>
       </HidDeviceInfo>
    </ArrayOfHidDeviceInfo>
    
  2. Jens Holst Schumacher repo owner

    The posted HID device appears to be a Touchpad <ProductString>Touchpad</ProductString> <ManufacturerString>Apple Inc.</ManufacturerString>

    Anyway. If the brightness controller says "Unable to open Cinema display USB HID device. Please make sure any other program using the device are closed." then it has detected a compatible device but was unable to open it. compatible devices are detected by vendor and device id. Probably the only supported thunderbolt model <VendorID>1452</VendorID> <ProductID>37415</ProductID>.

    It is possible to enumerate the full list of all Hid devices in windows. The enumeration only returns the path. like <Path>\?\hid#vid_05ac&pid_9227#e&14cecad&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}</Path> the vendor id and product id can be parsed from that path vid_05ac&pid_9227 (hex values).

    When a compatible device is detected brightness controller attempts to open that HID device the much the same way other programs create a read/write file handle. If it fails the most likely scenario is that another program has allready opened that device. Like an apple inc bootcamp driver/ control panel or something along those lines.

    When you use the gather HID information brightness controller attempts to blindly open all hid devices on the machine and read the capabilities of those devices and the only device on your machine that does not appear to be locked by another program is a Touchpad :-(

  3. Log in to comment