Driving An LCD Character Display Using Custom HID Codes

Here’s an external display meant to help you keep track of your computer’s status. It connects via USB and is driven by a PIC microcontroller. It listens for a small set of commands, using those to implement a simple control protocol to drive the screen.

[Andrew Gehringer] designed the device around a PIC 18F2550, which offers native USB control. He’s using Microchip’s USB stack to enumerate the module as an HID device. It listens for commands 0x10 through 0x23. These clear the display, write strings to each of the four lines of the display, and switch the LCD backlight. Of course the project includes a program [Andrew] wrote to feed the display. It  has a GUI which let’s him decide what information is displayed and how it is formatted. This helper app hangs out in the system tray for easy access.

19 thoughts on “Driving An LCD Character Display Using Custom HID Codes

  1. the only thing useful in this project is the date and even that is a useless gadget cluttering your workspace if you have linux or windows 7 that show current time and date in the corner of a screen.

    1. Not necessarily true. I have a logitech keyboard with an LCD display and I use it all the time. Great for when you’re in full-screen applications.

      Plus, I think the point of the project is how easy it is to interface with.

    2. I’m calling troll on you.
      I thought everyone these days full screens EVERY app, leaving no room for information like is displayed on this case-front mountable display, the prescence of which adding to the techo of any given workstation, by, if nothing else, the blue backlight.
      Runon what?

    3. Troll.

      It’s always nice to have temperature, rama nd cpu metering. Especially when playing games. Of course it depends on your needs. If you’re on a century old lab computer then it wont make any difference what so ever.

    4. I do not see it as useless at all I can see some uses for the display even though I might want to change the data shown. How about for a media PC? It could show what is being played and it could be expanded with some physical buttons, ir reader, and rotary encoder. It could be used as is just to display the time, what is being played or any other handy data.
      For servers it could display the name of the server, any error conditions, CPU load, IO, disk space, and or memory.

  2. There are a number of nice things about this project. Especially for inexperianced Windows people. The fact it uses the HID USB protocol makes it such that Wondows users will probably not have to fiddle with the troubbles that pox the Windows-USB play-field. Simply put, you plug it in and it should work.

    What you display will then be up to you. Harvest the weather from the web, twets from the https://twitter.com/SmithsonianMag or put your old moden back into your computer and grab the caller-ID between the 1st and 2nd complete ring.

  3. I would actually rather see a full implementation of a HD44780 Controller, then I could use it with LCD Smartie.. I was half way through my own lcd program when I heard about it, it is pretty awesome and full featured and FREE.

  4. There’s apparently an HID usage page (0x14) for alphanumeric displays – so rather than reinventing the wheel for this sort of thing, it could be according to some form of standard. I have yet to see anyone actually use it, though. Anyone ever heard of anyone implementing it?

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.