Fail of the Week: Reset Issues with 595 and HD44780

fotw-reset-issues-595-character-lcd

We really like to see hardware hackers stepping out of the safe and polished boundaries of available Arduino libraries. One example of this is a project which [Matteo] thought worked: using a shift register to drive a character LCD. This can be a desirable way to do things, because it takes the GPIO usage down from six to just three connections. If you don’t remember seeing that one earlier this month take another look. The gist of it is that [Matteo] hacked one function in the LiquidCrystal library to make it happen.

What makes this a truly great fail is that the problem was not immediately apparent, and is difficult to reliably reproduce. The LCD is unstable depending on how the Arduino board is reset. When connecting the Arduino to a computer the screen doesn’t work until you press the reset button. But press the reset button repeatedly and you get a non-functional screen plus the gibberish seen above.

There’s not much to go on here, but we think it’ll be a lot of fun to state your theory on the malfunction and suggesting for testing/fixing the issue. This could be a lot of things, the controller on the display getting mixed-up, the 595 missing an edge (or something along those lines). Do you fix this with hardware (ie: capacitor to avoid voltage dip), a software issue (need a longer delay after startup), or a combination of the two?


2013-09-05-Hackaday-Fail-tips-tileFail of the Week is a Hackaday column which runs every Wednesday. Help keep the fun rolling by writing about your past failures and sending us a link to the story — or sending in links to fail write ups you find in your Internet travels.

Controlling Alphanumeric LCDs With Three Wires

shift

The HD44780 LCD controller is the defacto way of adding a small text display to your next project. If you need a way to display a few variables, a few lines of text, or adding a small user interface to a project, odds are you’ll be using one of these parallel LCDs. These displays require at least six control lines, and if you’re using a small microcontroller or are down to your last pins, you might want to think about controlling an LCD with a shift register.

[Matteo] used the ubiquitous ‘595 shift register configured as a serial to parallel converter to drive his LCD. Driving the LCD this way requires only three pins on the Arduino, [Matteo]‘s microcontroller of choice.

For the software, [Matteo] modified the stock Arduino LiquidCrystal library and put it up on his Git. Most of the functions are left untouched, but for this build the LCD can only be used in its four bit mode. That’s not a problem for 99% of the time, but if you need custom characters on your LCD you can always connect another shift register.

If you just can’t spare three pins for a display, you could squeeze this down to just two, or add a second microcontroller for a one-wire-like interface.

I Am the Midnight Message Board What Messages at Midnight

Photoluminescent stars on your bedroom wall or ceiling are pretty cool, though the stationary shapes can become boring. [Adi] felt this way, too. While doodling with a bright white light on some glow in the dark vinyl, it occurred to him that this could make for an interesting display. He set about making GLO, the midnight message board and RSS display.

[Adi]‘s light writer uses 12 UV LEDs on a linear axis powered by a stepper motor to write RSS headlines, Twitter trends, or custom text on his wall. He finds the slow fade of the text very soothing to fall asleep by, and it’s easy to see why. The LED array imprints a section of a character consisting of a 6×5 bit pattern. The 12 LEDs are split into two groups, so it can write two lines at 45-50 characters each. [Adi] designed his own pixel font for this project, and advises that only upper case letter forms be used.

[Adi]‘s write-up is quite admirable and comprehensive. In the circuit build section, he advises that the LEDs must be very close to the vinyl for optimum results, but that they should protrude farther than the shift registers so the chips don’t rub the vinyl. Of course you could opt for more intense light sources, like laser. See it in action after the break.

[Read more...]

Fail of the Week: EPROM Reading and Erasing

fotw-eeprom-experiment-board

It may be a failure but it sure does look cool. [Scott Lawrence] had a fair number of EPROM chips on hand and decided to get rid of the traditional eraser and programmer in order to play around with the concepts using his own hardware. He was met with disappointment at several steps in the process. No worries though, each of these upsets sent him back to the drawing board and he learned way more than he ever would have if it had actually worked. It’s fair to say this failure was highly successful.

[Read more...]

Breadboard Sequencer Does a Lot with Very Little Hardware

breadboard-sequencer

[Jan Cumpelik] squeezes a lot of performance out of very few components with his breadboard sequencer which he calls Lunchbeat. We really like his awesome breadboard which has a series of trenches perpendicular to the bus strips framing the long sides. All of our breadboards have just one trench down the middle. This, combined with his mad breadboard skills, results in a really clean prototype.

The chip nearest his hand is the ATmega328 which drives the sequencer. It takes inputs from that row of 10k trimpots as well as a series of tactile switches. Feedback is given with the row of eight LEDs. Those are driven from a 595 shift register to save pins on the microcontroller. The remaining chip is an OpAmp which works in conjunction with a 3-bit R2R ladder DAC to output audio. Turn your speakers down just a bit before taking in the demonstration below. There you will also find an image version of his schematic that we made for your convenience. It is only available as a PDF in the code repository he posted.

[Read more...]

Lots of seven segment displays with a single ATtiny

7seg

These days they’ve been replaced with character LCD displays or even brightly colored graphical displays, but if you’re trying to display data on one of your projects, there’s nothing like the classic red glow of a red seven segment display. [five volts] got his hands on a few ancient segmented displays, but controlling even one took up more microcontroller pins than he was ready to spare. The solution to this problem was to use a shift register and control multiple segment displays with an 8 pin microcontroller.

[volts] is using an ATtiny13 to control six seven segment displays. Each display is mounted on a hand-etched board, with a shift register and a handful of resistors soldered to the back. By having the microcontroller shift bits down the line, [volts] created an extremely easy to interface 6-digit segment display, and the entire device can be expanded even more.

The board files and schematics are available on [volt]‘s project page. A great project if you’re just starting out to etch your own boards.

Two-wire serial backpack for GLCD screens

2-wire-serial-backpack-for-glcd

[Debraj] wrote in about his 2-wire serial backpack he developed for a Graphic LCD screen. It’s build on a hunk of protoboard and uses a pair of 595 shift registers to translate incoming serial data to the parallel interface which is used by the LCD screen. It takes more time to push commands this way, but the interface is still quite snappy as you can see in the clip after the jump.

The real trick here is how the hardware has been configured to get away without a third wire for latching the shift registers (if you need a primer on 595 chips check out this feature). The idea of using a latch is that all of the data can be shifted in over the serial pin before it appears on the output pins. Otherwise, the GLCD would see each bit as it shifts into the register, wreaking havoc on its communication protocol. [Debraj] gets around this by using a diode AND gate trick he learned from this other serial LCD project.

One good thing about this method is the 595 chips have a wide range of control voltage that will allow you to drive this with 3.3V or 5V microcontrollers. But you do need to implement the communication protocol and push those commands via serial. For nearly the same cost in chips something like an ATtiny2313 could be substituted to make an even simpler addressing scheme — or even switch to 1-wire protocol. But you’d then lose the wide input voltage tolerance.

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 91,338 other followers