Key Emulator for Infrared Remote Control
Key Emulator is an USB device that provides connection between computer and a remote control device. Key Emulator behaves like a keyboard, but has no buttons. Instead, it receives infra-red signal from any IR remote control and converts it to keystrokes. Key Emulator is useful in a variety of cases when wireless, comfortable and simple computer controlling is needed.
Features:
- IR receiver covers the majority of commonly used remote controls
- USB device is a member of Human Interface Device Class
- no device drivers needed
- multiplatform including Windows, Linux and Mac
- small size, low cost
Interface
Integrated infra-red demodulator SFH506 demodulates 36kHz IR signal and passes it to Atmel ATmega8 microcontroller. Decoding of signal, packet preparation and USB communication is done by firmware. Operating system receives keystrokes, as if a regular key was pressed. Ongoing USB communication is indicated by a green LED.
Device descriptors
Device Descriptor
Offset | Description | Value |
0 | bLength | 0x12 |
1 | bDescriptorType | 0x01 |
2,3 | bcdUSB | 0x0110 |
4 | bDeviceClass | 0x00 |
5 | bDeviceSubClass | 0x00 |
6 | bDeviceProtocol | 0x00 |
7 | bMaxPacketSize | 0x08 |
8,9 | idVendor | 0x065d |
10,11 | idProduct | 0x1025 |
12,13 | bcdDevice | 0x0001 |
14 | iManufacturer | 0x00 |
15 | iProduct | 0x01 |
16 | iSerialNumber | 0x00 |
17 | bNumConfigurations | 0x01 |
Configuration Descriptor
Offset | Description | Value |
Configuration Descriptor |
0 | bLength | 0x09 |
1 | bDescriptorType | 0x02 |
2,3 | wTotalLenght | 0x0022 |
4 | bNumInterfaces | 0x01 |
5 | bConfigurationValue | 0x01 |
6 | iConfiguration | 0x00 |
7 | bmAttributes | 0x80 |
8 | bMaxPower | 0x32 |
Interface 0 Descriptor |
9 | bLength | 0x09 |
10 | bDescriptorType | 0x04 |
11 | bInterfaceNumber | 0x00 |
12 | bAlternateSetting | 0x00 |
13 | bNumEndpoints | 0x01 |
14 | bInterfaceClass | 0x03 |
15 | bInterfaceSubClass | 0x01 |
16 | bInterfaceProtocol | 0x01 |
17 | iInterface | 0x00 |
HID Descriptor |
18 | bLength | 0x05 |
19 | bDescriptorType | 0x21 |
20,21 | bcdHID | 0x111 |
22 | bCountryCode | 0x00 |
23 | bNumDescriptors | 0x01 |
24 | bDescriptorType | 0x22 |
25,26 | wDescriptorLength | 0x003F |
Endpoint Descriptor |
27 | bLength | 0x07 |
28 | bDescriptorType | 0x05 |
29 | bEndpointAddress | 0x81 |
30 | bmAttributes | 0x03 |
31,32 | wMaxPacketSize | 0x0008 |
33 | bInterval | 0x80 |
Descriptors will be sent in the following packets:
Device Descriptor:
4B 12 01 10 01 00 00 00 08 11 77
C3 5D 06 25 10 01 00 00 01 1B 9B
4B 00 01 3F 8F
|
Configuration Descriptor:
4B 09 02 22 00 01 01 00 80 0B 40
C3 32 09 04 00 00 01 03 01 35 4D
4B 01 00 05 21 11 01 00 01 57 56
C3 22 3F 00 07 05 81 03 08 17 24
4B 00 80 FF EF
|
Scheme
 | Key Emulator scheme |
|