Serial API

The Serial API allows users and developers to interact with their CCOS powered device over a serial connection. This can be used to add and remove chords, change advanced parameters, and perform common commands such as resetting keymaps or resetting the device to factory settings. You can utilize this serial API by using any serial terminal such as serialterminal.com on a serial enabled web browser. The serial connection operates at a baud rate of 115200 bps. In general, a success returns a 0 at the end, while a failure returns a number greater than zero, which represents an error code. When sending Serial API commands to a CharaChorder device, allow for at least 100 microseconds (us) between commands to allow time for the commands to be processed on the device. If there is no time allowed to process commands on the device, then the serial input buffer on the device can fill up and overflow, causing a system crash. Ideally, sequential Serial API commands should be called in a restful manner by waiting for a response from the previous command.

Running some simple commands on serialterminal.com

Running some simple commands on serialterminal.com

Warning

Parameter and keymaps changes, when committed, will degrade the flash chip over time (generally a minimum of 10,000 to 25,000 commits are expected to be stable). If you use the commands below, keep in mind that if you accidentally write a program that unnecessarily commits parameters to your device you can wear it out prematurely. If you plan to programmatically change layouts, for example, you shouldn’t commit the changes unless you need them to persist after power loss.

Chords are stored on external flash and have a minimum of 100,000 commits before any degradation could be expected; however, we have a custom wear leveling algorithm that targets specific sectors so this should extend much farther and is less of a concern.

Note

Throughout this document, lines prefixed with a “>” symbol represent user input in the examples shown.

Note

Two tables on this page are generated from published data: the parameter codes and the action codes, both read from the Firmware Meta API. Everything that describes the wire format itself — the commands, their subcommands, the keymap codes, the chord bit layout — is written by hand, because CCOS publishes nothing machine-readable for it. The firmware repository points at this page for the Serial API, and offers one other reference: a hand-written TypeScript client in DeviceManager.

Commands Overview

Commands are all caps ASCII characters. The return is always one line and includes the command in the return line along with some of the relevant input arguments as well. This makes it more restful and stateless as compared to previous versions of the Serial API.

Command

Description

CMD

Lists available commands.

ID

Identifies device, such as CHARACHORDER ONE M0.

VERSION

Returns the current firmware version, such as 1.1.1

CML

Used for getting, setting (adding or overwriting), and deleting chordmaps.

VAR

Used for getting and settings parameters; this includes setting custom chordmaps.

RST

Restarts/reboots the microcontroller hardware. It has additional arguments for Factory and Bootloader.

RAM

Prints the current amount of SRAM available; this is primarily used for debugging.

SIM

Simulates/injects a chord and outputs the chord output if the chord exists in the chord library; this is primarily used for debugging.

Commands

This section covers the various commands, what they expect, what they return, and has examples of how to use them.

CMD

The CMD command lists out all of the commands in the Serial API. All of the commands are returned in one comma-delimited line. All commands are uppercase ASCII characters.

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

CMD

OUTPUT

0

Command

Chars

CMD

OUTPUT

1

Command List

Chars

CMD,ID,VERSION,CML,VAR,RST,RAM,SIM

Comma delimited

Example(s):

> CMD
CMD CMD,ID,VERSION,CML,VAR,RST,RAM,SIM

ID

The ID command returns the ASCII name of the device, including the chipset code. This can be used to identify the correct serial device attached to the computer.

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

ID

OUTPUT

0

Command

Chars

ID

OUTPUT

1

Company

Chars

CHARACHORDER

OUTPUT

2

Device

Chars

ONE

ONE, LITE, ENGINE, or X

OUTPUT

3

Chipset

Chars

M0

M0 or S2

Example(s):

> ID
ID CHARACHORDER ONE M0

VERSION

The VERSION command returns the current version of the CCOS firmware.

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

VERSION

OUTPUT

0

Command

Chars

VERSION

OUTPUT

1

Command List

Chars

1.1.1

Period delimited of MAJOR.MINOR.BUILD

Example(s):

> VERSION
VERSION 1.1.1

CML

The CML command provides access to the Chordmap Library.

CML SubCommand

Code

Description

GET_CHORDMAP_COUNT

C0

Gets the (decimal) number of chordmaps.

GET_CHORDMAP_BY_INDEX

C1

Gets a chordmap by the index number (hexadecimal uint16) if within range.

GET_CHORDMAP_BY_CHORD

C2

Gets a chordmap by the chord (hexadecimal) value if it is found in the library.

SET_CHORDMAP_BY_CHORD

C3

Sets a chordmap with a chord and output bytes (hexadecimal).

DEL_CHORDMAP_BY_CHORD

C4

Deletes a chordmap from the library if the chord exists.

GET_CHORDMAP_COUNT

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

CML

INPUT

1

SubCommand

Hexadecimal CML Code

C0

Get chordmap count

OUTPUT

0

Command

Chars

CML

OUTPUT

1

SubCommand

Hexadecimal CML Code

C0

OUTPUT

2

Data Out

Decimal Number

1347

Example(s):

> CML C0
CML C0 1347

GET_CHORDMAP_BY_INDEX

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

CML

INPUT

1

SubCommand

Hexadecimal CML Code

C1

Get chordmap by index

INPUT

2

Index

Decimal

522

OUTPUT

0

Command

Chars

CML

OUTPUT

1

SubCommand

Hexadecimal CML Code

C1

OUTPUT

2

Index

Decimal

522

OUTPUT

3

Chord

Hexadecimal Number

001946418C0000000000000000000000

This will be 0 if index is out of bounds

OUTPUT

4

Phrase

Hexadecimal CCActionCodes List

6361727065206469656D

carpe diem; this will be 0 if index is out of bounds

OUTPUT

5

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if the chordmap did not exist

Example(s):

> CML C1 522
CML C1 522 001946418C0000000000000000000000 6361727065206469656D 0

GET_CHORDMAP_BY_CHORD

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

CML

INPUT

1

SubCommand

Hexadecimal CML Code

C2

get chordmap by chord

INPUT

2

Chord

Hexadecimal Number

001946418C0000000000000000000000

OUTPUT

0

Command

Chars

CML

OUTPUT

1

SubCommand

Hexadecimal CML Code

C2

OUTPUT

2

Chord

Hexadecimal Number

001946418C0000000000000000000000

OUTPUT

3

Phrase

Hexadecimal CCActionCodes List

6361727065206469656D

carpe diem; this will be 0 if chordmap is not in the library

Example(s):

> CML C2 00000000E4E2B0160F84B20ACE7638C0
CML C2 00000000E4E2B0160F84B20ACE7638C0 6361727065206469656D

SET_CHORDMAP_BY_CHORD

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

CML

INPUT

1

SubCommand

Hexadecimal CML Code

C3

set chordmap by chord

INPUT

2

Chord

Hexadecimal Number

001946418C0000000000000000000000

INPUT

3

Phrase

Hexadecimal CCActionCodes List

6361727065206469656D

carpe diem

OUTPUT

0

Command

Chars

CML

OUTPUT

1

SubCommand

Hexadecimal CML Code

C3

OUTPUT

2

Chord

Hexadecimal Number

001946418C0000000000000000000000

OUTPUT

3

Phrase

Hexadecimal CCActionCodes List

6361727065206469656D

carpe diem; this will be 0 if there was a problem adding this chordmap to the library

OUTPUT

4

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if the chordmap did not exist or the deletion was unsuccessful

Example(s):

> CML C3 00000000E4E2B0160F84B20ACE7638C0 6361727065206469656D
CML C3 00000000E4E2B0160F84B20ACE7638C0 6361727065206469656D 0

DEL_CHORDMAP_BY_CHORD

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

CML

INPUT

1

SubCommand

Hexadecimal CML Code

C4

delete chordmap by chord

INPUT

2

Chord

Hexadecimal Number

001946418C0000000000000000000000

OUTPUT

0

Command

Chars

CML

OUTPUT

1

SubCommand

Hexadecimal CML Code

C4

OUTPUT

2

Chord

Hexadecimal Number

001946418C0000000000000000000000

This will be 0 if the chordmap did not exist or the deletion was unsuccessful

OUTPUT

3

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if the chordmap did not exist or the deletion was unsuccessful

Example(s):

> CML C4 00000000E4E2B0160F84B20ACE7638C0
CML C4 00000000E4E2B0160F84B20ACE7638C0 0

VAR

The VAR command provides access to customizable parameters. This includes access to custom keymaps.

VAR Subcommands

VAR SubCommand

Code

Description

CMD_VAR_COMMIT

B0

Commits any parameter changes to persistent memory.

CMD_VAR_GET_PARAMETER

B1

Gets the value of a parameter.

CMD_VAR_SET_PARAMETER

B2

Sets the value of a parameter.

CMD_VAR_GET_KEYMAP

B3

Gets the value of a key in a keymap.

CMD_VAR_SET_KEYMAP

B4

Sets the value of a key in a keymap.

Keymap codes

Keymap Codes

Code

Description

Primary

A1

The default primary keymap. In the CharaChorder One this is called the Alpha keymap, while on the CharaChorder Lite this defaults to a Qwerty layout.

Secondary

A2

The default secondary keymap. In the CharaChorder One this is called the Num-shift keymap, while on the CharaChorder Lite this provides some additional function and numpad keys.

Tertiary

A3

The default tertiary keymap. In the CharaChorder One this is called the Function keymap, while on the CharaChorder Lite this is a copy of the secondary keymap.

Note

The letter selects one of the three profiles added in firmware 2.2.0-beta (A, B or C); the digit selects the layer within it, exactly as described above for profile A. B1-B3 and C1-C3 address the same three layers in profiles B and C.

Confirmed on hardware (2026-08, CCOS 3.0.0): writing a keymap entry to B1 with CMD_VAR_SET_KEYMAP changes what CMD_VAR_GET_KEYMAP reads back from B1 at that index, while A1 and C1 at the same index are unaffected.

Parameter codes

Parameter

Hexadecimal Code

Description

keyboard/enable

0x11

Range 0 to 1. Default 1.

keyboard/command control swap

0x13

Swaps CTRL and ⌘ to make transitioning between Mac and other systems easier. Range 0 to 1. Default 0.

keyboard/debounce press

0x15

Range 0 ms to 255 ms. Default 16 ms.

keyboard/debounce release

0x16

Range 0 ms to 255 ms. Default 16 ms.

keyboard/rollover

0x17

How many keys can be held at once and still be detected by your PC, excluding modifier keys. Older hardware or especially BIOS/UEFI might only support 6-key rollover. This only affects reporting to the host system, CCOS always uses full n-key-rollover. Requires a replug to be effective. One of: 6 key, 12 key, 18 key. Default 12 key.

fuzzy modifiers/enable

0x18

Range 0 ms to 1 ms. Default 0 ms.

fuzzy modifiers/press theshold

0x19

The time between a modifier press and the previous key press. Range 0 ms to 255 ms. Default 50 ms.

fuzzy modifiers/release theshold

0x1A

The time between a modifier release and the previous key press. Range 0 ms to 255 ms. Default 110 ms.

fuzzy modifiers/release guard threshold

0x1B

The time between a modifier press and a subsequent key press that prevents the next modifier release from affecting it. Range 0 ms to 255 ms. Default 50 ms.

mouse/enable

0x21

Range 0 to 1. Default 1.

mouse/slow speed

0x22

Range 0 px to 255 px. Default 50 px.

mouse/fast speed

0x23

Range 0 px to 2550 px, in steps of 10 px. Default 250 px.

mouse/caffeine

0x24

Keeps computer alive by moving the mouse back and forth one pixel every 60s. Range 0 to 1. Default 0.

mouse/scroll speed

0x25

Range 0 pg to 255 pg. Default 2 pg.

mouse/scroll throttle

0x27

Windows struggles to process fast scrolling. Range 0 ms to 255 ms. Default 16 ms.

chording/enable

0x31

Range 0 to 1. Default 1.

chording/press tolerance

0x34

Scales with the number of chord inputs. Range 0 ms to 255 ms. Default 30 ms.

chording/release tolerance

0x35

Scales with the number of chord inputs. Range 0 ms to 255 ms. Default 25 ms.

autocorrect/maximum attempts

0x36

Set to 0 to turn off autocorrect. An attempt is every stroke from the first keypress to the next full release. Recommended to turn off when you are comfortable using Quickfix. Range 0 to 255. Default 10.

autocorrect/timeout

0x37

Range 0 s to 25.5 s, in steps of 0.1 s. Default 8 s.

chording/minimum chord keys

0x38

A minimum chord key count of 1 can very slightly affect typing latency. Range 1 to 12. Default 2.

chording/tap dance tolerance

0x39

Range 0 to 1275, in steps of 5. Default 175.

chording/concatenation style

0x3E

Appended (classic) places spaces directly after a chord. Recommended for typists. Prepended places spaces lazily between two chords. Recommended for text editing and coding. One of: appended, prepended. Default appended.

chording/detection method

0x3F

In latency (classic) mode each key is printed instantly and backspaced after a successful chord. Smart adds a small amount of latency depending on your tolerances, and only prints characters when it is no longer plausible for the inputs to be a chord input. Continuous (spurring) and allows you to jump from one chord to the next without releasing all keys, with more potential speed traded against the flexibility of character entry. One of: latency, smart, continuous. Default latency.

arpeggiates/enable

0x51

Range 0 to 1. Default 1.

arpeggiates/timeout

0x54

Range 0 ms to 2550 ms, in steps of 10 ms. Default 1200 ms.

arpeggiates/mode

0x55

One of: all, chord modifiers, arpeggiate chords. Default all.

chording/compound timeout

0x64

Range 0 ms to 2550 ms, in steps of 10 ms. Default 1000 ms.

gaming/layer warp

0x70

Re-press held keys with new layer mappings when switching layers. Range 0 to 1. Default 0.

leds/hue

0x81

Range 0 to 65280, in steps of 256. Default 0. CharaChorder Lite, Master Forge only.

leds/saturation

0x82

Range 0 to 255. Default 255. CharaChorder Lite, Master Forge only.

leds/brightness

0x83

Range 0 to 255. Default 255. CharaChorder Lite, Master Forge only.

leds/enable

0x84

Range 0 to 1. Default 1. CharaChorder Lite, Master Forge only.

leds/effect

0x85

One of: static, rainbow. Default rainbow. CharaChorder Lite, Master Forge only.

leds/effect cycle

0x86

Range 0.1 s to 25.5 s, in steps of 0.1 s. Default 25 s. CharaChorder Lite, Master Forge only.

leds/on off transition

0x88

Range 0 ms to 2550 ms, in steps of 10 ms. Default 1000 ms. CharaChorder Lite, Master Forge only.

leds/off delay

0x89

Range 0 ms to 2550 ms, in steps of 10 ms. Default 1000 ms. CharaChorder Lite, Master Forge only.

misc/operating system

0x91

One of: windows, mac, linux, ios, android. Default windows.

misc/realtime feedback

0x92

Range 0 to 1. Default 1.

usb/aggressive reporting throttle

0x93

Range 0 s to 25.5 s, in steps of 0.1 s. Default 0 s.

usb/poll rate

0x94

Requires a replug to be effective. One of: 1000Hz, 500Hz, 250Hz, 125Hz. Default 1000Hz.

usb/aggressive reporting

0x95

Some hardware combinations, especially with USB hubs, might cause the host to timeout waiting for responses. Enabling this setting will cause the device to always respond with the last report. One of: never, active only. Default never.

usb/hid resend throttle

0x97

Range 10 ms to 2550 ms, in steps of 10 ms. Default 10 ms.

ccx/uart pass

0xC1

Range 0 to 1. Default 0. CharaChorder X, CharaChorder Engine only.

Note

Every code in this table addresses profile A. Profile B’s copy of a parameter is at id + 0x100, and profile C’s is at id + 0x200 – for example, parameter 0x15 in profile B is addressed as 0x115, and in profile C as 0x215. See profiles.

Confirmed on hardware (2026-08, CCOS 3.0.0): writing to 0x115 with CMD_VAR_SET_PARAMETER changes what CMD_VAR_GET_PARAMETER reads back from 0x115, while 0x15 and 0x215 are unaffected.

Serial output toggles

Code

Name

0x01

Enable Serial Header

0x02

Enable Serial Logging

0x03

Enable Serial Debugging

0x04

Enable Serial Raw

0x05

Enable Serial Chord

0x06

Enable Serial Keyboard

0x07

Enable Serial Mouse

0x12

Enable Character Entry

Note

These eight switch serial output on and off rather than change a device setting, so the Firmware Meta API does not publish them and this table stays hand-written.

Confirmed on hardware (2026-08, CCOS 3.0.0): all eight still answer CMD_VAR_GET_PARAMETER, and all default to 0, consistent with the “enable” names above. None of the eight codes has been reassigned to a setting the Meta API currently publishes, unlike some other codes from the same era. The names predate this check and have only been confirmed to the extent of that default value, not by toggling each one and observing the resulting serial output.

Operating system codes

Operating System Codes

Code

Windows

0

Mac

1

Linux

2

iOS

3

Android

4

Note

Codes 0 to 4 are the positions of the values in the misc/operating system enum, which the Firmware Meta API spells in lower case: windows, mac, linux, ios, android.

This table used to list Unknown at code 255 as well. Tested on hardware (2026-08): writing 255 to parameter 0x91 with CMD_VAR_SET_PARAMETER and reading it back with CMD_VAR_GET_PARAMETER returns 5, not 255 — the value does not round-trip, so the firmware does not actually store 255 for this setting. The row was removed.

CMD_VAR_COMMIT

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

VAR

INPUT

1

SubCommand

Hexadecimal VAR Code

B0

Commit parameters to memory

OUTPUT

0

Command

Chars

VAR

OUTPUT

1

SubCommand

Hexadecimal VAR Code

B0

OUTPUT

2

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if there was a problem commiting

Example(s):

> VAR B0
VAR B0 1

CMD_VAR_GET_PARAMETER

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

VAR

INPUT

1

SubCommand

Hexadecimal VAR Code

B1

Get parameter value

INPUT

2

Parameter Code

Hexadecimal Parameter Code

0x15

OUTPUT

0

Command

Chars

VAR

OUTPUT

1

SubCommand

Hexadecimal VAR Code

B1

OUTPUT

2

Parameter Code

Hexadecimal Parameter Code

0x15

OUTPUT

3

Data Out

Decimal Number

7

OUTPUT

4

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if the VAR Code or Parameter Code doesnt exist

Example(s):

> VAR B1 0x15
VAR B1 0x15 7 0

CMD_VAR_SET_PARAMETER

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

VAR

INPUT

1

SubCommand

Hexadecimal VAR Code

B2

Set parameter value

INPUT

2

Parameter Code

Hexadecimal Parameter Code

0x15

INPUT

3

Data In

Decimal Number

17

OUTPUT

0

Command

Chars

VAR

OUTPUT

1

SubCommand

Hexadecimal VAR Code

B2

OUTPUT

2

Parameter Code

Hexadecimal Parameter Code

0x15

OUTPUT

3

Data Out

Decimal Number

17

This will be a 00 (double zero) if the VAR Code or Parameter Code doesn’t exist or the input value is out of range

OUTPUT

4

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if there was a problem

Example(s):

> VAR B2 0x15 17
VAR B2 0x15 17 0

CMD_VAR_GET_KEYMAP

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

VAR

INPUT

1

SubCommand

Hexadecimal VAR Code

B3

Get keymap parameter value

INPUT

2

Keymap

Hexadecimal Keymap Code

A1

INPUT

3

Index

Decimal Number

24

For CC1, 0-89 are valid. For CCL, 0-66 are valid.

OUTPUT

0

Command

Chars

VAR

OUTPUT

1

SubCommand

Hexadecimal VAR Code

B3

OUTPUT

2

Keymap

Hexadecimal Keymap Code

A1

OUTPUT

3

Index

Decimal Number

24

OUTPUT

4

Action Id

Decimal Number

111

Valid action Ids range from 8 thru 2047.

OUTPUT

5

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if either the Keymap Code or Index are out of range.

Example(s):

> VAR B3 A1 24
VAR B3 A1 24 111 0

CMD_VAR_SET_KEYMAP

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

VAR

INPUT

1

SubCommand

Hexadecimal VAR Code

B4

Set keymap parameter value

INPUT

2

Keymap

Hexadecimal Keymap Code

A1

INPUT

3

Index

Decimal Number

24

For CC1, 0-89 are valid. For CCL, 0-66 are

INPUT

4

Action Id

Decimal Number

112

Valid action Ids range from 8 thru 2047.

OUTPUT

0

Command

Chars

VAR

OUTPUT

1

SubCommand

Hexadecimal VAR Code

B4

OUTPUT

2

Keymap

Hexadecimal Keymap Code

A0

OUTPUT

3

Index

Decimal Number

24

OUTPUT

4

Action Id

Decimal Number

112

Valid action Ids range from 8 thru 2047. Returns a 00 if either the Keymap Code or Index or Action Id are out of range.

OUTPUT

5

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if the chordmap did not exist or the deletion was unsuccessful

Example(s):

> VAR B4 A0 24 112
VAR B4 A0 24 112 0

RST

The RST command restarts the CCOS device. This will most likely also break the current Serial connection, and a new connection will need to be made. If the COMMIT command has not been called before a RESTART command, then the device will revert to the last settings stored in the non-volatile memory.

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

RST

OUTPUT

0

Command

Chars

RST

Without optional command, this just restarts the device

OUTPUT

1

SubCommand

Chars

BOOTLOADER

See full list of subcommands below

OUTPUT

2

Success

Boolean Number

0

This will be 0 on success, or greater than zero for an error if the subcommand did not exist or the subcommand was unsuccessful

RST SubCommands

RST SubCommand

Notes

RESTART

Restarts the microcontroller.

FACTORY

Performs a factory reset of the flash and emulated eeprom. During the process, the flash chip is erased.

BOOTLOADER

Restarts the device into a bootloader mode. On a CC1 or CCL M0, the device may be stuck in UF2 bootloader mode until a UF2 file is pasted into the mass storage device. You can copy and paste the UF2 file already in the mass storage device.

PARAMS

Resets the parameters to factory defaults and commits.

KEYMAPS

Resets the keymaps to the factory defaults and commits.

STARTER

Adds starter chordmaps. This does not clear the chordmap library, but adds to it, replacing those that have the same chord.

CLEARCML

Permanently deletes all the chordmaps stored in the device memory.

UPGRADECML

Attempts to upgrade chordmaps that the system detects are older. This is under development.

FUNC

Adds back in functional chords such as CAPSLOCKS and Backspace-X chords.

RAM

The RAM command returns the current number of bytes availabe in SRAM. This is useful for debugging when there is a suspected heap or stack issue.

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

RAM

OUTPUT

0

Command

Chars

RAM

OUTPUT

1

Bytes Available

Decimal

425

Example(s):

> RAM
RAM 425

SIM

The SIM command provides a way to inject a chord or key states to be processed by the device. This is primarily used for debugging.

I/O

Index

Name

Type

Example

Notes

INPUT

0

Command

Chars

SIM

INPUT

1

SubCommand

Chars

CHORD

CHORD or KEYSTATE; may change this to Hexadecimal codes

INPUT

2

Data In

Hexadecimal Number

001946418C0000000000000000000000

Chords should be 32 characters

OUTPUT

0

Command

Chars

SIM

OUTPUT

1

SubCommand

Chars

CHORD

OUTPUT

2

Data In

Hexadecimal Number

001946418C0000000000000000000000

OUTPUT

3

Data Out

Hexadecimal CCActionCodes List

6361727065206469656D

carpe diem

Example(s):

> SIM CHORD 001946418C0000000000000000000000
SIM CHORD 001946418C0000000000000000000000 6361727065206469656D
> SIM CHORD 00000000E4E2B0160F84B20ACE7638C0
SIM CHORD 00000000E4E2B0160F84B20ACE7638C0 0 # Returns a 0 if there is no chordmap in the library

Chord Construction

There are 128-bits in a chord. The first 8 bits will typically be 0x00, as this byte value is used to store an index value for chordmaps where the chord output is longer than what can be stored in memory in a single chordmap, which has 192 bytes allocated per memory entry.

The next 120-bit bits are segmented into twelve 10-bit chunks. Each 10-bit value is a 10-bit CC action code. While CC action codes can reference up to 13-bits, only up to 10-bit values can be used for key inputs. The key inputs for a chord are sorted in descending order from greatest in value to least in value.

Chain Index

Key 1

Key 2

Key 3

Key 4

Key 5

Key 6

Key 7

Key 8

Key 9

Key 10

Key 11

Key 12

bits

8 bits

10 bits

10 bits

10 bits

10 bits

10 bits

10 bits

10 bits

10 bits

10 bits

10 bits

10 bits

10 bits

example 1

0

w

r

o

l

d

decimal 1

0

119

114

111

108

100

0

0

0

0

0

0

0

example 2

0

DUP

t

m

decimal 2

0

536

116

109

0

0

0

0

0

0

0

0

0

Note that yes it is possible to use the same CC action code multiple times for keys in a chord, but these chords cannot be activated unless the device’s keymap has more than one instance of the same CC action code assigned to more than one of the keys on the A1 keymap layer.

If a chord is attempted to be formed by more than 12 keys, then the smallest key values after being sorted should be truncated to just 12 values. This chord bit structure can not support more than twelve 10-bit keys. Most chords will have trailing zeros.

To use these chords with the Serial API, they should be converted to a 16-character hexadecimal representation.

Action codes

Every CC action code published by the firmware, grouped by category. Chords store these as decimal values; see Chord Construction.

Keyboard

Code

Hex

ID

Description

127

0x7F

DEL

Delete

296

0x128

ENTER

Keyboard Return (US English)

297

0x129

ESC

Keyboard Escape (US English)

298

0x12A

BKSP

Keyboard Backspace (US English)

299

0x12B

TAB

Keyboard Tab (US English)

330

0x14A

HOME

Keyboard Home

331

0x14B

PGUP

Keyboard Page Up

333

0x14D

END

Keyboard End

334

0x14E

PGDN

Keyboard Page Down

335

0x14F

ARROW_RT

Keyboard Right Arrow

336

0x150

ARROW_LF

Keyboard Left Arrow

337

0x151

ARROW_DN

Keyboard Down Arrow

338

0x152

ARROW_UP

Keyboard Up Arrow

533

0x215

DUP_RIGHT

Repeat Last Note

535

0x217

DUP_ALL

Repeat the last note, including non-printable characters

536

0x218

DUP

Repeat Last Note

Modifiers

Code

Hex

ID

Description

313

0x139

CAPSLOCK

Caps Lock

512

0x200

LEFT_CTRL

Control Modifier

513

0x201

LEFT_SHIFT

Shift Modifier

514

0x202

LEFT_ALT

Alt Modifier

515

0x203

LEFT_GUI

GUI/Windows/Super Modifier

516

0x204

RIGHT_CTRL

Control Modifier

517

0x205

RIGHT_SHIFT

Shift Modifier

518

0x206

RIGHT_ALT

Alt Modifier

519

0x207

RIGHT_GUI

GUI/Windows/Super Modifier

540

0x21C

AMBILEFT

Ambidextrous Throwover

542

0x21E

AMBIRIGHT

Ambidextrous Throwover

548

0x224

KM_1_L

Primary Layer

549

0x225

KM_1_R

Primary Layer

550

0x226

KM_2_L

Numeric Layer

551

0x227

KM_2_R

Numeric Layer

552

0x228

KM_3_L

Function Layer

553

0x229

KM_3_R

Function Layer

554

0x22A

KM_4_L

Flag Layer

555

0x22B

KM_4_R

Flag Layer

650

0x28A

PROFILE_A

Profile A

651

0x28B

PROFILE_B

Profile B

652

0x28C

PROFILE_C

Profile C

F-Keys

Code

Hex

ID

Description

314

0x13A

F1

Keyboard F1

315

0x13B

F2

Keyboard F2

316

0x13C

F3

Keyboard F3

317

0x13D

F4

Keyboard F4

318

0x13E

F5

Keyboard F5

319

0x13F

F6

Keyboard F6

320

0x140

F7

Keyboard F7

321

0x141

F8

Keyboard F8

322

0x142

F9

Keyboard F9

323

0x143

F10

Keyboard F10

324

0x144

F11

Keyboard F11

325

0x145

F12

Keyboard F12

360

0x168

F13

Keyboard F13

361

0x169

F14

Keyboard F14

362

0x16A

F15

Keyboard F15

363

0x16B

F16

Keyboard F16

364

0x16C

F17

Keyboard F17

365

0x16D

F18

Keyboard F18

366

0x16E

F19

Keyboard F19

367

0x16F

F20

Keyboard F20

368

0x170

F21

Keyboard F21

369

0x171

F22

Keyboard F22

370

0x172

F23

Keyboard F23

371

0x173

F24

Keyboard F24

Mouse

Mouse Actions

Code

Hex

ID

Description

560

0x230

MS_CLICK_BWD

Mouse Backward Button Click

561

0x231

MS_CLICK_FWD

Mouse Forward Button Click

562

0x232

MS_CLICK_LF

Mouse Left Click

563

0x233

MS_CLICK_RT

Mouse Right Click

564

0x234

MS_CLICK_MD

Mouse Middle Click

565

0x235

MS_MOVE_RT

Mouse Move Right

566

0x236

MS_MOVE_LF

Mouse Move Left

567

0x237

MS_MOVE_DN

Mouse Move Down

568

0x238

MS_MOVE_UP

Mouse Move Up

569

0x239

MS_SCRL_RT

Mouse Scroll Right

570

0x23A

MS_SCRL_LF

Mouse Scroll Left

571

0x23B

MS_SCRL_DN

Mouse Scroll Down

572

0x23C

MS_SCRL_UP

Mouse Scroll Up

589

0x24D

MS_SPIN_SCRL_H_1

Spin Pan North

590

0x24E

MS_SPIN_SCRL_H_2

Spin Pan East

591

0x24F

MS_SPIN_SCRL_H_3

Spin Pan South

592

0x250

MS_SPIN_SCRL_H_4

Spin Pan West

593

0x251

MS_SPIN_SCRL_V_1

Spin Scroll North

594

0x252

MS_SPIN_SCRL_V_2

Spin Scroll East

595

0x253

MS_SPIN_SCRL_V_3

Spin Scroll South

596

0x254

MS_SPIN_SCRL_V_4

Spin Scroll West

Chording

CharaChorder specific actions

Code

Hex

ID

Description

256

0x100

KSC_00

Inhibit Concatenator

523

0x20B

PRESS_NEXT

Press and do not release the next key/action

524

0x20C

RELEASE_NEXT

Release the next key/action in the sequence

545

0x221

HYPERSPACE

Hyperspace

547

0x223

CAPTURE

Hyperspace Capture

558

0x22E

HOLD_COMPOUND

Dynamic Library

559

0x22F

RELEASE_COMPOUND

Base Library

573

0x23D

CAPITALIZE

Capitalize

574

0x23E

JOIN

Join

575

0x23F

QUICKFIX

Quickfix

577

0x241

DELAY_100

Delay 100ms

578

0x242

DELAY_10

Delay 10ms

579

0x243

DELAY_1

Delay 1ms

597

0x255

DELAY_500

Delay 500ms

598

0x256

DELAY_1000

Delay 1000ms

1001

0x3E9

ARPEGGIATE

Arpeggiate Chord

1002

0x3EA

TAP_DANCE

Tap Dance Chord

Pseudo Actions

These actions don’t do anything, and can be used for single-key chords

Code

Hex

ID

Description

600

0x258

LH_THUMB_3_3D

Pseudo 01

601

0x259

LH_THUMB_2_3D

Pseudo 02

602

0x25A

LH_THUMB_1_3D

Pseudo 03

603

0x25B

LH_INDEX_3D

Pseudo 04

604

0x25C

LH_MID_1_3D

Pseudo 05

605

0x25D

LH_RING_1_3D

Pseudo 06

606

0x25E

LH_PINKY_3D

Pseudo 07

607

0x25F

LH_MID_2_3D

Pseudo 08

608

0x260

LH_RING_2_3D

Pseudo 09

609

0x261

RH_THUMB_3_3D

Pseudo 10

610

0x262

RH_THUMB_2_3D

Pseudo 11

611

0x263

RH_THUMB_1_3D

Pseudo 12

612

0x264

RH_INDEX_3D

Pseudo 13

613

0x265

RH_MID_1_3D

Pseudo 14

614

0x266

RH_RING_1_3D

Pseudo 15

615

0x267

RH_PINKY_3D

Pseudo 16

616

0x268

RH_MID_2_3D

Pseudo 17

617

0x269

RH_RING_2_3D

Pseudo 18

International

Macros for the US-Intl. layout. Exact mappings may vary depending on the system and specific variation of the layout.

Code

Hex

ID

Description

700

0x2BC

ALT_R_SPACE

SPACE + AltGr

701

0x2BD

¡

1 + Shift + AltGr

702

0x2BE

DEAD_DIAERESIS

Quote + Shift + AltGr

703

0x2BF

DEAD_MACRON

3 + Shift + AltGr

704

0x2C0

£

1 + Shift + AltGr

705

0x2C1

DEAD_CEDILLA

5 + Shift + AltGr

706

0x2C2

½

7 + Shift + AltGr

707

0x2C3

DEAD_ACUTE

Quote + AltGr

708

0x2C4

DEAD_BREVE

9 + Shift + AltGr

709

0x2C5

DEAD_OVERRING

0 + Shift + AltGr

710

0x2C6

¾

8 + Shift + AltGr

711

0x2C7

÷

Equal + Shift + AltGr

712

0x2C8

ç

Comma + AltGr

713

0x2C9

¥

Minus + AltGr

714

0x2CA

DEAD_OVERDOT

Period + AltGr

715

0x2CB

¿

Slash + AltGr

716

0x2CC

0 + AltGr

717

0x2CD

¹

1 + AltGr

718

0x2CE

²

2 + AltGr

719

0x2CF

³

3 + AltGr

720

0x2D0

¤

4 + AltGr

721

0x2D1

5 + AltGr

722

0x2D2

DEAD_CARET

6 + AltGr

723

0x2D3

DEAD_DOUBLE_QUOTE

7 + AltGr

724

0x2D4

DEAD_HOOK_RIGHT

8 + AltGr

725

0x2D5

9 + AltGr

726

0x2D6

°

Semicolon + Shift + AltGr

727

0x2D7

Semicolon + AltGr

728

0x2D8

Ç

Comma + Shift + AltGr

729

0x2D9

×

Equals + AltGr

730

0x2DA

DEAD_CARON

Period + Shift + AltGr

731

0x2DB

DEAD_HOOK_ABOVE

Slash + Shift + AltGr

732

0x2DC

ALT_R_SHIFT_2

2 + Shift + AltGr

733

0x2DD

Á

a + Shift + AltGr

734

0x2DE

DEAD_SLASH

b + Shift + AltGr

735

0x2DF

¢

c + Shift + AltGr

736

0x2E0

Ð

d + Shift + AltGr

737

0x2E1

É

e + Shift + AltGr

738

0x2E2

ALT_R_SHIFT_F

f + Shift + AltGr

739

0x2E3

ALT_R_SHIFT_G

g + Shift + AltGr

740

0x2E4

ALT_R_SHIFT_H

h + Shift + AltGr

741

0x2E5

Í

i + Shift + AltGr

742

0x2E6

Ï

j + Shift + AltGr

743

0x2E7

Œ

k + Shift + AltGr

744

0x2E8

Ø

l + Shift + AltGr

745

0x2E9

±

m + Shift + AltGr

746

0x2EA

Ñ

n + Shift + AltGr

747

0x2EB

Ó

o + Shift + AltGr

748

0x2EC

Ö

p + Shift + AltGr

749

0x2ED

Ä

q + Shift + AltGr

750

0x2EE

Ë

r + Shift + AltGr

751

0x2EF

§

s + Shift + AltGr

752

0x2F0

Þ

t + Shift + AltGr

753

0x2F1

Ú

u + Shift + AltGr

754

0x2F2

v + Shift + AltGr

755

0x2F3

Å

w + Shift + AltGr

756

0x2F4

ALT_R_SHIFT_X

x + Shift + AltGr

757

0x2F5

Ü

y + Shift + AltGr

758

0x2F6

Æ

z + Shift + AltGr

759

0x2F7

«

Left Bracket + AltGr

760

0x2F8

¬

Backslash + AltGr

761

0x2F9

»

Right Bracket + AltGr

762

0x2FA

¼

6 + Shift + AltGr

763

0x2FB

DEAD_UNDERDOT

Minus + Shift + AltGr

764

0x2FC

DEAD_GRAVE

Grave + AltGr

765

0x2FD

á

a + AltGr

766

0x2FE

·

b + AltGr

767

0x2FF

©

c + AltGr

768

0x300

ð

d + AltGr

769

0x301

é

e + AltGr

770

0x302

ALT_R_f

f + AltGr

771

0x303

ALT_R_g

g + AltGr

772

0x304

ALT_R_h

h + AltGr

773

0x305

í

i + AltGr

774

0x306

ï

j + AltGr

775

0x307

œ

k + AltGr

776

0x308

ø

l + AltGr

777

0x309

µ

m + AltGr

778

0x30A

ñ

n + AltGr

779

0x30B

ó

o + AltGr

780

0x30C

ö

p + AltGr

781

0x30D

ä

q + AltGr

782

0x30E

ë

r + AltGr

783

0x30F

ß

s + AltGr

784

0x310

þ

t + AltGr

785

0x311

ú

u + AltGr

786

0x312

®

v + AltGr

787

0x313

å

w + AltGr

788

0x314

ALT_R_X

x + AltGr

789

0x315

ü

y + AltGr

790

0x316

æ

z + AltGr

791

0x317

Left Bracket + Shift + AltGr

792

0x318

¦

Backslash + Shift + AltGr

793

0x319

Right Bracket + Shift + AltGr

794

0x31A

DEAD_TILDE

Grave + Shift + AltGr

795

0x31B

ALT_R_DEL

DEL + AltGr

798

0x31E

ALT_R_ISO_BACKSLASH

ISO_BACKSLASH + AltGr

799

0x31F

SHIFT_ALT_R_ISO_BACKSLASH

ISO_BACKSLASH + Shift + AltGr

Modes

Code

Hex

ID

Description

531

0x213

VIM

VIM Mode

532

0x214

GTM

GTM Toggle

534

0x216

IMPULSE

Impulse Toggle

538

0x21A

SPUR

Spurring Toggle

576

0x240

ACTIVE_QUICKFIX

Active Quickfix

Windows Alt Codes

Special characters that can be inserted on Windows by holding ALT and typing a code on the Numpad.

Code

Hex

ID

Description

128

0x80

€ (Windows Alt Code)

Uppercase cedilla

129

0x81

HOP

HOP (High Octet Preset)

130

0x82

Single Low-9 Quotation Mark

131

0x83

ƒ

Latin Small Letter f with Hook; Florin

132

0x84

Double Low-9 Quotation Mark

133

0x85

Horizontal Ellipsis

134

0x86

Dagger

135

0x87

Double Dagger

136

0x88

ˆ

Circumflex

137

0x89

Per Mile

138

0x8A

Š

Captial S Caron

139

0x8B

Left Guillemet

140

0x8C

Œ (Windows Alt Code)

Captial Ligature OE

141

0x8D

RI (Reverse Index)

142

0x8E

Ž

Captial Z Caron

143

0x8F

SS3 (Single-Shift G3)

144

0x90

DCS (Device Control String)

145

0x91

‘ (Windows Alt Code)

Single Quote Left

146

0x92

’ (Windows Alt Code)

Single Quote Right

147

0x93

“ (Windows Alt Code)

Double Quote Left

148

0x94

” (Windows Alt Code)

Double Quote Right

149

0x95

Bullet

150

0x96

En Dash

151

0x97

Em Dash

152

0x98

˜

Small Tilde

153

0x99

™ (Windows Alt Code)

Trademark

154

0x9A

š

Small s Carson

155

0x9B

Right Guillement

156

0x9C

œ (Windows Alt Code)

Small Ligature oe

157

0x9D

Operating System Command

158

0x9E

ž

Small Z Caron

159

0x9F

Ÿ

Capital Y Diaresis

160

0xA0

NO_BREAK_SPACE

No Break Space

161

0xA1

¡ (Windows Alt Code)

Inverted Exclamation

162

0xA2

¢ (Windows Alt Code)

Cent

163

0xA3

£ (Windows Alt Code)

Pound

164

0xA4

¤ (Windows Alt Code)

Currency

165

0xA5

¥ (Windows Alt Code)

Yen

166

0xA6

¦ (Windows Alt Code)

Broken Bar

167

0xA7

§ (Windows Alt Code)

Section

168

0xA8

¨

Diaresis

169

0xA9

© (Windows Alt Code)

Copyright

170

0xAA

ª

Feminine Ordinal

171

0xAB

« (Windows Alt Code)

Double Left Guillement

172

0xAC

¬ (Windows Alt Code)

Not

173

0xAD

­

Soft Hyphen

174

0xAE

® (Windows Alt Code)

Registered

175

0xAF

¯

Macron

176

0xB0

° (Windows Alt Code)

Degree

177

0xB1

± (Windows Alt Code)

Plus Minus

178

0xB2

² (Windows Alt Code)

Superscript Two

179

0xB3

³ (Windows Alt Code)

Superscript Three

180

0xB4

´

Acute

181

0xB5

µ (Windows Alt Code)

Micro

182

0xB6

¶ (Windows Alt Code)

Pilcrow

183

0xB7

· (Windows Alt Code)

Middle Dot

184

0xB8

¸

Cedilla

185

0xB9

¹ (Windows Alt Code)

Superscript One

186

0xBA

º

Masculine Ordinal

187

0xBB

» (Windows Alt Code)

Double Right Guillement

188

0xBC

¼ (Windows Alt Code)

One Quarter Fraction

189

0xBD

½ (Windows Alt Code)

One Half Fraction

190

0xBE

¾ (Windows Alt Code)

Three Quarters Fraction

191

0xBF

¿ (Windows Alt Code)

Inverted Question

192

0xC0

À

Captial A Grave

193

0xC1

Á (Windows Alt Code)

194

0xC2

Â

195

0xC3

Ã

196

0xC4

Ä (Windows Alt Code)

197

0xC5

Å (Windows Alt Code)

198

0xC6

Æ (Windows Alt Code)

199

0xC7

Ç (Windows Alt Code)

200

0xC8

È

201

0xC9

É (Windows Alt Code)

202

0xCA

Ê

203

0xCB

Ë (Windows Alt Code)

204

0xCC

Ì

205

0xCD

Í (Windows Alt Code)

206

0xCE

Î

207

0xCF

Ï (Windows Alt Code)

208

0xD0

Ð (Windows Alt Code)

209

0xD1

Ñ (Windows Alt Code)

210

0xD2

Ò

211

0xD3

Ó (Windows Alt Code)

212

0xD4

Ô

213

0xD5

Õ

214

0xD6

Ö (Windows Alt Code)

215

0xD7

× (Windows Alt Code)

216

0xD8

Ø (Windows Alt Code)

217

0xD9

Ù

218

0xDA

Ú (Windows Alt Code)

219

0xDB

Û

220

0xDC

Ü (Windows Alt Code)

221

0xDD

Ý

222

0xDE

Þ (Windows Alt Code)

223

0xDF

ß (Windows Alt Code)

224

0xE0

à

225

0xE1

á (Windows Alt Code)

226

0xE2

â

227

0xE3

ã

228

0xE4

ä (Windows Alt Code)

229

0xE5

å (Windows Alt Code)

230

0xE6

æ (Windows Alt Code)

231

0xE7

ç (Windows Alt Code)

232

0xE8

è

233

0xE9

é (Windows Alt Code)

234

0xEA

ê

235

0xEB

ë (Windows Alt Code)

236

0xEC

ì

237

0xED

í (Windows Alt Code)

238

0xEE

î

239

0xEF

ï (Windows Alt Code)

240

0xF0

ð (Windows Alt Code)

241

0xF1

ñ (Windows Alt Code)

242

0xF2

ò

243

0xF3

ó (Windows Alt Code)

244

0xF4

ô

245

0xF5

õ

246

0xF6

ö (Windows Alt Code)

247

0xF7

÷ (Windows Alt Code)

248

0xF8

ø (Windows Alt Code)

249

0xF9

ù

250

0xFA

ú (Windows Alt Code)

251

0xFB

û

252

0xFC

ü (Windows Alt Code)

253

0xFD

ý

254

0xFE

þ (Windows Alt Code)

255

0xFF

ÿ

Small y Diaeresis

Modifier Macros

Code

Hex

ID

Description

525

0x20D

RIGHT_ALT_SHIFT

AltGr and Shift in one action

526

0x20E

HYPER

Hyper key, holds left ctrl, shift, alt and gui

527

0x20F

MEH

Meh key, holds left ctrl, shift and alt

620

0x26C

PRIMARY_SHIFT

Holds shift with the primary layer

621

0x26D

PRIMARY_ALT_L

Holds left alt with the primary layer

622

0x26E

PRIMARY_ALT_R

Holds right alt (AltGr) with the primary layer

623

0x26F

PRIMARY_SHIFT_ALT_R

Holds shift and right alt (AltGr) with the primary layer

624

0x270

PRIMARY_CTRL

Holds ctrl with the primary layer

625

0x271

PRIMARY_GUI

Holds gui with the primary layer

626

0x272

PRIMARY_MEH

Holds meh with the primary layer

627

0x273

PRIMARY_HYPER

Holds hyper with the primary layer

630

0x276

SECONDARY_SHIFT

Holds shift with the secondary layer

631

0x277

SECONDARY_ALT_L

Holds left alt with the secondary layer

632

0x278

SECONDARY_ALT_R

Holds right alt (AltGr) with the secondary layer

633

0x279

SECONDARY_SHIFT_ALT_R

Holds shift and right alt (AltGr) with the secondary layer

634

0x27A

SECONDARY_CTRL

Holds ctrl with the secondary layer

635

0x27B

SECONDARY_GUI

Holds gui with the secondary layer

636

0x27C

SECONDARY_MEH

Holds meh with the secondary layer

637

0x27D

SECONDARY_HYPER

Holds hyper with the secondary layer

640

0x280

TERTIARY_SHIFT

Holds shift with the tertiary layer

641

0x281

TERTIARY_ALT_L

Holds left alt with the tertiary layer

642

0x282

TERTIARY_ALT_R

Holds right alt (AltGr) with the tertiary layer

643

0x283

TERTIARY_SHIFT_ALT_R

Holds shift and right alt (AltGr) with the tertiary layer

644

0x284

TERTIARY_CTRL

Holds ctrl with the tertiary layer

645

0x285

TERTIARY_GUI

Holds gui with the tertiary layer

646

0x286

TERTIARY_MEH

Holds meh with the tertiary layer

647

0x287

TERTIARY_HYPER

Holds hyper with the tertiary layer

660

0x294

QUATERNARY_SHIFT

Holds shift with the tertiary layer

661

0x295

QUATERNARY_ALT_L

Holds left alt with the tertiary layer

662

0x296

QUATERNARY_ALT_R

Holds right alt (AltGr) with the tertiary layer

663

0x297

QUATERNARY_SHIFT_ALT_R

Holds shift and right alt (AltGr) with the tertiary layer

664

0x298

QUATERNARY_CTRL

Holds ctrl with the tertiary layer

665

0x299

QUATERNARY_GUI

Holds gui with the tertiary layer

666

0x29A

QUATERNARY_MEH

Holds meh with the tertiary layer

667

0x29B

QUATERNARY_HYPER

Holds hyper with the tertiary layer

ASCII

Code

Hex

ID

Description

32

0x20

SPACE

39

0x27

Single Quote

44

0x2C

,

Comma

45

0x2D

-

Minus

46

0x2E

.

Period

47

0x2F

/

Forward Slash

48

0x30

0

Zero

49

0x31

1

One

50

0x32

2

Two

51

0x33

3

Three

52

0x34

4

Four

53

0x35

5

Five

54

0x36

6

Six

55

0x37

7

Seven

56

0x38

8

Eight

57

0x39

9

Nine

59

0x3B

;

Semicolon

61

0x3D

=

Equals

91

0x5B

[

Left Bracket

92

0x5C

\

Backslash

93

0x5D

]

Right Bracket

96

0x60

`

Backtick

97

0x61

a

Lowercase a

98

0x62

b

Lowercase b

99

0x63

c

Lowercase c

100

0x64

d

Lowercase d

101

0x65

e

Lowercase e

102

0x66

f

Lowercase f

103

0x67

g

Lowercase g

104

0x68

h

Lowercase h

105

0x69

i

Lowercase i

106

0x6A

j

Lowercase j

107

0x6B

k

Lowercase k

108

0x6C

l

Lowercase l

109

0x6D

m

Lowercase m

110

0x6E

n

Lowercase n

111

0x6F

o

Lowercase o

112

0x70

p

Lowercase p

113

0x71

q

Lowercase q

114

0x72

r

Lowercase r

115

0x73

s

Lowercase s

116

0x74

t

Lowercase t

117

0x75

u

Lowercase u

118

0x76

v

Lowercase v

119

0x77

w

Lowercase w

120

0x78

x

Lowercase x

121

0x79

y

Lowercase y

122

0x7A

z

Lowercase z

544

0x220

SPACERIGHT

Right Spacebar (eg CC Lite)

796

0x31C

\ (ISO)

Keyboard Non-US \ and | (US English)

ASCII Macros

Code

Hex

ID

Description

33

0x21

!

Exclamation Point

34

0x22

Double Quote

35

0x23

#

Hash Symbol

36

0x24

$

Dollar Sign

37

0x25

%

Percent

38

0x26

&

Ampersand

40

0x28

(

Opening Parenthesis

41

0x29

)

Closing Parenthesis

42

0x2A

*

Asterisk

43

0x2B

+

Plus

58

0x3A

:

Colon

60

0x3C

<

Less Than

62

0x3E

>

Greater Than

63

0x3F

?

Question Mark

64

0x40

@

At Symbol

65

0x41

A

Uppercase A

66

0x42

B

Uppercase B

67

0x43

C

Uppercase C

68

0x44

D

Uppercase D

69

0x45

E

Uppercase E

70

0x46

F

Uppercase F

71

0x47

G

Uppercase G

72

0x48

H

Uppercase H

73

0x49

I

Uppercase I

74

0x4A

J

Uppercase J

75

0x4B

K

Uppercase K

76

0x4C

L

Uppercase L

77

0x4D

M

Uppercase M

78

0x4E

N

Uppercase N

79

0x4F

O

Uppercase O

80

0x50

P

Uppercase P

81

0x51

Q

Uppercase Q

82

0x52

R

Uppercase R

83

0x53

S

Uppercase S

84

0x54

T

Uppercase T

85

0x55

U

Uppercase U

86

0x56

V

Uppercase V

87

0x57

W

Uppercase W

88

0x58

X

Uppercase X

89

0x59

Y

Uppercase Y

90

0x5A

Z

Uppercase Z

94

0x5E

^

Caret

95

0x5F

_

Underscore

123

0x7B

{

Left Curly Brace

124

0x7C

|

Pipe

125

0x7D

}

Right Curly Brace

126

0x7E

~

Tilde

797

0x31D

| (ISO)

On ISO keyboards (L-shaped ENTER key) this extra key is found to the right of the left shift key.

Media Keys

Code

Hex

ID

Description

800

0x320

Power

801

0x321

Reset

802

0x322

Sleep

803

0x323

Brightness Up

804

0x324

Brightness Down

805

0x325

Wireless Radio Controls

806

0x326

Wireless Radio Buttons

807

0x327

Wireless Radio LED

808

0x328

Wireless Radio Slider

809

0x329

Play/Pause

810

0x32A

Next Track

811

0x32B

Previous Track

812

0x32C

Stop

813

0x32D

Volume

814

0x32E

Mute

815

0x32F

Bass

816

0x330

Treble

817

0x331

Bass Boost

818

0x332

Volume Up

819

0x333

Volume Down

820

0x334

Bass Up

821

0x335

Bass Down

822

0x336

Treble Up

823

0x337

Treble Down

824

0x338

Configuration

825

0x339

Email Reader

826

0x33A

Calculator

827

0x33B

Browser

828

0x33C

Search

829

0x33D

Home

830

0x33E

Back

831

0x33F

Forward

832

0x340

Browser Stop

833

0x341

Refresh

834

0x342

Bookmarks

835

0x343

Horizontal Scroll

Keypad

Code

Hex

ID

Description

327

0x147

SCRLK

Keyboard Scroll Lock

339

0x153

NUMLOCK

Keyboard Num Lock and Clear

340

0x154

KP_SLASH

Keypad /

341

0x155

KP_ASTER

Keypad *

342

0x156

KP_MINUS

Keypad -

343

0x157

KP_PLUS

Keypad +

344

0x158

KP_ENTER

Keypad Enter

345

0x159

KP_1

Keypad 1 and End

346

0x15A

KP_2

Keypad 2 and Down Arrow

347

0x15B

KP_3

Keypad 3 and Page Down

348

0x15C

KP_4

Keypad 4 and Left Arrow

349

0x15D

KP_5

Keypad 5

350

0x15E

KP_6

Keypad 6 and Rigth Arrow

351

0x15F

KP_7

Keypad 7 and Home

352

0x160

KP_8

Keypad 8 and Up Arrow

353

0x161

KP_9

Keypad 9 and Page Up

354

0x162

KP_0

Keypad 0 and Insert

355

0x163

KP_DOT

Keypad . and Delete

359

0x167

KP_EQUAL

Keypad =

Uncommon

Internal and rarely used actions.

Code

Hex

ID

Description

0

0x0

NO_ACTION

NULL

257

0x101

KSC_01

Keyboard Error Roll Over

258

0x102

KSC_02

Keyboard POST Fail

259

0x103

KSC_03

Keyboard Error Undefined

260

0x104

KEY_A

261

0x105

KEY_B

262

0x106

KEY_C

263

0x107

KEY_D

264

0x108

KEY_E

265

0x109

KEY_F

266

0x10A

KEY_G

267

0x10B

KEY_H

268

0x10C

KEY_I

269

0x10D

KEY_J

270

0x10E

KEY_K

271

0x10F

KEY_L

272

0x110

KEY_M

273

0x111

KEY_N

274

0x112

KEY_O

275

0x113

KEY_P

276

0x114

KEY_Q

277

0x115

KEY_R

278

0x116

KEY_S

279

0x117

KEY_T

280

0x118

KEY_U

281

0x119

KEY_V

282

0x11A

KEY_W

283

0x11B

KEY_X

284

0x11C

KEY_Y

285

0x11D

KEY_Z

286

0x11E

KEY_1

287

0x11F

KEY_2

288

0x120

KEY_3

289

0x121

KEY_4

290

0x122

KEY_5

291

0x123

KEY_6

292

0x124

KEY_7

293

0x125

KEY_8

294

0x126

KEY_9

295

0x127

KEY_0

300

0x12C

KEY_SPACE

301

0x12D

KSC_MINUS

302

0x12E

KSC_EQUAL

303

0x12F

KSC_LEFT_BRACKET

304

0x130

KSC_RIGHT_BRACKET

305

0x131

KSC_BACKSLASH

306

0x132

# (ISO)

ISO Hashpound

307

0x133

KSC_SEMICOLON

308

0x134

KSC_QUOTE

309

0x135

KSC_BACKTICK

310

0x136

KSC_COMMA

311

0x137

KSC_PERIOD

312

0x138

KSC_SLASH

326

0x146

PRTSCN

Keyboard Print Screen

328

0x148

PAUSE

Keyboard Pause

329

0x149

INSERT

Keyboard Insert

332

0x14C

KSC_DEL

357

0x165

COMPOSE

Menu

358

0x166

POWER

Keyboard Power

372

0x174

KSC_74

373

0x175

KSC_75

374

0x176

KSC_76

375

0x177

KSC_77

376

0x178

KSC_78

377

0x179

KSC_79

378

0x17A

KSC_7A

379

0x17B

KSC_7B

380

0x17C

KSC_7C

381

0x17D

KSC_7D

382

0x17E

KSC_7E

383

0x17F

KSC_7F

384

0x180

KSC_80

385

0x181

KSC_81

386

0x182

KSC_82

387

0x183

KSC_83

388

0x184

KSC_84

389

0x185

KSC_85

390

0x186

KSC_86

391

0x187

KSC_87

392

0x188

KSC_88

393

0x189

KSC_89

394

0x18A

KSC_8A

395

0x18B

KSC_8B

396

0x18C

KSC_8C

397

0x18D

KSC_8D

398

0x18E

KSC_8E

399

0x18F

KSC_8F

400

0x190

KSC_90

401

0x191

KSC_91

402

0x192

KSC_92

403

0x193

KSC_93

404

0x194

KSC_94

405

0x195

KSC_95

406

0x196

KSC_96

407

0x197

KSC_97

408

0x198

KSC_98

409

0x199

KSC_99

410

0x19A

KSC_9A

411

0x19B

KSC_9B

412

0x19C

KSC_9C

413

0x19D

KSC_9D

414

0x19E

KSC_9E

415

0x19F

KSC_9F

416

0x1A0

KSC_A0

417

0x1A1

KSC_A1

418

0x1A2

KSC_A2

419

0x1A3

KSC_A3

420

0x1A4

KSC_A4

421

0x1A5

KSC_A5

422

0x1A6

KSC_A6

423

0x1A7

KSC_A7

424

0x1A8

KSC_A8

425

0x1A9

KSC_A9

426

0x1AA

KSC_AA

427

0x1AB

KSC_AB

428

0x1AC

KSC_AC

429

0x1AD

KSC_AD

430

0x1AE

KSC_AE

431

0x1AF

KSC_AF

432

0x1B0

KSC_B0

433

0x1B1

KSC_B1

434

0x1B2

KSC_B2

435

0x1B3

KSC_B3

436

0x1B4

KSC_B4

437

0x1B5

KSC_B5

438

0x1B6

KSC_B6

439

0x1B7

KSC_B7

440

0x1B8

KSC_B8

441

0x1B9

KSC_B9

442

0x1BA

KSC_BA

443

0x1BB

KSC_BB

444

0x1BC

KSC_BC

445

0x1BD

KSC_BD

446

0x1BE

KSC_BE

447

0x1BF

KSC_BF

448

0x1C0

KSC_C0

449

0x1C1

KSC_C1

450

0x1C2

KSC_C2

451

0x1C3

KSC_C3

452

0x1C4

KSC_C4

453

0x1C5

KSC_C5

454

0x1C6

KSC_C6

455

0x1C7

KSC_C7

456

0x1C8

KSC_C8

457

0x1C9

KSC_C9

458

0x1CA

KSC_CA

459

0x1CB

KSC_CB

460

0x1CC

KSC_CC

461

0x1CD

KSC_CD

462

0x1CE

KSC_CE

463

0x1CF

KSC_CF

464

0x1D0

KSC_D0

465

0x1D1

KSC_D1

466

0x1D2

KSC_D2

467

0x1D3

KSC_D3

468

0x1D4

KSC_D4

469

0x1D5

KSC_D5

470

0x1D6

KSC_D6

471

0x1D7

KSC_D7

472

0x1D8

KSC_D8

473

0x1D9

KSC_D9

474

0x1DA

KSC_DA

475

0x1DB

KSC_DB

476

0x1DC

KSC_DC

477

0x1DD

KSC_DD

478

0x1DE

KSC_DE

479

0x1DF

KSC_DF

480

0x1E0

KSC_E0

481

0x1E1

KSC_E1

482

0x1E2

KSC_E2

483

0x1E3

KSC_E3

484

0x1E4

KSC_E4

485

0x1E5

KSC_E5

486

0x1E6

KSC_E6

487

0x1E7

KSC_E7

488

0x1E8

KSC_E8

489

0x1E9

KSC_E9

490

0x1EA

KSC_EA

491

0x1EB

KSC_EB

492

0x1EC

KSC_EC

493

0x1ED

KSC_ED

494

0x1EE

KSC_EE

495

0x1EF

KSC_EF

496

0x1F0

KSC_F0

497

0x1F1

KSC_F1

498

0x1F2

KSC_F2

499

0x1F3

KSC_F3

500

0x1F4

KSC_F4

501

0x1F5

KSC_F5

502

0x1F6

KSC_F6

503

0x1F7

KSC_F7

504

0x1F8

KSC_F8

505

0x1F9

KSC_F9

506

0x1FA

KSC_FA

507

0x1FB

KSC_FB

508

0x1FC

KSC_FC

509

0x1FD

KSC_FD

510

0x1FE

KSC_FE

511

0x1FF

KSC_FF

528

0x210

RESTART

Restart Device

530

0x212

BOOT

Reboot to Bootloader

537

0x219

UNDO_CHORD

Undo last chord

1023

0x3FF

ACTION_MAX

LAST_ONE