This version uses a slightly more modern and easier to use display while maintaining the overall glowy, multi-segment look of the original. The Siemens DL2146T is a 4-character, 16-segment (plus dot) intelligent display. It has built-in drive and an ASCII font table. You basically send it seven bits of ASCII along with a couple more bits that select the position and control reset, blanking and chip select. It uses "a lot" of pins but we're not doing anything else so the available outputs on a ATMEGA168 are plenty.
An Arduino beginner with good soldering skills should be able to complete this.
Step 1: Parts List
This is an obsolete part, but it is generally available. You should pay less than $20 USD for it.
Here are some websites that had it in stock at the time of publishing this instructable:
1x Atmel ATMEGA168
Buy this wherever you get the best price. You can get it with the bootloader already installed if you want.
An ATMEGA328 will work but is overkill. An ATMEGA8 might also work but I have not personally tried it.
1x 28-pin narrow DIP socket or 2x 14 pin DIP sockets
1x 40-pin DIP socket
1x PB400 protoboard from Wright Hobbies http://www.wrighthobbies.net/
Feel free to use whatever you want, but this is a great quality protoboard and it is cheap, esp. if you buy a five-pack.
This board is double-sided, real fiberglass, tinned and all the holes are through-hole-plated.
You'll appreciate how nicely it solders and how well you can unsolder without ripping up pads.
1x 1 ft 16-conductor rainbow ribbon cable
Try jameco.com for this one; it's not mandatory but the colors help keep you from messing up the bus wiring.
2x 0.1 uf mono caps
2x 22uf 16v radial electrolytic caps (anything 10uf - 47uf is fine)
1x 16mhz ceramic resonator
1x 10k Ohm 1/4 watt resistor
1x 2.1mm power jack 1 mm lead size
Try moderndevice.com - use the one they sell for the RBBB
1x 5v switchmode wall power supply
Try bgmicro.com - they have a 5v 2a for $3.99
I used to make my own linear regulator setups on-board for wall-powered stuff, but a regulated switchmode supply
is so much more efficien and they are cheap, so I no longer bother.
Make sure to observe the polarity of your adaptor. Most use center positive. Adapt your wiring for the jack if necessary.
1x 8" x 10" sheet of 1/8 clear red acrylic
Ebay is the best option here.
- hook-up wire - solid core is easiest but consider looking into teflon-insulated wire - costs more, harder to strip but it does not shrink or melt when soldering.
- get a "grab bag" of standoffs and mounting hardware - try alltronics.com, bgmicro.com or goldmine-elec.com
Step 2: Tools List
- soldering iron
- 60/40 solder
- wire cutters
- wire pliers
- scoring knife
- wood clamps or a vise
- a table with a sharp edge and a sturdy straight edge, or two pieces of square cut hardwood
- arduino board or clone and/or an in-circuit ATMEGA programmer; I use a usbtiny kit from www.adafruit.com
Ooptional, but nice to have:
- "helping hands" or PanaVise board holder
- temperature-controlled soldering iron (trust me, it's worth the investment)
- gaffer's tape (found in high-end camera stores and theatrical supply houses)
Step 3: The Prototype
Step 4: Fabricating the Display Filter
Step 5: Measure
Step 6: Score
Step 7: Snap
Apply force evenly across the whole piece to be snapped with your palms, then push down quickly. Your piece should snap off precisely along your score line.
I was lucky and had a piece the right size in one dimension and only had to snap it once. If you are working with a different size piece, you'll have to measure again and repeat the process to get the size you want.
Step 8: Completing the Display Filter
Now place the protoboard down on the acrylic piece, line it up and trace out the mounting holes with a pencil or fine-tipped marker. Then drill out the holes. While drilling, place the acrylic atop something expendable, like scrap wood and go slowly. Acrylic tends to crack if you push the drill too fast.
Once done drilling, re-check your hole alignment. If it's good you can now remove the protective paper backing.
Step 9: Protoboard
Here's a new Wright Hobbies PB400 board. It has two rows of 5-pin colums, as well as inside and edge power busses. It is also double-sided. Keep this in mind if you decide to use your own board. Otherwise, copy mine exactly and it will work the first time.
Step 10: Cutting Traces
We have to cut a few traces to accommodate the ceramic resonator and the power jack. I use a jeweler's file to cut and scrape off the traces. Any pointy and sturdy metal object will work. They key is to cut only the trace you want, do it cleanly and not gouge the board unnecessarily.
Note, you will be cutting traces on both sides. I have marked in black where you must cut.
Step 11: More Cutting Traces
Step 12: Chip Placement
Step 13: Make an 18-pin Socket
Step 14: Solder the Sockets
Step 15: Solder the Ground Wires
Step 16: Solder the VCC Wires
Step 17: Solder 10K Pull-Up Reset Resistor
Step 18: Solder the Resonator and Bypass Caps
Step 19: Prep the Data Bus
Step 20: Install the Data Bus
Step 21: Prep the Address Bus
Step 22: Install the Address Bus
Step 23: Install Display Select Jumper
Step 24: Testing
Step 25: Programming Hardware
There are many ways to program an Arduino. If your ATMEGA was purchased with a bootloader, all you have to do is pop out the original chip from your Ardunio board, put yours in and upload the program. If, like me, you bought a blank ATMEGA and plan to program it in the Boarduino, you will have to first install the bootloader. This can be accomplished like with an in-circuit programmer (ISP) like a usbtiny. Alternatively, look around online for instructions on how to use an Arudino and some jumper wires to an ATMEGA on a breadboard with a crystal or ceramic resonator to load the bootloader.
My design does not include a 6-pin ISP header, but you could move the display a few pins right and get yourself plenty of room for one on the left side of the board.
Anyhow, I began by popping the original chip off the Boarduino. Then I installed the blank chip gently into the socket (to make it easier to get out), plugged in the usbtiny and programmed it using the Arduino software.
Step 26: Note for Mac and Usbtiny Users
Step 27: Upload the Bootloader
Step 28: The Program
First, the program algorithmically generates four-letter "english" words - it does not use a list. It chooses from beginning letter pairs and ending letter pairs, checks them against some simple rules and then sends them off to the display. There is also an intro phrase and an "intermission" phrase every 100 iterations. You can change these to whatever you want.
As far as the algorithm goes, it generates real English words about 2/3rds of the time. The other times it's still word-like or perhaps a word in another language than English. And yes, it will occasionally generate a "bad" (vulgar) word. If that is a problem for you, you will have to modify the code.
The other way this is done is to store a list of 4000+ words in flash and access them via PROGMEM.
The rest of the code deals with the DL2416T display. It parses out "words" from a string, meaning characters separated by spaces. If a word fits in four characters, it displays it directly. If it does not, it scrolls it. There's some button-checking code in there. If you want to add a button, use the return value from the formatting function. It keeps things responsive while scrolling without using interrupts.
Step 29: Upload the Program
When done, pop out your chip (hopefully you did not press it all the way in) and plug it into your board. Be sure to put it with pin 1 to the right. Also install the display - pin one on the left.