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.

Comments

  1. ODSFNI says:

    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.

    • Plegnic says:

      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.

    • linuxkid97 says:

      Not all window managers do that…

    • rue_mohr says:

      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?

    • Eirinn says:

      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.

    • lwatcdr says:

      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. st2000 says:

    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. fartface says:

    Someone needs to give this guy a computer so he can discover google and LCDPROC

  4. willaim says:

    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.

  5. doragasu says:

    I did something similar a lot of time ago to display the status of my GuruPlug (keep in mind guruplugs have no display output). My version uses a lot smaller LCD (12×2 characters) and also has some LEDs and pushbuttons.

    http://3.bp.blogspot.com/-hZtTND3Cg3I/T5PkR7dUCkI/AAAAAAAAAKI/pHA3DlYq7xY/s1600/usblcd.jpg
    http://kernelhacks.blogspot.com.es/2012/04/my-guruplug-usblcd.html

  6. bc says:

    Isn’t this LCD Smartie?

  7. Randy says:

    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?

  8. or just do a serial endpoint?

  9. cusco says:

    I would love to have one of these for each server in the server room, Only one screen connected trough the KVM. so this small display would help to know if something is wrong straight away

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 92,194 other followers