Editing
Keyboard controller
From Deskthority Wiki
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
[[File:IBM Model M keyboard controllers.jpg|thumb|250px|right|A selection of IBM keyboard controllers]] A '''keyboard controller''' is the circuitry responsible for scanning the [[keyboard matrix]], [[contact bounce|debouncing]] switch activity and reporting [[key]] presses and key releases to the host computer. The term is also used to refer to the microcontroller IC that forms the central part of this system. Since the 1980s, it is typical for desktop computer keyboards to be fully standalone devices: they are external to the computer, communicate with the computer using a [[:Category:Keyboard protocols and interfaces|keyboard protocol]], and all of the operational circuitry is contained entirely within keyboard. This is in contrast to 70s terminals and 80s home computers where the keyboard was often built into the computer, and either part of the motherboard or with the keyboard matrix connected directly to the motherboard. Most of the work involved in handling keyboard operation takes place on a microcontroller: a microprocessor, software and memory held in a single microchip. An Intel 8049 chip such as the one illustrated below provides 2 kB ROM and 128 bytes of RAM. Software is stored on this chip to provide the functionality of the keyboard. Factory-supplied keyboards generally store this software permanently, but some commercial keyboards such as the [[KBC Poker II]] support firmware upgrades by storing the software in flash memory. Modern keyboards tend to have a single microchip with a small amount of auxiliary components (typically resistors and capacitors) while older keyboards would have a number of additional support chips in addition to the microcontroller. In many keyboards, the controller is a separate PCB that can be removed from the keyboard. This is true of all membrane keyboards by necessity, but also true of other types of keyboard as well. The [[Kitten Paw]] custom keyboard controller depicted below is made possible because many Costar keyboards place the controller circuitry onto a removable daughterboard that can be removed and replaced with a custom controller board. ==Functionality== For [[Rollover, blocking and ghosting|2KRO]] keyboards and similar, the keyboard controller needs to detect when too many keys are being pressed at once, and block the additional keys to prevent ghosting from occurring. The keyboard controller also takes requests to update lock status, and switches the lock [[Light-emitting diode|LED]]s on and off as required. It communicates with the host computer via the applicable bus, be that [[Universal Serial Bus|USB]], [[XT keyboard interface|XT]], [[AT keyboard interface|AT]] (also [[PS/2 interface|PS/2]] with a different connector), [[Apple Desktop Bus|ADB]] or a proprietary connection. Additional functionality includes supporting the [[function key]], operating [[backlit keyboard|backlighting]], and sending [[typematic]] keypresses. ==Custom controllers== Some keyboard enthusiasts create their own controllers to permit vintage keyboards to work on newer computers, such as rewiring a [[Apple M0110|Macintosh 128 keyboard]] to function on a modern computer; custom controllers can also add new features such as multiple input [[layer]]s. The [[Teensy]] programmable microcontroller is a popular board for producing keyboard controllers. ==Gallery== <gallery widths=250 heights=187> File:Acer 6312-TW keyboard controller.jpg | Controller board from an [[Acer 6312|Acer 6312-TW]] membrane keyboard β older membrane keyboards had full-size ICs File:Intel P8049 AH controller.jpg | Intel P8049AH keyboard controller chip File:NTC 6153EN keyboard controller.jpg | Keyboard controller and associated circuitry from an [[NTC KB-6153EN]] keyboard File:Kitten Paw.JPG | [[Kitten Paw]] custom keyboard controller File:Tipro (MID) controller.jpg | [[Tipro]] (MID series) removable controller with its connection cable to the PCB File:Dell L100 -- controller PCB location.jpg | [[Dell L100]] controller PCB File:Viglen KU-0325 -- controller PCB, bottom.jpg | Typical controller chip on a modern membrane keyboard </gallery> [[Category:Keyboard terms]]
Summary:
Please note that all contributions to Deskthority Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Project:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
Edit source
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
Deskthority forum
Support Deskthority
Search
Main categories
Guides
Keyboards
Keyboard switches
Keycaps
Keyboard modding
Pointing devices
Brands & companies
Group buys
Other topics
Wiki info & links
Recent changes
Random page
All pages
Deskthority wiki help
MediaWiki help
Tools
What links here
Related changes
Special pages
Page information