Notes for some keys appear below the table.
| Code | Corresponding Key |
|---|---|
| 0x00 | ↑ (1) |
| 0x01 | ↓ |
| 0x02 | ← |
| 0x03 | → |
| 0x04 | F1 |
| 0x05 | F2 |
| 0x06 | F3 |
| 0x07 | F4 |
| 0x08 | F5 |
| 0x09 | F6 / Tab |
| 0x0A | F7 |
| 0x0B | F8 |
| 0x0C | F9 |
| 0x0D | F10 / Enter |
| 0x0E | F11 |
| 0x0F | F12 |
| 0x20 | Space (2) |
| 0x21 | ! |
| 0x22 | " |
| 0x23 | # |
| 0x24 | $ |
| 0x25 | % |
| 0x26 | & |
| 0x27 | ' |
| 0x28 | ( / Delete |
| 0x29 | ) / Home |
| 0x2A | * |
| 0x2B | + / End |
| 0x2C | , / PgUp |
| 0x2D | - / PgDn |
| 0x2E | . |
| 0x2F | / |
| 0x30 | 0 |
| 0x31 | 1 |
| 0x32 | 2 |
| 0x33 | 3 |
| 0x34 | 4 |
| 0x35 | 5 |
| 0x36 | 6 |
| 0x37 | 7 |
| 0x38 | 8 |
| 0x39 | 9 |
| 0x3A | : |
| 0x3B | ; |
| 0x3C | < |
| 0x3D | = (2) |
| 0x3E | > |
| 0x3F | ? |
| 0x40 | @ |
| 0x5B | [ (2) |
| 0x5C | \ |
| 0x5D | ] (2) |
| 0x5E | ^ |
| 0x5F | _ |
| 0x60 | ` |
| 0x61 | A (2) |
| 0x62 | B |
| 0x63 | C |
| 0x64 | D |
| 0x65 | E |
| 0x66 | F |
| 0x67 | G |
| 0x68 | H |
| 0x69 | I |
| 0x6A | J |
| 0x6B | K |
| 0x6C | L |
| 0x6D | M |
| 0x6E | N |
| 0x6F | O |
| 0x70 | P |
| 0x71 | Q |
| 0x72 | R |
| 0x73 | S |
| 0x74 | T |
| 0x75 | U |
| 0x76 | V |
| 0x77 | W |
| 0x78 | X |
| 0x79 | Y |
| 0x7A | Z |
| 0x7B | { (2) |
| 0x7C | | |
| 0x7D | } (2) |
| 0x7E | ~ |
| 0x7F | Backspace |
- Since the firmware and Sim use zero-terminated strings, this will show up as an empty string in the Lua
keyPressed/keyReleasedcallback. - Assumed. These keybinds are permanently mapped in the Simulator, so they will not be sent over USB.