\ Key Emulator

Key Emulator

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

OffsetDescriptionValue
0bLength0x12
1bDescriptorType0x01
2,3bcdUSB0x0110
4bDeviceClass0x00
5bDeviceSubClass0x00
6bDeviceProtocol0x00
7bMaxPacketSize0x08
8,9idVendor0x065d
10,11idProduct0x1025
12,13bcdDevice0x0001
14iManufacturer0x00
15iProduct0x01
16iSerialNumber0x00
17bNumConfigurations0x01


Configuration Descriptor

OffsetDescriptionValue
Configuration Descriptor
0bLength0x09
1bDescriptorType0x02
2,3wTotalLenght0x0022
4bNumInterfaces0x01
5bConfigurationValue0x01
6iConfiguration0x00
7bmAttributes0x80
8bMaxPower0x32
Interface 0 Descriptor
9bLength0x09
10bDescriptorType0x04
11bInterfaceNumber0x00
12bAlternateSetting0x00
13bNumEndpoints0x01
14bInterfaceClass0x03
15bInterfaceSubClass0x01
16bInterfaceProtocol0x01
17iInterface0x00
HID Descriptor
18bLength0x05
19bDescriptorType0x21
20,21bcdHID0x111
22bCountryCode0x00
23bNumDescriptors0x01
24bDescriptorType0x22
25,26wDescriptorLength0x003F
Endpoint Descriptor
27bLength0x07
28bDescriptorType0x05
29bEndpointAddress0x81
30bmAttributes0x03
31,32wMaxPacketSize0x0008
33bInterval0x80


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