Updated Attachment J1 - DA2 Bluetooth Remote Control Specification.docx

DOCX document 412 KB Posted

Attached to
Nonrecurring Engineering, Development, Prototyping and Production of Handheld Bluetooth Wireless Remote-Controls for DA-2 Units
Solicitation number
2025-NLS-0047
Issued by

About this file

This is a technical specification document for a handheld Bluetooth remote control device for the DA-2 Digital Talking Book Machine, produced for the National Library Service for the Blind and Print Disabled (NLS), Library of Congress.

The specification details requirements for a remote that must operate using Bluetooth 4.2 protocol with BLE support, operate between 2.400-2.4835GHz frequency band, include an internal antenna, and support HID profile and Secure Simple Pairing. The device must weigh no more than 0.25 lbs, operate via two AA batteries with 2-year life expectancy, not exceed dimensions of 2" width x 1.2" height x 6.8" length, and include a 2-foot lanyard. Key functional requirements include operation within 30 feet, audible feedback for button presses, braille dots on keys, color-coded keys matching the DA-2 machine, and firmware upgrade capability. The remote must meet various environmental and durability specifications including operating temperature (0-40°C), humidity requirements, drop testing, EMI/ESD standards, and FCC compliance.

View the file

Other files

File Type Posted
Updated Attachment J2 - Pricing Schedule List.xlsx XLSX spreadsheet
Attachment J4 - Pre-Proposal QA.pdf PDF
030ADV25R0008 0002.pdf PDF
030ADV25R0008 0001.pdf PDF
030ADV25R0008.pdf PDF
Attachment J2 - Pricing Schedule List.xlsx XLSX spreadsheet
Attachment J1 - DA2 Bluetooth Remote Control Specification.docx DOCX document
Attachment J3 - Past Performance Questionnaire (PPQ).doc DOC document

On GovTribe

Work with this file

  • Download the original file
  • Contacts named in this file
  • Similar government files
  • Ask GovTribe AI about this file

Text version

Attachment J1 DA-2 Bluetooth Remote Control Specification

1. Scope This document covers the specification for a handheld Bluetooth remote control for the DA-2 Digital Talking Book Machine, produced for the National Library Service for the Blind and Print Disabled (NLS), Library of Congress.

The requirements of this specification, susceptible to objective and subjective evaluation, must be fulfilled. NLS may reject proposed design requirements that fail to address the specific needs of NLS users.

Contractors who consider submitting a bid to design and manufacture this remote control device should be cognizant of the consumer-responsive nature of the program, and that the design been developed must meet the special needs of users in the program. Contractors are expected to familiarize themselves with the equipment-handling practices of blind and physically handicapped clientele and ensure that the products they produce will stand up under this type of use. A high degree of quality workmanship and product reliability is mandated by the product design specifications, that includes labeling, packaging, and preparation for delivery.

2. Reference Documents The following documents and publications, of the issue in effect on the posting date of the RFP, form a part of this specification. In the event of conflict between the documents and publications referenced herein and the content of this specification, the content of this specification shall be considered a superseding requirement.

2.1 Specifications

USB Implementers Forum, Inc.
Universal Serial Bus Specification Revision 2.0
The document cited above is available from:
Internet: www.usb.org/developers/docs/usb20_docs/#usb20spec

2.2 Standard

American National Standards Institute (ANSI)

ANSI/ASQ Z1.4-2003
Sampling Procedures and Tables for Inspection by Attributes

The document cited above is available from:

American Society for Quality Quality Press 611 East Wisconsin Ave.

P.O. Box 3005 Milwaukee, WI 53201-3005 Internet: www.asq.org/quality-press/

International Electrotechnical Commission (IEC)
IEC 61000-6-1 Electromagnetic compatibility (EMC) Part 6-1
Bluetooth Core Specification 4.2
https://www.bluetooth.com/specifications/specs/core-specification-4-2/

2.3 Definition of Terms

· EMI – Electromagnetic Interference

· ESD – Electrostatic Discharge

· IR – Infrared

· RF – Radio Frequency

· PCB – Printed Circuit Board

· RH – Relative Humidity

· System – Bluetooth transmitter and receiver

· HID – Human Interface Device

· BLE – Bluetooth Low Energy

· GATT – General Attribute

· SSP – Secure Simple Pairing

· DTBM – Digital Talking Book Machine

· DA-2 – Model of DTBM

3. Bluetooth Requirements

3.1 Protocol

The remote control shall operate using the Bluetooth protocol as defined in Bluetooth Core Specification 4.2. The remote control shall support Bluetooth Low Energy (BLE).

3.2 Frequency Band

The remote control shall operate between 2.400GHz to 2.4835GHz frequency band. The channels used are from 2.402GHz to 2.480GHz, with 1MHz increments for all 79 channels.

3.3 Antenna

The remote control shall support an internal antenna embedded within the remote control and not visible and not protrude outside of the remote.

3.4 Bluetooth Profile

The remote control shall support the Bluetooth HID profile.

3.5 Bluetooth Pairing

The remote control shall support Secure Simple Pairing (SSP) mode with “Just Works” requiring no input from the end user. The pairing and unpairing of the Bluetooth remote control from the DA-2 shall be initiated from the DA-2 through the DA-2 settings menu. The DA-2 Bluetooth settings have the option to pair new devices and delete Paired device. It lists the paired devices that need to be unpaired using voice prompt. The menu is controlled by the keypad and the user can scroll through the paired devices to delete the one he/she chooses. Once a device is chosen to be deleted from the paired device list, it is disconnected and removed from the paired list.

3.6 Bluetooth Unpairing

The remote control shall support unpairing of any paired Bluetooth device.

4. General Requirements

4.1 Operating Temperature

The remote control shall meet performance requirements when operating at temperatures between 0°C - 40ºC

4.2 Operating Environment

The remote control shall meet performance requirements when operating in environmental conditions at 20°C+ 5°C at a relative humidity of 10% - 90% (non-condensing)

4.3 Storage Environment

The remote control shall meet performance requirements after exposure to an environment of -45°C uncontrolled RH, 38°C 85% RH, 60°C uncontrolled RH.

4.4 Drop test

The remote control shall meet performance requirements after drop testing on all sides per section 12.1.4 of UL 60065 except that the surface is not covered with hardwood or plywood and the sample must survive 3 drops.

4.5 Vibration test

The remote control shall meet performance requirements after exposure to vibration cycling per section 12.1.2 Vibration Test of UL 60065.

4.6 Key presses

The remote control shall be able to distinguish between a key that is pressed and remains down (long press) and a key that is pressed repeatedly.

4.7 Operating distance

The remote control shall meet performance requirements when operating within 30 feet between remote control and the DA-2 DTBM.

4.8 Electronic components

a. The remote control shall meet performance requirements when exposed to EMI as prescribed in IEC 61000-6-1.

b. The remote control shall meet performance requirements after exposure to ESD as prescribed in IEC 61000-4-2.

c. The remote control shall comply with RoHS lead free directives, and solder-ability requirements

d. The PCBs of the remote control shall provide connections for programming and loading firmware via a computer.

e. The remote control shall comply with FCC Part 15 requirements for a class B device.

4.9 Firmware

The remote control’s firmware bootloader shall include the ability to upgrade to a new version of the firmware. The vendor shall provide a PC based software tool for the remote control firmware upgrade by connecting the remote control to the PC via hardware cable. In the event of a corrupted bootloader, the entire firmware image of the remote control shall be upgradeable via a recovery mechanism.

3.11 Safety

a. The remote control shall not be constructed of materials which are flammable per applicable specifications in UL 60065

b. The remote control shall not be constructed of materials which may cause bodily harm by contact, inhalation, or ingestion.

c. The remote control shall not be constructed of materials which will outgas hazardous vapors in excess of 0.1% collected volatile condensable material or in excess of 1% total material loss, when tested to ASTM E595-93.

5. Physical Requirements

5.1 Weight

The remote control shall weigh no more than 0.25 lbs (115 grams) nominal (batteries included).

5.2 RF Energy Exposure Limit

The remote control shall meet the RF energy exposure limit in terms of Specific Absorption Rate (SAR) limit set by FCC guidelines. The remote control shall meet the allowable FCC SAR limit of 1.6 watts per Kilogram (W/kg) as averaged over one gram of tissue.

5.3 Provision for a lanyard

The remote control shall include a provision for a 2 feet lanyard that will allow remote control to be worn around neck, shoulder, or wrist. It is required for the lanyard to be included with the device and for it to be attachable to the device.

5.4 Key debounce

The remote control firmware shall employ key debouncing on button press to prevent spurious key events.

5.5 Key life expectancy

The remote control keys shall meet performance requirements for at least 100,000 cycles.

5.6 Battery System

The remote control shall operate via battery power. The battery system shall meet the following requirements:

a. Two AA alkaline cells

b. Battery life shall be at least 2 years (Normal usage)

c. DC Current consumption shall not exceed 10mA max, and 20µA max when idle (nominal)

d. Design to incorporate reverse battery polarity protection.

e. Batteries shall be replaceable by users with minimal manual dexterity and shall not require the use of hand tools.

5.7 Size

The remote control‘s total size shall not exceed the following dimensions:

Width: 2 in Height: 1.2 in Length: 6.8 in Note: (All dimensions are nominal maximums)

5.8 Stability

The remote control shall not rock or slide on a flat surface.

5.9 Audible feedback

The remote control shall provide audible feedback to the user for indication of a button press. The feedback shall be able to be turned on and off by the user via the use of a sliding switch.

5.10 Key Pad

a. Shape:

The shape of the keys for the keypad shall match the shape and proportionality of the keys for the NLS digital talking book machine (DTBM) model DA-2. An image of the DA-2 keypad is below.

Contractors are able to propose their own layout designs for the buttons as long as they fit within the size parameters of the device.

b. Braille dots:

The keys shall have braille dots molded into them or in the plastic casing next to it. Each key shall contain the braille dot pattern that represents the first letter of function (e.g. V for volume, T for tone, S for speed, etc.) The exception shall be the book mark key which shall have M for mark.

c. Control functions:

The remote control shall provide keys to control all of the functions of the DTBM model DA-2.

d. Color: Keys shall be color coded to match colors of the keys on the DTBM.

e. Key actuation force:

Peak:8.8oz ± 1.76oz (250 ±50 grams)
Return:1.8oz (50 grams)
Stroke length:0.047±.004 (1.200 ±0.1mm)

f. Material: Silicon rubber or equivalent and shall be resistant to sunlight and fluorescent lamp. (Sample of existing keypad for digital talking-book machine available upon request)

5.11 HID Key Mapping

The remote control shall use following mapping table for HID key mapping. The values for the Standard and DA2 Custom keys are defined in the attached source code file in Appendix A.

Button
Standard
DA-2 CUSTOM
Bookshelf
KEY_MENU
Bookmark
KEY_BOOKMARKS

Mode

KEY_BARD

Tone up

KEY_TONE_UP

Tone Down
KEY_TONE_DOWN
Volume up
KEY_VOLUMEUP
Volume Down
KEY_VOLUMEDOWN
Speed Up
BTN_GEAR_UP
Speed down
BTN_GEAR_DOWN
Up
KEY_UP
Right
KEY_RIGHT
Down
KEY_DOWN
Left
KEY_LEFT
Info
KEY_INFO
Sleep
KEY_SLEEP
Rew
KEY_REWIND
Play Stop
KEY_PLAY
FF
KEY_FASTFORWARD
Power
KEY_POWER

6. Packaging

6.1 Shipping carton

The remote control shall be packaged in an individual shipping carton.

The shipping carton shall meet the following requirements:

a. The carton shall contain individual inserts to protect the remote control during shipping.

b. The carton shall have markings indicating the material is eligible for shipping via USPS Free Matter for the Blind

c. The carton shall have a blank space available for application of a shipping label.

The final dimensions and artwork of the shipping carton shall be submitted to NLS for approval.

6.2 Overpack (Master box)

The individually packaged remote controls shall be packaged together in an overpack or master box. The number of individual units packaged together shall be determined such that the weight of the overpack does not exceed 15 pounds. The overpack container shall meet the following requirements:

d. The container shall have markings indicating the material is eligible for shipping via USPS Free Matter for the Blind

e. The container shall have a blank space available for application of a shipping label.

The final dimensions and artwork of the overpack container shall be submitted to NLS for approval.

Appendix A: input_event.h /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */

* Input event codes

* *** IMPORTANT ***

* This file is not only included from C-code but also from devicetree source

* files. As such this file MUST only contain comments and defines.

* Copyright (c) 1999-2002 Vojtech Pavlik

* Copyright (c) 2015 Hans de Goede <hdegoede@redhat.com>

* This program is free software; you can redistribute it and/or modify it

* under the terms of the GNU General Public License version 2 as published by

* the Free Software Foundation.

#ifndef _INPUT_EVENT_CODES_H #define _INPUT_EVENT_CODES_H

* Device properties and quirks

#define INPUT_PROP_POINTER0x00/* needs a pointer */
#define INPUT_PROP_DIRECT0x01/* direct input devices */
#define INPUT_PROP_BUTTONPAD0x02/* has button(s) under pad */
#define INPUT_PROP_SEMI_MT0x03/* touch rectangle only */
#define INPUT_PROP_TOPBUTTONPAD0x04/* softbuttons at top of pad */
#define INPUT_PROP_POINTING_STICK0x05/* is a pointing stick */
#define INPUT_PROP_ACCELEROMETER0x06/* has accelerometer */
#define INPUT_PROP_MAX0x1f
#define INPUT_PROP_CNT(INPUT_PROP_MAX + 1)

* Event types

#define EV_SYN0x00
#define EV_KEY0x01
#define EV_REL0x02
#define EV_ABS0x03
#define EV_MSC0x04
#define EV_SW0x05
#define EV_LED0x11
#define EV_SND0x12
#define EV_REP0x14
#define EV_FF0x15
#define EV_PWR0x16
#define EV_FF_STATUS0x17
#define EV_MAX0x1f
#define EV_CNT(EV_MAX+1)

* Synchronization events.

#define SYN_REPORT0
#define SYN_CONFIG1
#define SYN_MT_REPORT2
#define SYN_DROPPED3
#define SYN_MAX0xf
#define SYN_CNT(SYN_MAX+1)

* Keys and buttons

* Most of the keys/buttons are modeled after USB HUT 1.12

* (see https://urldefense.com/v3/__http://www.usb.org/developers/hidpage__;!!EDx7F7x-0XSOB8YS_BQ!f4TzQeo_vpp44TnwI4x8iokn6HdtRoFVbCtaaKs00rpvR8IjGyJguVFElkn3dA7HnG-E56HSTbF7ycKtoqpwC2c$ ).

* Abbreviations in the comments:

* AC - Application Control

* AL - Application Launch Button

* SC - System Control

#define KEY_RESERVED0
#define KEY_ESC1
#define KEY_12
#define KEY_23
#define KEY_34
#define KEY_45
#define KEY_56
#define KEY_67
#define KEY_78
#define KEY_89
#define KEY_910
#define KEY_011
#define KEY_MINUS12
#define KEY_EQUAL13
#define KEY_BACKSPACE14
#define KEY_TAB15
#define KEY_Q16
#define KEY_W17
#define KEY_E18
#define KEY_R19
#define KEY_T20
#define KEY_Y21
#define KEY_U22
#define KEY_I23
#define KEY_O24
#define KEY_P25
#define KEY_LEFTBRACE26
#define KEY_RIGHTBRACE27
#define KEY_ENTER28
#define KEY_LEFTCTRL29
#define KEY_A30
#define KEY_S31
#define KEY_D32
#define KEY_F33
#define KEY_G34
#define KEY_H35
#define KEY_J36
#define KEY_K37
#define KEY_L38
#define KEY_SEMICOLON39
#define KEY_APOSTROPHE40
#define KEY_GRAVE41
#define KEY_LEFTSHIFT42
#define KEY_BACKSLASH43
#define KEY_Z44
#define KEY_X45
#define KEY_C46
#define KEY_V47
#define KEY_B48
#define KEY_N49
#define KEY_M50
#define KEY_COMMA51
#define KEY_DOT52
#define KEY_SLASH53
#define KEY_RIGHTSHIFT54
#define KEY_KPASTERISK55
#define KEY_LEFTALT56
#define KEY_SPACE57
#define KEY_CAPSLOCK58
#define KEY_F159
#define KEY_F260
#define KEY_F361
#define KEY_F462
#define KEY_F563
#define KEY_F664
#define KEY_F765
#define KEY_F866
#define KEY_F967
#define KEY_F1068
#define KEY_NUMLOCK69
#define KEY_SCROLLLOCK70
#define KEY_KP771
#define KEY_KP872
#define KEY_KP973
#define KEY_KPMINUS74
#define KEY_KP475
#define KEY_KP576
#define KEY_KP677
#define KEY_KPPLUS78
#define KEY_KP179
#define KEY_KP280
#define KEY_KP381
#define KEY_KP082
#define KEY_KPDOT83
#define KEY_ZENKAKUHANKAKU85
#define KEY_102ND86
#define KEY_F1187
#define KEY_F1288
#define KEY_RO89
#define KEY_KATAKANA90
#define KEY_HIRAGANA91
#define KEY_HENKAN92
#define KEY_KATAKANAHIRAGANA93
#define KEY_MUHENKAN94
#define KEY_KPJPCOMMA95
#define KEY_KPENTER96
#define KEY_RIGHTCTRL97
#define KEY_KPSLASH98
#define KEY_SYSRQ99
#define KEY_RIGHTALT100
#define KEY_LINEFEED101
#define KEY_HOME102
#define KEY_UP103
#define KEY_PAGEUP104
#define KEY_LEFT105
#define KEY_RIGHT106
#define KEY_END107
#define KEY_DOWN108
#define KEY_PAGEDOWN109
#define KEY_INSERT110
#define KEY_DELETE111
#define KEY_MACRO112
#define KEY_MUTE113
#define KEY_VOLUMEDOWN114
#define KEY_VOLUMEUP115
#define KEY_POWER116/* SC System Power Down */
#define KEY_KPEQUAL117
#define KEY_KPPLUSMINUS118
#define KEY_PAUSE119
#define KEY_SCALE120/* AL Compiz Scale (Expose) */
#define KEY_KPCOMMA121
#define KEY_HANGEUL122
#define KEY_HANGUELKEY_HANGEUL
#define KEY_HANJA123
#define KEY_YEN124
#define KEY_LEFTMETA125
#define KEY_RIGHTMETA126
#define KEY_COMPOSE127
#define KEY_STOP128/* AC Stop */
#define KEY_AGAIN129
#define KEY_PROPS130/* AC Properties */
#define KEY_UNDO131/* AC Undo */
#define KEY_FRONT132
#define KEY_COPY133/* AC Copy */
#define KEY_OPEN134/* AC Open */
#define KEY_PASTE135/* AC Paste */
#define KEY_FIND136/* AC Search */
#define KEY_CUT137/* AC Cut */
#define KEY_HELP138/* AL Integrated Help Center */
#define KEY_MENU139/* Menu (show menu) */
#define KEY_CALC140/* AL Calculator */
#define KEY_SETUP141
#define KEY_SLEEP142/* SC System Sleep */
#define KEY_WAKEUP143/* System Wake Up */
#define KEY_FILE144/* AL Local Machine Browser */
#define KEY_SENDFILE145
#define KEY_DELETEFILE146
#define KEY_XFER147
#define KEY_PROG1148
#define KEY_PROG2149
#define KEY_WWW150/* AL Internet Browser */
#define KEY_MSDOS151
#define KEY_COFFEE152/* AL Terminal Lock/Screensaver */
#define KEY_SCREENLOCKKEY_COFFEE
#define KEY_ROTATE_DISPLAY153/* Display orientation for e.g. tablets */
#define KEY_DIRECTIONKEY_ROTATE_DISPLAY
#define KEY_CYCLEWINDOWS154
#define KEY_MAIL155
#define KEY_BOOKMARKS156/* AC Bookmarks */
#define KEY_COMPUTER157
#define KEY_BACK158/* AC Back */
#define KEY_FORWARD159/* AC Forward */
#define KEY_CLOSECD160
#define KEY_EJECTCD161
#define KEY_EJECTCLOSECD162
#define KEY_NEXTSONG163
#define KEY_PLAYPAUSE164
#define KEY_PREVIOUSSONG165
#define KEY_STOPCD166
#define KEY_RECORD167
#define KEY_REWIND168
#define KEY_PHONE169/* Media Select Telephone */
#define KEY_ISO170
#define KEY_CONFIG171/* AL Consumer Control Configuration */
#define KEY_HOMEPAGE172/* AC Home */
#define KEY_REFRESH173/* AC Refresh */
#define KEY_EXIT174/* AC Exit */
#define KEY_MOVE175
#define KEY_EDIT176
#define KEY_SCROLLUP177
#define KEY_SCROLLDOWN178
#define KEY_KPLEFTPAREN179
#define KEY_KPRIGHTPAREN180
#define KEY_NEW181/* AC New */
#define KEY_REDO182/* AC Redo/Repeat */
#define KEY_F13183
#define KEY_F14184
#define KEY_F15185
#define KEY_F16186
#define KEY_F17187
#define KEY_F18188
#define KEY_F19189
#define KEY_F20190
#define KEY_F21191
#define KEY_F22192
#define KEY_F23193
#define KEY_F24194
#define KEY_PLAYCD200
#define KEY_PAUSECD201
#define KEY_PROG3202
#define KEY_PROG4203
#define KEY_DASHBOARD204/* AL Dashboard */
#define KEY_SUSPEND205
#define KEY_CLOSE206/* AC Close */
#define KEY_PLAY207
#define KEY_FASTFORWARD208
#define KEY_BASSBOOST209
#define KEY_PRINT210/* AC Print */
#define KEY_HP211
#define KEY_CAMERA212
#define KEY_SOUND213
#define KEY_QUESTION214
#define KEY_EMAIL215
#define KEY_CHAT216
#define KEY_SEARCH217
#define KEY_CONNECT218
#define KEY_FINANCE219/* AL Checkbook/Finance */
#define KEY_SPORT220
#define KEY_SHOP221
#define KEY_ALTERASE222
#define KEY_CANCEL223/* AC Cancel */
#define KEY_BRIGHTNESSDOWN224
#define KEY_BRIGHTNESSUP225
#define KEY_MEDIA226
#define KEY_SWITCHVIDEOMODE227/* Cycle between available video
outputs (Monitor/LCD/TV-out/etc) */
#define KEY_KBDILLUMTOGGLE228
#define KEY_KBDILLUMDOWN229
#define KEY_KBDILLUMUP230
#define KEY_SEND231/* AC Send */
#define KEY_REPLY232/* AC Reply */
#define KEY_FORWARDMAIL233/* AC Forward Msg */
#define KEY_SAVE234/* AC Save */
#define KEY_DOCUMENTS235

#define KEY_BATTERY 236

#define KEY_BLUETOOTH237
#define KEY_WLAN238
#define KEY_UWB239

#define KEY_UNKNOWN 240

#define KEY_VIDEO_NEXT241/* drive next video source */
#define KEY_VIDEO_PREV242/* drive previous video source */
#define KEY_BRIGHTNESS_CYCLE243/* brightness up, after max is min */
#define KEY_BRIGHTNESS_AUTO244/* Set Auto Brightness: manual
brightness control is off,
rely on ambient */
#define KEY_BRIGHTNESS_ZEROKEY_BRIGHTNESS_AUTO
#define KEY_DISPLAY_OFF245/* display device to off state */
#define KEY_WWAN246/* Wireless WAN (LTE, UMTS, GSM, etc.) */
#define KEY_WIMAXKEY_WWAN
#define KEY_RFKILL247/* Key that controls all radios */

#define KEY_MICMUTE 248 /* Mute / unmute the microphone */

/* Code 255 is reserved for special needs of AT keyboard driver */

#define BTN_MISC0x100
#define BTN_00x100
#define BTN_10x101
#define BTN_20x102
#define BTN_30x103
#define BTN_40x104
#define BTN_50x105
#define BTN_60x106
#define BTN_70x107
#define BTN_80x108
#define BTN_90x109
#define BTN_MOUSE0x110
#define BTN_LEFT0x110
#define BTN_RIGHT0x111
#define BTN_MIDDLE0x112
#define BTN_SIDE0x113
#define BTN_EXTRA0x114
#define BTN_FORWARD0x115
#define BTN_BACK0x116
#define BTN_TASK0x117
#define BTN_JOYSTICK0x120
#define BTN_TRIGGER0x120
#define BTN_THUMB0x121
#define BTN_THUMB20x122
#define BTN_TOP0x123
#define BTN_TOP20x124
#define BTN_PINKIE0x125
#define BTN_BASE0x126
#define BTN_BASE20x127
#define BTN_BASE30x128
#define BTN_BASE40x129
#define BTN_BASE50x12a
#define BTN_BASE60x12b
#define BTN_DEAD0x12f
#define BTN_GAMEPAD0x130
#define BTN_SOUTH0x130
#define BTN_ABTN_SOUTH
#define BTN_EAST0x131
#define BTN_BBTN_EAST
#define BTN_C0x132
#define BTN_NORTH0x133
#define BTN_XBTN_NORTH
#define BTN_WEST0x134
#define BTN_YBTN_WEST
#define BTN_Z0x135
#define BTN_TL0x136
#define BTN_TR0x137
#define BTN_TL20x138
#define BTN_TR20x139
#define BTN_SELECT0x13a
#define BTN_START0x13b
#define BTN_MODE0x13c
#define BTN_THUMBL0x13d
#define BTN_THUMBR0x13e
#define BTN_DIGI0x140
#define BTN_TOOL_PEN0x140
#define BTN_TOOL_RUBBER0x141
#define BTN_TOOL_BRUSH0x142
#define BTN_TOOL_PENCIL0x143
#define BTN_TOOL_AIRBRUSH0x144
#define BTN_TOOL_FINGER0x145
#define BTN_TOOL_MOUSE0x146
#define BTN_TOOL_LENS0x147
#define BTN_TOOL_QUINTTAP0x148/* Five fingers on trackpad */
#define BTN_STYLUS30x149
#define BTN_TOUCH0x14a
#define BTN_STYLUS0x14b
#define BTN_STYLUS20x14c
#define BTN_TOOL_DOUBLETAP0x14d
#define BTN_TOOL_TRIPLETAP0x14e
#define BTN_TOOL_QUADTAP0x14f/* Four fingers on trackpad */
#define BTN_WHEEL0x150
#define BTN_GEAR_DOWN0x150
#define BTN_GEAR_UP0x151
#define KEY_OK0x160
#define KEY_SELECT0x161
#define KEY_GOTO0x162
#define KEY_CLEAR0x163
#define KEY_POWER20x164
#define KEY_OPTION0x165
#define KEY_INFO0x166/* AL OEM Features/Tips/Tutorial */
#define KEY_TIME0x167
#define KEY_VENDOR0x168
#define KEY_ARCHIVE0x169
#define KEY_PROGRAM0x16a/* Media Select Program Guide */
#define KEY_CHANNEL0x16b
#define KEY_FAVORITES0x16c
#define KEY_EPG0x16d
#define KEY_PVR0x16e/* Media Select Home */
#define KEY_MHP0x16f
#define KEY_LANGUAGE0x170
#define KEY_TITLE0x171
#define KEY_SUBTITLE0x172
#define KEY_ANGLE0x173
#define KEY_FULL_SCREEN0x174/* AC View Toggle */
#define KEY_ZOOMKEY_FULL_SCREEN
#define KEY_MODE0x175
#define KEY_KEYBOARD0x176
#define KEY_ASPECT_RATIO0x177/* HUTRR37: Aspect */
#define KEY_SCREENKEY_ASPECT_RATIO
#define KEY_PC0x178/* Media Select Computer */
#define KEY_TV0x179/* Media Select TV */
#define KEY_TV20x17a/* Media Select Cable */
#define KEY_VCR0x17b/* Media Select VCR */
#define KEY_VCR20x17c/* VCR Plus */
#define KEY_SAT0x17d/* Media Select Satellite */
#define KEY_SAT20x17e
#define KEY_CD0x17f/* Media Select CD */
#define KEY_TAPE0x180/* Media Select Tape */
#define KEY_RADIO0x181
#define KEY_TUNER0x182/* Media Select Tuner */
#define KEY_PLAYER0x183
#define KEY_TEXT0x184
#define KEY_DVD0x185/* Media Select DVD */
#define KEY_AUX0x186
#define KEY_MP30x187
#define KEY_AUDIO0x188/* AL Audio Browser */
#define KEY_VIDEO0x189/* AL Movie Browser */
#define KEY_DIRECTORY0x18a
#define KEY_LIST0x18b
#define KEY_MEMO0x18c/* Media Select Messages */
#define KEY_CALENDAR0x18d
#define KEY_RED0x18e
#define KEY_GREEN0x18f
#define KEY_YELLOW0x190
#define KEY_BLUE0x191
#define KEY_CHANNELUP0x192/* Channel Increment */
#define KEY_CHANNELDOWN0x193/* Channel Decrement */
#define KEY_FIRST0x194
#define KEY_LAST0x195/* Recall Last */
#define KEY_AB0x196
#define KEY_NEXT0x197
#define KEY_RESTART0x198
#define KEY_SLOW0x199
#define KEY_SHUFFLE0x19a
#define KEY_BREAK0x19b
#define KEY_PREVIOUS0x19c
#define KEY_DIGITS0x19d
#define KEY_TEEN0x19e
#define KEY_TWEN0x19f
#define KEY_VIDEOPHONE0x1a0/* Media Select Video Phone */
#define KEY_GAMES0x1a1/* Media Select Games */
#define KEY_ZOOMIN0x1a2/* AC Zoom In */
#define KEY_ZOOMOUT0x1a3/* AC Zoom Out */
#define KEY_ZOOMRESET0x1a4/* AC Zoom */
#define KEY_WORDPROCESSOR0x1a5/* AL Word Processor */
#define KEY_EDITOR0x1a6/* AL Text Editor */
#define KEY_SPREADSHEET0x1a7/* AL Spreadsheet */
#define KEY_GRAPHICSEDITOR0x1a8/* AL Graphics Editor */
#define KEY_PRESENTATION0x1a9/* AL Presentation App */
#define KEY_DATABASE0x1aa/* AL Database App */
#define KEY_NEWS0x1ab/* AL Newsreader */
#define KEY_VOICEMAIL0x1ac/* AL Voicemail */
#define KEY_ADDRESSBOOK0x1ad/* AL Contacts/Address Book */
#define KEY_MESSENGER0x1ae/* AL Instant Messaging */
#define KEY_DISPLAYTOGGLE0x1af/* Turn display (LCD) on and off */
#define KEY_BRIGHTNESS_TOGGLEKEY_DISPLAYTOGGLE
#define KEY_SPELLCHECK0x1b0 /* AL Spell Check */
#define KEY_LOGOFF0x1b1 /* AL Logoff */
#define KEY_DOLLAR0x1b2
#define KEY_EURO0x1b3
#define KEY_FRAMEBACK0x1b4/* Consumer - transport controls */
#define KEY_FRAMEFORWARD0x1b5
#define KEY_CONTEXT_MENU0x1b6/* GenDesc - system context menu */
#define KEY_MEDIA_REPEAT0x1b7/* Consumer - transport control */
#define KEY_10CHANNELSUP0x1b8/* 10 channels up (10+) */
#define KEY_10CHANNELSDOWN0x1b9/* 10 channels down (10-) */
#define KEY_IMAGES0x1ba/* AL Image Browser */
#define KEY_NOTIFICATION_CENTER0x1bc/* Show/hide the notification center */
#define KEY_PICKUP_PHONE0x1bd/* Answer incoming call */
#define KEY_HANGUP_PHONE0x1be/* Decline incoming call */
#define KEY_DEL_EOL0x1c0
#define KEY_DEL_EOS0x1c1
#define KEY_INS_LINE0x1c2
#define KEY_DEL_LINE0x1c3
#define KEY_FN0x1d0
#define KEY_FN_ESC0x1d1
#define KEY_FN_F10x1d2
#define KEY_FN_F20x1d3
#define KEY_FN_F30x1d4
#define KEY_FN_F40x1d5
#define KEY_FN_F50x1d6
#define KEY_FN_F60x1d7
#define KEY_FN_F70x1d8
#define KEY_FN_F80x1d9
#define KEY_FN_F90x1da
#define KEY_FN_F100x1db
#define KEY_FN_F110x1dc
#define KEY_FN_F120x1dd
#define KEY_FN_10x1de
#define KEY_FN_20x1df
#define KEY_FN_D0x1e0
#define KEY_FN_E0x1e1
#define KEY_FN_F0x1e2
#define KEY_FN_S0x1e3
#define KEY_FN_B0x1e4
#define KEY_FN_RIGHT_SHIFT0x1e5
#define KEY_BRL_DOT10x1f1
#define KEY_BRL_DOT20x1f2
#define KEY_BRL_DOT30x1f3
#define KEY_BRL_DOT40x1f4
#define KEY_BRL_DOT50x1f5
#define KEY_BRL_DOT60x1f6
#define KEY_BRL_DOT70x1f7
#define KEY_BRL_DOT80x1f8
#define KEY_BRL_DOT90x1f9
#define KEY_BRL_DOT100x1fa
#define KEY_NUMERIC_00x200/* used by phones, remote controls, */
#define KEY_NUMERIC_10x201/* and other keypads */
#define KEY_NUMERIC_20x202
#define KEY_NUMERIC_30x203
#define KEY_NUMERIC_40x204
#define KEY_NUMERIC_50x205
#define KEY_NUMERIC_60x206
#define KEY_NUMERIC_70x207
#define KEY_NUMERIC_80x208
#define KEY_NUMERIC_90x209
#define KEY_NUMERIC_STAR0x20a
#define KEY_NUMERIC_POUND0x20b
#define KEY_NUMERIC_A0x20c/* Phone key A - HUT Telephony 0xb9 */
#define KEY_NUMERIC_B0x20d
#define KEY_NUMERIC_C0x20e
#define KEY_NUMERIC_D0x20f
#define KEY_CAMERA_FOCUS0x210
#define KEY_WPS_BUTTON0x211/* WiFi Protected Setup key */
#define KEY_TOUCHPAD_TOGGLE0x212/* Request switch touchpad on or off */
#define KEY_TOUCHPAD_ON0x213
#define KEY_TOUCHPAD_OFF0x214
#define KEY_CAMERA_ZOOMIN0x215
#define KEY_CAMERA_ZOOMOUT0x216
#define KEY_CAMERA_UP0x217
#define KEY_CAMERA_DOWN0x218
#define KEY_CAMERA_LEFT0x219
#define KEY_CAMERA_RIGHT0x21a
#define KEY_ATTENDANT_ON0x21b
#define KEY_ATTENDANT_OFF0x21c
#define KEY_ATTENDANT_TOGGLE0x21d/* Attendant call on or off */
#define KEY_LIGHTS_TOGGLE0x21e/* Reading light on or off */
#define BTN_DPAD_UP0x220
#define BTN_DPAD_DOWN0x221
#define BTN_DPAD_LEFT0x222
#define BTN_DPAD_RIGHT0x223
#define KEY_BARD0x224/* Humanware DTBM Custom Keys */
#define KEY_TONE_UP0x225
#define KEY_TONE_DOWN0x226
#define KEY_ONLINE0x227/* Humanware Stream V3 Custom Keys */
#define KEY_GOTOPAGE0x228
#define KEY_ALS_TOGGLE0x230/* Ambient light sensor */
#define KEY_ROTATE_LOCK_TOGGLE0x231/* Display rotation lock */
#define KEY_BUTTONCONFIG0x240/* AL Button Configuration */
#define KEY_TASKMANAGER0x241/* AL Task/Project Manager */
#define KEY_JOURNAL0x242/* AL Log/Journal/Timecard */
#define KEY_CONTROLPANEL0x243/* AL Control Panel */
#define KEY_APPSELECT0x244/* AL Select Task/Application */
#define KEY_SCREENSAVER0x245/* AL Screen Saver */
#define KEY_VOICECOMMAND0x246/* Listening Voice Command */
#define KEY_ASSISTANT0x247/* AL Context-aware desktop assistant */
#define KEY_KBD_LAYOUT_NEXT0x248/* AC Next Keyboard Layout Select */
#define KEY_BRIGHTNESS_MIN0x250/* Set Brightness to Minimum */
#define KEY_BRIGHTNESS_MAX0x251/* Set Brightness to Maximum */
#define KEY_KBDINPUTASSIST_PREV0x260
#define KEY_KBDINPUTASSIST_NEXT0x261
#define KEY_KBDINPUTASSIST_PREVGROUP0x262
#define KEY_KBDINPUTASSIST_NEXTGROUP0x263
#define KEY_KBDINPUTASSIST_ACCEPT0x264
#define KEY_KBDINPUTASSIST_CANCEL0x265

/* Diagonal movement keys */

#define KEY_RIGHT_UP0x266
#define KEY_RIGHT_DOWN0x267
#define KEY_LEFT_UP0x268
#define KEY_LEFT_DOWN0x269

#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ /* Show Top Menu of the Media (e.g. DVD) */

#define KEY_MEDIA_TOP_MENU0x26b
#define KEY_NUMERIC_110x26c
#define KEY_NUMERIC_120x26d

* Toggle Audio Description: refers to an audio service that helps blind and

* visually impaired consumers understand the action in a program. Note: in

* some countries this is referred to as "Video Description".

#define KEY_AUDIO_DESC0x26e
#define KEY_3D_MODE0x26f
#define KEY_NEXT_FAVORITE0x270
#define KEY_STOP_RECORD0x271
#define KEY_PAUSE_RECORD0x272
#define KEY_VOD0x273 /* Video on Demand */
#define KEY_UNMUTE0x274
#define KEY_FASTREVERSE0x275
#define KEY_SLOWREVERSE0x276

* Control a data application associated with the currently viewed channel,

* e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)

#define KEY_DATA0x277
#define KEY_ONSCREEN_KEYBOARD0x278

/* Electronic privacy screen control */ #define KEY_PRIVACY_SCREEN_TOGGLE 0x279

/* Select an area of screen to be copied */ #define KEY_SELECTIVE_SCREENSHOT 0x27a

* Some keyboards have keys which do not have a defined meaning, these keys

* are intended to be programmed / bound to macros by the user. For most

* keyboards with these macro-keys the key-sequence to inject, or action to

* take, is all handled by software on the host side. So from the kernel's

* point of view these are just normal keys.

* The KEY_MACRO# codes below are intended for such keys, which may be labeled

* e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys

* where the marking on the key does indicate a defined meaning / purpose.

* The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing

* KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO

* define MUST be added.

#define KEY_MACRO10x290
#define KEY_MACRO20x291
#define KEY_MACRO30x292
#define KEY_MACRO40x293
#define KEY_MACRO50x294
#define KEY_MACRO60x295
#define KEY_MACRO70x296
#define KEY_MACRO80x297
#define KEY_MACRO90x298
#define KEY_MACRO100x299
#define KEY_MACRO110x29a
#define KEY_MACRO120x29b
#define KEY_MACRO130x29c
#define KEY_MACRO140x29d
#define KEY_MACRO150x29e
#define KEY_MACRO160x29f
#define KEY_MACRO170x2a0
#define KEY_MACRO180x2a1
#define KEY_MACRO190x2a2
#define KEY_MACRO200x2a3
#define KEY_MACRO210x2a4
#define KEY_MACRO220x2a5
#define KEY_MACRO230x2a6
#define KEY_MACRO240x2a7
#define KEY_MACRO250x2a8
#define KEY_MACRO260x2a9
#define KEY_MACRO270x2aa
#define KEY_MACRO280x2ab
#define KEY_MACRO290x2ac
#define KEY_MACRO300x2ad

* Some keyboards with the macro-keys described above have some extra keys

* for controlling the host-side software responsible for the macro handling:

* -A macro recording start/stop key. Note that not all keyboards which emit

* KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if

* KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START

* should be interpreted as a recording start/stop toggle;

* -Keys for switching between different macro (pre)sets, either a key for

* cycling through the configured presets or keys to directly select a preset.

#define KEY_MACRO_RECORD_START0x2b0
#define KEY_MACRO_RECORD_STOP0x2b1
#define KEY_MACRO_PRESET_CYCLE0x2b2
#define KEY_MACRO_PRESET10x2b3
#define KEY_MACRO_PRESET20x2b4
#define KEY_MACRO_PRESET30x2b5

* Some keyboards have a buildin LCD panel where the contents are controlled

* by the host. Often these have a number of keys directly below the LCD

* intended for controlling a menu shown on the LCD. These keys often don't

* have any labeling so we just name them KEY_KBD_LCD_MENU#

#define KEY_KBD_LCD_MENU10x2b8
#define KEY_KBD_LCD_MENU20x2b9
#define KEY_KBD_LCD_MENU30x2ba
#define KEY_KBD_LCD_MENU40x2bb
#define KEY_KBD_LCD_MENU50x2bc
#define BTN_TRIGGER_HAPPY0x2c0
#define BTN_TRIGGER_HAPPY10x2c0
#define BTN_TRIGGER_HAPPY20x2c1
#define BTN_TRIGGER_HAPPY30x2c2
#define BTN_TRIGGER_HAPPY40x2c3
#define BTN_TRIGGER_HAPPY50x2c4
#define BTN_TRIGGER_HAPPY60x2c5
#define BTN_TRIGGER_HAPPY70x2c6
#define BTN_TRIGGER_HAPPY80x2c7
#define BTN_TRIGGER_HAPPY90x2c8
#define BTN_TRIGGER_HAPPY100x2c9
#define BTN_TRIGGER_HAPPY110x2ca
#define BTN_TRIGGER_HAPPY120x2cb
#define BTN_TRIGGER_HAPPY130x2cc
#define BTN_TRIGGER_HAPPY140x2cd
#define BTN_TRIGGER_HAPPY150x2ce
#define BTN_TRIGGER_HAPPY160x2cf
#define BTN_TRIGGER_HAPPY170x2d0
#define BTN_TRIGGER_HAPPY180x2d1
#define BTN_TRIGGER_HAPPY190x2d2
#define BTN_TRIGGER_HAPPY200x2d3
#define BTN_TRIGGER_HAPPY210x2d4
#define BTN_TRIGGER_HAPPY220x2d5
#define BTN_TRIGGER_HAPPY230x2d6
#define BTN_TRIGGER_HAPPY240x2d7
#define BTN_TRIGGER_HAPPY250x2d8
#define BTN_TRIGGER_HAPPY260x2d9
#define BTN_TRIGGER_HAPPY270x2da
#define BTN_TRIGGER_HAPPY280x2db
#define BTN_TRIGGER_HAPPY290x2dc
#define BTN_TRIGGER_HAPPY300x2dd
#define BTN_TRIGGER_HAPPY310x2de
#define BTN_TRIGGER_HAPPY320x2df
#define BTN_TRIGGER_HAPPY330x2e0
#define BTN_TRIGGER_HAPPY340x2e1
#define BTN_TRIGGER_HAPPY350x2e2
#define BTN_TRIGGER_HAPPY360x2e3
#define BTN_TRIGGER_HAPPY370x2e4
#define BTN_TRIGGER_HAPPY380x2e5
#define BTN_TRIGGER_HAPPY390x2e6
#define BTN_TRIGGER_HAPPY400x2e7
#define KEY_BRL_SHORTCUT_DOT10x2f1
#define KEY_BRL_SHORTCUT_DOT20x2f2
#define KEY_BRL_SHORTCUT_DOT30x2f3
#define KEY_BRL_SHORTCUT_DOT40x2f4
#define KEY_BRL_SHORTCUT_DOT50x2f5
#define KEY_BRL_SHORTCUT_DOT60x2f6

/* We avoid low common keys in module aliases so they don't get huge. */

#define KEY_MIN_INTERESTINGKEY_MUTE
#define KEY_MAX0x2ff
#define KEY_CNT(KEY_MAX+1)

* Relative axes

#define REL_X0x00
#define REL_Y0x01
#define REL_Z0x02
#define REL_RX0x03
#define REL_RY0x04
#define REL_RZ0x05
#define REL_HWHEEL0x06
#define REL_DIAL0x07
#define REL_WHEEL0x08
#define REL_MISC0x09

* 0x0a is reserved and should not be used in input drivers.

* It was used by HID as REL_MISC+1 and userspace needs to detect if

* the next REL_* event is correct or is just REL_MISC + n.

* We define here REL_RESERVED so userspace can rely on it and detect

* the situation described above.

#define REL_RESERVED0x0a
#define REL_WHEEL_HI_RES0x0b
#define REL_HWHEEL_HI_RES0x0c
#define REL_MAX0x0f
#define REL_CNT(REL_MAX+1)

* Absolute axes

#define ABS_X0x00
#define ABS_Y0x01
#define ABS_Z0x02
#define ABS_RX0x03
#define ABS_RY0x04
#define ABS_RZ0x05
#define ABS_THROTTLE0x06
#define ABS_RUDDER0x07
#define ABS_WHEEL0x08
#define ABS_GAS0x09
#define ABS_BRAKE0x0a
#define ABS_HAT0X0x10
#define ABS_HAT0Y0x11
#define ABS_HAT1X0x12
#define ABS_HAT1Y0x13
#define ABS_HAT2X0x14
#define ABS_HAT2Y0x15
#define ABS_HAT3X0x16
#define ABS_HAT3Y0x17
#define ABS_PRESSURE0x18
#define ABS_DISTANCE0x19
#define ABS_TILT_X0x1a
#define ABS_TILT_Y0x1b
#define ABS_TOOL_WIDTH0x1c

#define ABS_VOLUME 0x20

#define ABS_MISC 0x28

* 0x2e is reserved and should not be used in input drivers.

* It was used by HID as ABS_MISC+6 and userspace needs to detect if

* the next ABS_* event is correct or is just ABS_MISC + n.

* We define here ABS_RESERVED so userspace can rely on it and detect

* the situation described above.

#define ABS_RESERVED 0x2e

#define ABS_MT_SLOT0x2f/* MT slot being modified */
#define ABS_MT_TOUCH_MAJOR0x30/* Major axis of touching ellipse */
#define ABS_MT_TOUCH_MINOR0x31/* Minor axis (omit if circular) */
#define ABS_MT_WIDTH_MAJOR0x32/* Major axis of approaching ellipse */
#define ABS_MT_WIDTH_MINOR0x33/* Minor axis (omit if circular) */
#define ABS_MT_ORIENTATION0x34/* Ellipse orientation */
#define ABS_MT_POSITION_X0x35/* Center X touch position */
#define ABS_MT_POSITION_Y0x36/* Center Y touch position */
#define ABS_MT_TOOL_TYPE0x37/* Type of touching device */
#define ABS_MT_BLOB_ID0x38/* Group a set of packets as a blob */
#define ABS_MT_TRACKING_ID0x39/* Unique ID of initiated contact */
#define ABS_MT_PRESSURE0x3a/* Pressure on contact area */
#define ABS_MT_DISTANCE0x3b/* Contact hover distance */
#define ABS_MT_TOOL_X0x3c/* Center X tool position */
#define ABS_MT_TOOL_Y0x3d/* Center Y tool position */
#define ABS_MAX0x3f
#define ABS_CNT(ABS_MAX+1)

* Switch events

#define SW_LID0x00 /* set = lid shut */
#define SW_TABLET_MODE0x01 /* set = tablet mode */
#define SW_HEADPHONE_INSERT0x02 /* set = inserted */
#define SW_RFKILL_ALL0x03 /* rfkill master switch, type "any"
set = radio enabled */
#define SW_RADIOSW_RFKILL_ALL/* deprecated */
#define SW_MICROPHONE_INSERT0x04 /* set = inserted */
#define SW_DOCK0x05 /* set = plugged into dock */
#define SW_LINEOUT_INSERT0x06 /* set = inserted */

#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */

#define SW_VIDEOOUT_INSERT0x08 /* set = inserted */
#define SW_CAMERA_LENS_COVER0x09 /* set = lens covered */
#define SW_KEYPAD_SLIDE0x0a /* set = keypad slide out */
#define SW_FRONT_PROXIMITY0x0b /* set = front proximity sensor active */
#define SW_ROTATE_LOCK0x0c /* set = rotate locked/disabled */
#define SW_LINEIN_INSERT0x0d /* set = inserted */
#define SW_MUTE_DEVICE0x0e /* set = device disabled */
#define SW_PEN_INSERTED0x0f /* set = pen inserted */
#define SW_MACHINE_COVER0x10 /* set = cover closed */
#define SW_MAX0x10
#define SW_CNT(SW_MAX+1)

* Misc events

#define MSC_SERIAL0x00
#define MSC_PULSELED0x01
#define MSC_GESTURE0x02
#define MSC_RAW0x03
#define MSC_SCAN0x04
#define MSC_TIMESTAMP0x05
#define MSC_MAX0x07
#define MSC_CNT(MSC_MAX+1)

* LEDs

#define LED_NUML0x00
#define LED_CAPSL0x01
#define LED_SCROLLL0x02
#define LED_COMPOSE0x03
#define LED_KANA0x04
#define LED_SLEEP0x05
#define LED_SUSPEND0x06
#define LED_MUTE0x07
#define LED_MISC0x08
#define LED_MAIL0x09
#define LED_CHARGING0x0a
#define LED_MAX0x0f
#define LED_CNT(LED_MAX+1)

* Autorepeat values

#define REP_DELAY0x00
#define REP_PERIOD0x01
#define REP_MAX0x01
#define REP_CNT(REP_MAX+1)

* Sounds

#define SND_CLICK0x00
#define SND_BELL0x01
#define SND_TONE0x02
#define SND_MAX0x07
#define SND_CNT(SND_MAX+1)

#endif image1.jpeg

File details come from the government source that posted it. Updated .