Usb Keyboard

Objective

Majority of computer users see the keys while typing. It is difficult to see the keys and the monitor for correctness which is far. Hence this ‘USB keyboard LCD’ device has been developed for the convenience of the computer users. This device can be attached to the existing keyboard and can be placed just above the keyboard.When a user types on keyboard, the characters are displayed on LCD as well as they are transferd to PC simultaneously.Hence the user can see the keys and LCD simultaneously.

Features

Presently supports basic functionality:

  1. Keys from a - z and 1 - 9 are only supported

  2. When ‘Enter’ was pressed the LCD gets clear and points to first location

  3. Supports Backspace functionality

  4. Supports 32 characters long string and clears the display automatically for next characters

  5. Power saving feature: -> The μcontroller turns off the LCD when there is no keyboard connected to it -> When a keyboard is connected, the μcontroller detects it and turns ON LCD -> When the keyboard is detached, the μcontroller detects it and turns OFF LCD

  6. Presently compatible only with DELL KB 212-B keyboard model

  7. Low cost device, uses only newduino board which uses atmega32p micro-controller

  8. Consumes 50 ma at 5v.

  9. Since basic version won’t support fast typing of keys,some delay in pressing of keys works fine otherwise slips some characters.

  10. The Design didnt considered skewing effect.which will be revived next revision.

Functional Description

The basic idea is to tweak the USB cable without overloading the HOST. An isolation circuit was used to isolate the data signals. The data signal is sampled by the micro-controller. The sampled data is in NRZI scheme. This data further decoded to normal integer value and finally converted into ASCII value. This ASCII value is sent to LCD which is interfaced to micro-controller.

The USB keyboard works on Interrupt transfers and operates in LOW speed.After enumerating as a keyboard, the Host sends IN packet for every 8ms. If no key is pressed the device(keyboard) responds with NAK. If any key was pressed the device(keyboard) sends 8bytes of data(As per USB HID spec), out of which one byte holds the information of pressed key and the Host acknowledges it.

That particular byte which contains information of pressed key was sampled , decoded and converted to ASCII finally.

When ‘Enter’ was pressed the LCD was cleared and cursor points to first row first location. When ‘Backspace’ was pressed, the cursor gets decremented and the new character overrides old one on LCD.

Last updated