Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

RemoTI-1.4.0 ZRC Dongle

From Texas Instruments Wiki
Jump to: navigation, search

This page describes the ZRC2.0 Dongle sample application that comes as part of the RemoTI-1.4.0 installer. It runs on the CC2531 USB Dongle hardware which is part of the RF4CE Development Kit.

Features

The following summarizes the features of the RemoTI ZRC Dongle application:

  • Compliance with ZigBee ZRC2.0 profile 
  • Communication over HID with Target Emulator
  • HID-compliant mouse and keyboard
  • HID-compliant Consumer Control; convert HDMI-CEC to HID
  • Two activity LEDs

Quick Start

CC2533-RF4CE-Kit-Pairing.jpg

The kit comes programmed with firmware from the previous release of RemoTI. To use the updated features of ZRC2.0 profile follow steps 1 and 2, if not skip to step 3.

  1. Update Advanced Remote firmware
    Open the battery compartment and locate the 10-pin header mounted on the PCB. It's accessible through a hole in the plastic. Connect the 10-pin ribbon cable to the 10-pin header, and the other end to the CC-Debugger via the small adaptor. Either power the Advanced Remote with batteries or by connecting pins 2 and 9 on the small adaptor. Press the button on the CC-Debugger and check that the LED turns green, this indicates that the connection is good. Connect CC-Debugger to a PC and run Smart RF Flash Programmer (version 1). Locate the updated firmware, typically found here: "C:\Texas Instruments\RemoTI-CC253xDK-1.4.0\bin\AdvancedRemote-CC2533F96.hex".
  2. Update the CC2531 USB Dongle firmware. Connect the 10-pin ribbon cable to the 10-pin header, and the other end to the CC-Debugger via the small adaptor. Either power the dongle via USB or by connecting pins 2 and 9 on the small adaptor. Press the button on the CC-Debugger and check that the LED turns green, this indicates that the connection is good. Connect CC-Debugger to a PC and run Smart RF Flash Programmer (version 1). Locate the updated firmware, typically found here: "C:\Texas Instruments\RemoTI-CC253xDK-1.4.0\bin\ZRC-Dongle.hex".
  3. Plug the CC2531 USB Dongle in a device that supports USB HID (e.g. PC or MAC).
  4. Place batteries in the Advanced Remote
  5. Press the red button on the Advanced Remote
  6. Within 30 seconds press button 'S1' on the dongle.
  7. The Advanced Remote will sound a beep when paired.
  8. You can now use the buttons on the remote to adjust the volume
  9. Press and hold the middle button to control the mouse pointer.






LED Indicator

There are two LEDs on the CC2531 USB dongle. One LED is red and the other is green. The pattern in which these LEDs are lit indicates the state of the dongle.

  • Red LED blinks
    • System is initializing
  • No green LED after initialization
    • There are no valid pairing entries, no nodes are bound
  • Solid green LED after initialization
    • Valid pairing entry exist, at least one node is bound
  • Solid red LED
    • A Keyboard OUT report has been received which indicated that an LED indicator should be lit. This could be any of the following; Kana, Compose, Scroll Lock, Caps Lock or Num Lock. However, it has been implemented to only react on Caps Lock. The keyboard OUT report is sent if the LED status changes. Try it by pressing the Caps Lock key on the keyboard already connected to the same device as the dongle (typically a PC or MAC).
  • Red LED blinks after system has been initialized
    • The pairing/binding button has been pressed, and the dongle will accept pairing.

"Push-button Pairing" with ZRC2.0

ZRC2.0 provides more options to perform pairing. Most importantly it removes the requirement for a "button" on the receiving end of the pairing (Target/Recipient). However, some devices, such as the ZrcDongle, does not have an easy way to display a validation code. It could have sent USB HID Keyboard commands to print a request for a code, but that requires the host system to have focus in a text editor of some kind. Unfortunately there's no simple way to force the host to give focus to a text editor via USB HID. So, the ZrcDongle implements the "Push-Button" version of the pairing/binding.

The ZrcDongle host application sets GDP Binding Capabilities to “Push Button”. When the GDP Binding Capabilities are set to “Push Button” the primary class descriptor is set to 0x0F, as long as the “button is not pushed”. This leads to the ZrcDongle not responding to discovery requests until the “button is pushed”, if the maximum class filter is set to a value lower than 0x0F. This is much like ZRC1.1. The ZrcDongle application calls RTI_AllowBindReq() when the “button is pushed”. This is much like RemoTI-1.3.1 (and earlier) where you had to call RTI_AllowPairReq() to begin responding to Discovery Requests. The Advanced Remote sets maximum class filter to 0x0E, so if one inspects a packet sniffer trace while the remote is trying to pair with the dongle one will notice the absence of Discovery Response until the "button is pushed".

HID Interface for communication over HID

If compiled with ZRC_USB_RNP and ZRC_USB_CE three interfaces will be defined by default.
These three interfaces are: a combined Mouse/Keyboard interface, a Consumer Control device interface and a vendor specific interface. Besides the control end-point (end-point 0), the USB end-point 5 is used for the Mouse/Keyboard input, the end-point 2 is used for Consumer control device input and the end-point 3 is used for vendor specific commands both as input and output.

The report descriptors define the following reports for communication

Consumer Control

Consumer control device input report format
Number of bits 4 2 1 1 4 2 2
Field Numeric key button Channel Volume Up Volume Down Other buttons Selection buttons reserved

Keyboard

Standard keyboard input report format
Number of bytes 1 1 6
Field Modifier keys Reserved Keyboard Array
Modifier keys
Bit 7 6 5 4 3 2 1 0
Field Right GUI Right Alt Right Shift Right CTRL Left GUI Left Alt Left Shift Left CTRL
Standard keyboard output report format
Bit 5-7 4 3 2 1 0
Field Constant Kana Compose Scroll Lock Caps Lock Num Lock

Mouse

Standard mouse input report format
Number of bytes 1 1 1
Field Bit
Button
3-7 2 1 0
Reserved 3 2 1
X displacement Y displacement

TI Vendor Specific

This section describes the vendor specific HID reports that are used to communicate between the dongle and a host.

TI vendor defined page 0xFF00
Usage ID Usage Name Usage Type
00 Undefined
01 Command identifier DV
02 Index or status DV
03 Vendor identifier DV
04 IEEE address DV
05 RemoTI Target CA
06 - FFFF Reserved
Command identifier (vendor defined usage 1) sematics
Command Identifier Value Description
-128 ~ 0 Reserved
1 Allow Pairing/Binding
2 Unpair/Unbind
3 Clear pairing table
4 Get pairing table size
5 Get pairing entry
6 Get current MAC channel
7 Enter serial boot mode
8 ~ 127

Note that a host must note depend on the tables below to decode an input report or to compose an output report, but rather it has to parse report descriptors and decode, or build, reports accordingly.

The index or status field of the report is used to indicate a pairing entry index when the command identifier is either 2 (Unpair) or 5 (Get pairing entry). Otherwise, it is used to indicate a status for an input report and it is ignored for an output report. The output reports are used by the USB host to request a certain action or information and the USB device reports the status of the action or the information in response to such a request by an input report with its report ID set to either 1 or 2. An unpair command input report is also used to notify an unpair event triggered by a paired controller device, besides as a response to an unpair command output report.

Vendor defined report (ID=1) format
Number of bytes 1 1
Field Command identifier Index or status
Vendor defined report (ID=2) format
Number of bytes 1 2 8
Field Index Vendor identifier IEEE address

FAQ

  1. No HID commands are being sent to the PC?
    Windows does not always request a complete re-enumeration of a USB device, and may attempt to load an incorrect driver. To fix this uninstall the current driver, unplug and plug the dongle back in.
  2. My CC2531 USB Dongle is not recognized by the PC!
    Windows does not always request a complete re-enumeration of a USB device, and may attempt to load an incorrect driver. To fix this uninstall the current driver, unplug and plug the dongle back in.
  3. What is the Vendor ID of the USB Dongle?
    The VID is 0x0451
  4. What is the Product ID of the USB Dongle, when flashed with the ZRC Dongle image from RemoTI-1.4.0?
    The PID is 0x16CC