This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Device advertised as mouse/keyboard, but after bonded it became heart rate device?

I am using RedBearLab Blend v1.0. I ran the HID_template and HID_keyboard_template. I can see the device in Win10 advertised as joystick and keyboard. Then I tried to modified the hid_mouse_batt_nordic_works.xml and generate a new configuration as mouse/keyboard with nRFgo. During advertising, Win10 sees the device as mouse/keyboard, but after bonded, it turns into a heart rate device. I am still not very clear about the nRF8001 configuration, especially how to generate the Default Value in Report Map. Can someone help to explain it more clearly? Many thanks!

Here is the generated xml (also uploaded as attachment),

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE AttributeServer>
<Profile Version="1.3">
    <SetupId>26681</SetupId>
    <Device>nRF8001_Dx</Device>
    <Service Type="local" PrimaryService="true">
        <Name>Battery</Name>
        <Uuid>180f</Uuid>
        <Characteristic>
            <Name>Battery Level</Name>
            <Uuid>2a19</Uuid>
            <DefaultValue>32</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>1</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>true</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>true</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>Battery Power State</Name>
            <Uuid>2a1a</Uuid>
            <DefaultValue>2F</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>1</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>false</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>true</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
    </Service>
    <Service Type="local" PrimaryService="true">
        <Name>HID Service</Name>
        <Uuid>1812</Uuid>
        <Characteristic>
            <Name>HID Information</Name>
            <Uuid>2a4a</Uuid>
            <DefaultValue>11010001</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>4</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>false</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>false</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>HID Protocol Mode</Name>
            <Uuid>2a4e</Uuid>
            <DefaultValue>01</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>1</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>true</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>false</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>true</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>HID Control Point</Name>
            <Uuid>2a4c</Uuid>
            <DefaultValue></DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>1</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>true</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>false</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>false</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>Report Map</Name>
            <Uuid>2a4b</Uuid>
            <DefaultValue>05010902A10185010901A1009505750105091901290515002501810295017503810175089501050109381581257F8106050C0A380295018106C085020901A100750C95020501093009311601F826FF078106C0C0050C0901A1018503150025017501950109CD81060A8301810609B5810609B6810609EA810609E981060A250281060A24028106C0</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>136</MaxDataLength>
            <AttributeLenType>2</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>false</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>false</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>HID Report ID1</Name>
            <Uuid>2a4d</Uuid>
            <DefaultValue></DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>3</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>true</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>true</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <ProfileDescriptors>
                <ProfileDescriptor Name="Report Reference" MaxDataLength="2" DefaultValue="0101" AttributeLenType="1">
                    <ForceOpen>false</ForceOpen>
                    <forceEncryption>false</forceEncryption>
                    <Properties>
                        <Write>false</Write>
                        <Read>true</Read>
                    </Properties>
                    <Uuid>2908</Uuid>
                    <SetPipe>false</SetPipe>
                    <AckIsAuto>true</AckIsAuto>
                </ProfileDescriptor>
            </ProfileDescriptors>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>HID Report ID2</Name>
            <Uuid>2a4d</Uuid>
            <DefaultValue></DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>3</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>true</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>true</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <ProfileDescriptors>
                <ProfileDescriptor Name="Report Reference" MaxDataLength="2" DefaultValue="0201" AttributeLenType="1">
                    <ForceOpen>false</ForceOpen>
                    <forceEncryption>false</forceEncryption>
                    <Properties>
                        <Write>false</Write>
                        <Read>true</Read>
                    </Properties>
                    <Uuid>2908</Uuid>
                    <SetPipe>false</SetPipe>
                    <AckIsAuto>true</AckIsAuto>
                </ProfileDescriptor>
            </ProfileDescriptors>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>Boot Mouse Input Report</Name>
            <Uuid>2a33</Uuid>
            <DefaultValue>000000</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>3</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>true</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>false</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>Boot Keyboard Input Report</Name>
            <Uuid>2a22</Uuid>
            <DefaultValue>0000000000000000</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>8</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>true</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>true</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
    </Service>
    <Service Type="local" PrimaryService="true">
        <Name>Scan Parameters Service</Name>
        <Uuid>1813</Uuid>
        <Characteristic>
            <Name>Scan Interval Window</Name>
            <Uuid>2a4f</Uuid>
            <DefaultValue></DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>4</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>true</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>false</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>false</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>Scan Param Refresh Characteristic</Name>
            <Uuid>2a31</Uuid>
            <DefaultValue></DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>1</MaxDataLength>
            <AttributeLenType>2</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>true</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>false</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
    </Service>
    <Service Type="local" PrimaryService="true">
        <Name>Device Information</Name>
        <Uuid>180a</Uuid>
        <Characteristic>
            <Name>PNP_ID</Name>
            <Uuid>2a50</Uuid>
            <DefaultValue>021519DDDD0100</DefaultValue>
            <UsePresentationFormat>0</UsePresentationFormat>
            <MaxDataLength>7</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>false</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>false</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="1" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
        <Characteristic>
            <Name>Hardware Revision String</Name>
            <Uuid>2a27</Uuid>
            <DefaultValue>Bx</DefaultValue>
            <UsePresentationFormat>1</UsePresentationFormat>
            <MaxDataLength>2</MaxDataLength>
            <AttributeLenType>1</AttributeLenType>
            <ForceOpen>false</ForceOpen>
            <ForceEncryption>false</ForceEncryption>
            <Properties>
                <WriteWithoutResponse>false</WriteWithoutResponse>
                <Write>false</Write>
                <Notify>true</Notify>
                <Indicate>false</Indicate>
                <Broadcast>false</Broadcast>
            </Properties>
            <SetPipe>true</SetPipe>
            <AckIsAuto>false</AckIsAuto>
            <PresentationFormatDescriptor Value="0000" Exponent="0" Format="25" NameSpace="01" Unit="0000"/>
            <PeriodForReadingThisCharacteristic>0</PeriodForReadingThisCharacteristic>
            <PeriodForProperties/>
        </Characteristic>
    </Service>
    <Gapsettings>
        <Name>mouseboard</Name>
        <DeviceNameWriteLength>15</DeviceNameWriteLength>
        <LocalPipeOnDeviceName>false</LocalPipeOnDeviceName>
        <DeviceNameShortLength>0</DeviceNameShortLength>
        <Apperance>0302</Apperance>
        <SecurityLevel>1</SecurityLevel>
        <AuthenticationReq>0</AuthenticationReq>
        <IoCapabilities>0</IoCapabilities>
        <BondTimeout>600</BondTimeout>
        <SecurityRequestDelay>5</SecurityRequestDelay>
        <MinimumKeySize>7</MinimumKeySize>
        <MaximumKeySize>16</MaximumKeySize>
        <AdvertisingDataBondedBitmap>201f</AdvertisingDataBondedBitmap>
        <AdvertisingDataGeneralBitmap>10</AdvertisingDataGeneralBitmap>
        <AdvertisingDataBrodcastBitmap>0</AdvertisingDataBrodcastBitmap>
        <AdvertisingDataBondedScanResponseBitmap>0</AdvertisingDataBondedScanResponseBitmap>
        <AdvertisingDataGeneralScanResponseBitmap>0</AdvertisingDataGeneralScanResponseBitmap>
        <AdvertisingDataBrodcastScanResponseBitmap>0</AdvertisingDataBrodcastScanResponseBitmap>
        <AdvertisingDataBondedBitmapCustom>1</AdvertisingDataBondedBitmapCustom>
        <AdvertisingDataGeneralBitmapCustom>0</AdvertisingDataGeneralBitmapCustom>
        <AdvertisingDataBrodcastBitmapCustom>0</AdvertisingDataBrodcastBitmapCustom>
        <AdvertisingDataBondedScanResponseBitmapCustom>0</AdvertisingDataBondedScanResponseBitmapCustom>
        <AdvertisingDataGeneralScanResponseBitmapCustom>0</AdvertisingDataGeneralScanResponseBitmapCustom>
        <AdvertisingDataBrodcastScanResponseBitmapCustom>0</AdvertisingDataBrodcastScanResponseBitmapCustom>
        <TxPowerLevelOffset>0</TxPowerLevelOffset>
        <MinimumConnectionInterval>6</MinimumConnectionInterval>
        <MaximumConnectionInterval>24</MaximumConnectionInterval>
        <SlaveLatency>6</SlaveLatency>
        <TimeoutMultipler>100</TimeoutMultipler>
        <AddServiceUpdateCharacteristic>false</AddServiceUpdateCharacteristic>
        <AddServiceUpdateCharacteristicPipe>false</AddServiceUpdateCharacteristicPipe>
        <TimingChangeDelay>5</TimingChangeDelay>
        <ServiceToAdvertise>
            <Uuid>1812</Uuid>
        </ServiceToAdvertise>
        <CustomAdTypes>
            <AdType index="1">
                <Type>19</Type>
                <Value>c003</Value>
            </AdType>
            <AdType index="2">
                <Type>0</Type>
                <Value></Value>
            </AdType>
        </CustomAdTypes>
    </Gapsettings>
    <Hardwaresettings>
        <Clocksource>1</Clocksource>
        <ClockAccuracy>1</ClockAccuracy>
        <InitialTxPower>3</InitialTxPower>
        <HfClkSource>0</HfClkSource>
        <DcDcConverter>0</DcDcConverter>
        <ActiveSignalModeIndex>0</ActiveSignalModeIndex>
        <ActiveSignalToTickDistance>0</ActiveSignalToTickDistance>
        <DynamicWindowLimitingEnabled>true</DynamicWindowLimitingEnabled>
    </Hardwaresettings>
    <CurrentInput>
        <BatteryCharge>220</BatteryCharge>
        <Master32KhzClockAccuracy>10</Master32KhzClockAccuracy>
        <ConnectionInterval>1000</ConnectionInterval>
        <PercentOfTimeSleeping>0</PercentOfTimeSleeping>
        <PercentOfTimeAdvertising>0</PercentOfTimeAdvertising>
        <AdvertisingInterval>1280</AdvertisingInterval>
    </CurrentInput>
</Profile>

`hid_mouseboard.xml

Related