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 0×10 through 0×23. 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.

PIC-based USB conversion for an NES controller

[Andres] wrote in to share his USB for NES controller project (translated). It enumerates as a USB keyboard and is easily mapped on most emulators. Over the weekend we looked in on an AVR programmer used for this purpose. [Andres] went a different direction, using a PIC microcontroller and eventually incorporating his circuit into the body of the controller.

The prototype circuit can be seen above. [Andres] uses a breakout board for the PIC 18F4550 to test the circuit. The chip has native USB support, and reading the button states from the controller’s shift register is a snap. You can see him using this test rig to play Super Mario Bros. on an emulator in the video after the break.

The second iteration of the project moves from breadboard to a soldered circuit. A 18F2550 is used as it comes in a rather small DIP package. If the legs are flattened there’s room inside the controller case for it, along with a few capacitors and a crystal. The original controller cord is removed to make way for a USB cable.

[Read more...]

Great junk-yard find leads to a reclaimed control panel project

Having the “can you believe somebody threw this away?” mentality has gotten us into some trouble through the years, but look what [Joshua] found at the scrap yard! It’s a door from a power conversion station and it contains fourteen indicator lights and a lot of other doodads. But since this is just the door, he needed a way to monitor the controls and drive the indicators. At the heart of the hack he used to get this up and running is a PIC 18F2550. It has no trouble driving the indicators thanks to a pair of ULN2803 darlington arrays which switch the higher 24 volt levels.

His writeup doesn’t mention the method used, but the panel also has a couple of meters at the top. In the video after the break you can clearly see that he’s got them both working. We’d bet there’s a plan for each of the buttons as well, since this will be prominently featured in their alien-invasion themed Halloween display this year.

[Read more...]

An alarm for every day of the week

If you don’t have a 9-to-5 type of job you might find yourself constantly resetting your alarm clock as your calendar commitments change. [Lucas] finally got fed up with the nightly ritual and decided to build his own alarm clock which has unique settings for each day of the week (translated).

The display itself is an LM044L 20×4 character display. This provides a viewing area that is about 3″x1″ and since it’s an HD44780 compliant LCD screen, writing data to it takes very little effort (and RAM) compared to a graphic LCD. A PIC 18F2550 drives the device, taking input from a half-dozen buttons, driving the display, and turning on the enclosed buzzer when it’s time to get up. There’s a backup battery which will keep the settings when power is lost. The daily alarms, current time, and back light brightness can all be adjusted from the four screens that make up the settings menus. The only thing that it’s missing is a precision timekeeper, but that should be easy to add either by measuring the frequency of the mains or by using an RTC chip.

Location recorder and mapper

[Jeroen's] student project is a module that uses GPS tracking to create travel data on Google maps. It’s not really a spy device as the data isn’t transmitted, but would be a lot of fun to use on cycling and hiking adventures. A PIC 18F2550 reads location and altitude data from a GPS receiver as well as data from an accelerometer. This information can be displayed on an attached touchscreen display and it is also saved to a pair of EEPROMs. When you get back from your trip, the data pulled from the device via a serial connection is processed by [Jeroen's] C# application and used to overlay the route on a google map. He’s got a source code package available for download but we’ve saved you the trouble if the schematic is all you’re after. It’s attached after the break.

[Read more...]

Hackaday links: January 2, 2011

DIY driving controller

It looks like this steering wheel, shifter, and foot pedal were all made from string and garbage. That being said, you can see it works quite well. The setup just pushed keys on the keyboard,  which reminds us of the junky plastic add-ons for the Wii remote. [Thanks Toumal]

Taping PCI express

[Pseudolobster's] company was putting together point-of-sale machines for a retailer. They had surplus computers which really brought the price down but ran into a snag when adding the second monitor. The boxes wouldn’t play nicely with PCIe 16x. His solution was to scotch tape pins 19-82 on the cards, effectively turning them into PCIe 1x… and it worked! No link here but we wanted to share the trick anyway.

USB character display

[Simon Inns] shows how to add a character display to a PC case. We’ve seen him work with these PIC 18F2550 controllers several times before but we like how nicely this piggy-backs the display board seen in green.

IR receiver as USB keyboard

[Arthur] built an IR receiver to use with XBMC. Because it’s software specific he identifies the device on USB as a keyboard, and passes the IR commands as keystrokes used by the popular media platform.

Normally, homebrew IR receivers would use LIRC, the Linux Infrared Remote Control software. But this method doesn’t require you to have that running. In fact, it doesn’t need any setup on the PC end of things. Any remote that uses the Sony SIRC protocol will work off the bat.

[Arthur] chose a PIC 18f2550 for the project. It is a popular microcontroller because it has built-in USB handling. We’re a bit skeptical of the hardware design though. We didn’t see specifically which IR receiver he’s using, but many require some type of filtering so check the suggested layout in the datasheet for your module.