AT Keyboard/Mouse protocol

Protocol used for:

Details:

  • Protocol is bi-directional
  • Clock frequency is 10-16.7 kHz
Bit Description Comment
1 Start bit Always 0
2-9 8 Data bits LSB first
10 Parity bit Odd parity
11 Stopp bit Always 1

Device to host

PC Keyboard/Mouse protocol (device to host) Copyright: Joakim Ögren, Hardware Book
All rights reserved.
May not be used without the authors written permission.

Host to device

PC Keyboard/Mouse protocol (host to device) Copyright: Joakim Ögren, Hardware Book
All rights reserved.
May not be used without the authors written permission.

Voltage levels

Min Max
Low (0) 0.0 V 0.7 V
High (1) 2.4 V 5.25 V

Host to Keyboard commands

Byte Command Additional Data
0xED Set Status Indicators LED bitmask
0xEE Echo
0xEF Invalid Command
0xF0 Select Alternate Scan Codes Scan code set
0xF1 Invalid Command
0xF2 Read ID
0xF3 Set Typematic Rate/Delay Encoded rate/delay
0xF4 Enable
0xF5 Default Disable
0xF6 Set Default
0xF7 Set All Keys - Typematic
0xF8 Set All Keys - Make/Break
0xF8 Set All Keys - Make
0xFA Set All Keys - Typematic/Make/Break
0xFB Set All Key Type - Typematic Scan code
0xFC Set All Key Type - Make/Break Scan code
0xFD Set All Key Type - Make Scan code
0xFE Resend
0xFF Reset
Bit Typematic (Characters per second, ±20%)
00000 30.0
00001 26.7
00010 24.0
00011 21.8
00100 20.0
00101 18.5
00110 17.1
00111 16.0
01000 15.0
01001 13.3
01010 12.0
01011 10.9
01100 10.0
01101 9.2
01110 8.0
01111 8.0
10000 7.5
10001 6.7
10010 6.0
10011 5.5
10100 5.0
10101 4.6
10110 4.3
10111 4.0
11000 3.7
11001 3.3
11010 3.0
11011 2.7
11100 2.5
11101 2.3
11110 2.1
11111 2.0
  • Typematic rate: 10.9 characters per second (±20%)
  • Delay: 500 milliseconds (±20%)

Keyboard to Host commands

Byte Command
0x00 Key Detection Error/Overrun (Code Sets 2 and 3)
0x83 0xAB Keyboard ID
0xAA BAT Completion Code
0xFC BAT Failure Code
0xEE Echo
0xF0 Break (key-up)
0xFA Acknowledge (ACK)
0xFE Resend
0xFF Key Detection Error/Overrun (Code Set 1)

Contributors

Sources


Last modified: 2007-07-11 06:49:10 by Joakim Ögren <[email protected]>
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please reload the page.