My Story: Memory Card LCD Display

Project makes SD Card data readable anywhere

By Lance Summers
My Story

This project started as many of mine usually do, as a honey-do. We have compiled an extensive list of our book and movie collections on our computer at home, but my wife wanted to be able to scan the list from the video store (yes, we still go to the video store).



So I created a hand held device that allows us to scroll through text files stored on an SD card. I have my video collection and science fiction book collection organized by title all saved to this card. Not having to rely on my own fading memory about what we've already read or seen, now we can reference our entire collection while we are in the book or video store.

The solution I came up with was to use a 20x4 LCD display and an SD card to hold the text files and display each record in four lines on the LCD. I programmed an ATMega328 to read a text line from the SD Card and display it on the LCD. It's all wired to a small circuit board.

I kept the text files small by dividing the contents by Author for the Books and by Title for Movies (Authors starting with the letter A will be located in the text file Books-A.txt).

The device has five switches: Power, Reset, Menu, Up & Down, LCD Display and SD Card Reader. When the menu button is pressed, the main menu is displayed. This allows us to choose File-Selector, Delay Change, Credits, Read Book List, or Read Movie List.

LCD Display detailLCD Display detail
Assembled deviceAssembled device


The ATMega328 and other components are placed on a PCB (Mega is socketed), according to schematic below. The LCD is connected to the PCB via IDE cable. The SD card is soldered right to the PCB in a position that allows the opening to be access through the box. Finally, the SD board is connected to the ATMega via shorting wires.

I wrote the code for the Arduino but it does use the tinyFAT code that was written by someone else and then included in the Arduino library as of version 022.

Arduino-PCB schematicArduino-PCB schematic


Part List
Qty. P/N Mfr. P/N Description
1 169279 21-225 PCB (2x3 should be big enough)
1 2139111 ATMEGA328P-PU ATMega328
4 26623 GPB001-R Momentary SPST PB Switches
1 72645 TPC11FGRA2 On/Off SPDT Switch
1 2124525 U10-00062 SD Card Reader
1 786138 LM7805 Standard Regulator 5V
1 11280 A104-R 9V Battery Clip
1 697531 LTL-307G Green LED
1 2118643 NHD-0420DZ-FLYBW LCD Display (I used 20x4)
2 29891 R10/50 10uf Electrolytic Capacitors
2 15405 DC22 22pf Capacitors
1 14453 CY16 16 MHx Crystal
2 1585240 HSMS-2860-BLKG Low Forward Resistance Diodes
3 691104 CF1/4W103JRC 10K Resistors
1 690865 CF1/4W102JRC 1K Resistor
2 690700 CF1/4W221JRC 220 Ohm Resistors
1 18914 H2853-R Enclosure (dictated by size of LCD - I used 5x2.75x1.5)
1 105794 GBH-1009-R 9V Battery Holder (metal 'U' clip fits best)
1 198731 ALK 9V 522 9V Battery
1 SD Memory Card (2GB)

Part List
Oty. P/N Mfr. P/N Description:
1 2151259 BB-ARDUINO Minimalist Arduino Circuit Kit
1 102745 28-52610 ZIF Socket
1 32686 2102-218 IDE Cable (cable dictated by LCD pin count)

Note: The ATMega328 was programmed via Jameco's Minimalist Arduino Circuit Kit with one change. The socket in the kit was replaced with a ZIF so that ICs programmed on the breadboard can easily be removed and placed into a socket on a PCB.

Project Notes:

• Almost any method may be used to connect the LCD to the PCB. I used an old IDE cable so that I could remove the lid entirely while I worked on soldering up the switches.

• The Forward Resistance of the Diodes will affect the ON state of A0 and A1. If the MENU button is not being registered correctly when pressed, you might have to change the Value in the sketch of ButtonOnValue (lowering this value will mean you could use diodes that have a higher forward resistance value). Just be careful not to lower this too much because you don't want ghosting.

• Might as well use a 2GB SD card because the tinyFAT that the sketch uses does NOT read sub-directories very well. This means that we have a limit that all files are in the ROOT directory and therefore limited to 250 files. This is not a problem for me because both the Books and DVD files only total 51 files (Books do not have any Authors starting with "U" or "X" and the DVD has an extra file of "Mc").

SD-LCD Schematic SD-LCD Schematic (Click here to enlarge).


To download the project's Logic Flow, click here.

Get Lance's sample code here.

This project was submitted by self-proclaimed Jameco addict, Lance Summers. He tinkers with electronics every chance he gets, especially when required to please his wife. You can contact him at: phntomgamer@cox.net


We're always interested in what you are working on. If you have a project that you're proud of, send it to us and we'll share it with the Jameco community. Send contributions to MyStory@Jameco.com