shift register

[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.

This is a truly hands-on approach to learning. [Kevin Darrah] ditched the microcontroller and is using push buttons to learn about 595 shift registers. The test rig uses two of the serial-in, parallel-out chips. These are cascading which means that as data from the first chip overflows it feeds the input of the second. The parts are commonly used to drive LEDs, or reduce the number of pins needed to drive peripherals like this character LCD.

The five push-buttons give you a chance to intuitively learn how the chip logic works. The blank button is also commonly called Output Enable (OE). Driving it high shuts off the outputs of the chips but doesn’t clear the data. That task is performed by the clear button which is driven low to set all of the shift register memory to zero. The other three buttons set the logic level, shift it into the chip using the clock signal, and push the stored values to the outputs using the latch.

To get a visual approximation of what’s happening inside of these chips you should check out the shift register tutorial linked to in this post.

If you’re not familiar with the electronics inside this brand of retro gaming hardware you might be surprised to find that there’s barely any logic hardware at all. The chip in the middle of the board is a 4021 parallel to serial shift register. It connects to the buttons and uses the clock signal coming through the cable to pulse out the button states over a serial wire. So all that [Guillermo] did was lay out the chip with connects for each button.

In the image above his thumb is obscuring the 5-way switch used for directional control and select (center click). The yellow and green buttons serve as A and B, with the start button on the opposite side of the board due to a mistake in his board layout. He does have some future plans for this. He’s working on a Raspberry Pi project that will monitor and record the controller serial data so that you can play it back. It sounds like a player piano for video games.

[Jason] has been hard at work on this Arduino-based low-res gaming platform. He even had a fab house deliver circuit boards to pull everything together. It’s a little small in his hands, and the graphics are limited to the 8×8 pixels provided by the display. But it still looks like a lot of fun and the code was written to make adding new games quite painless.

The board hosts an ATmega328 which drives the bi-color LED display using a pair of TPIC6B595 shift registers. Control is provided by a collection of buttons to either side of the display. The unit is powered by three AAA batteries held in a pack soldered to the back side of the PCB.

The image above shows [Jason] giving a Space Invaders game a try. The clip after the break shows respectable action, sound from a piezo buzzer, and it even scrolls your score at the end of the game. But you’re not limited to just one title. Adding new games is as easy as implementing a class in a new header file. You can get a feel for how this is set up by viewing the source code repo.

Check out the LED cube which [Thomas], [Max], and [Felix] put together. But don’t forget to look at that beautiful PCB which drives it… nice! But hardware is only part of what goes into a project like this one. After the soldering iron had cooled they kept going and wrote their own software to generate patterns for the three-dimensional display.

Looking at a clean build like this one doesn’t drive home the amount of connections one has to make to get everything running. To appreciate it you should take a look at this other 512 LED cube which has its wires showing. You can see from the schematic (available in the project repository) that all of these lines are managed by a series of shift registers. The board itself connects to a computer from which it gets the visualization commands. A Java program they call CubeControl can push letters or turn the cube into a VU meter.

The team built at least two of these. This smaller version uses red LEDs, while the larger one shown in the video after the break has blue ones.

Take a gander at the Giant LED bar graph which [Chunky Hampton] recently completed (from this image we don’t think the nick name suits him). It’s simple both mechanically and electrically, but we love the look and think it would be a nice addition to your home, hackerspace, or as a children’s museum exhibit (we’re looking at you [Mr. Porter]).

The enclosure is a hunk of PVC electrical conduit. It’s got to be one of the largest sizes, but still should be found at most home stores. The base mounts easily and the cover snaps into place. [Chunky] used a hole saw to create the openings for the LED modules. They’re circular boards with multiple single-color LEDs on them. A common power bus feeds the high side of each bit, while a couple of transistor ICs controlled by 595 shift registers address them on the low side. From there just use any controller you wish, but in this case it’s an Arduino.

[Chunky] uses the meter to display power output from his stationary bicycle generator. But he also put together a little Larson Scanner demo which you can see after the break.

We see a lot of LED matrix projects. They’re fun, and you can learn a lot of basic lessons during the build. But this one is out of the ordinary. [Rtty21] built an oddly sized, and sound controlled matrix shield for his Arduino. That’s it right there, the shield is the large chunk of protoboard but you can just see the Arduino peeking up over the top of it.

Now we say oddly sized because a 9×9 matrix doesn’t make much sense with an 8-bit micro controller. There’s no schematic but in the clip after the break he mentions that the columns and rows are driven by a decade counter and shift register and that’s what makes it possible to drive nine bits easily. Also of note on the board is that washer above and to the right of the matrix. It’s a touch-sensitive reset button. But the main control mechanism is a Clapper clone circuit. Just snap your fingers and it turns the project on or off. [Rtty21] based the design on this step-by-step sound input build.