The DL1416SmarTerm is a mishmash of various old and new components that presents itself as either a VT102-ish compatible terminal or a Tiny Basic computer both using a 12 line x 48 character LED display. It gets its name from the intelligent LED module its based around.
The Siemens DL1416B is an 8-bit parallel write-only device that can display 64 ASCII characters from a built-in ROM on its 17 LED segments. It also supports a cursor that can appear, non-destructively, over any character position. Five of these displays were used on the Rockwell AIM 65 computer for a 20-character display. I decided to take a modular approach to building the terminal display by putting 4 display modules on a board controlled by a local micro-controller (16 characters). I chose the Microchip PIC16F1459 because I had experience with it and it could support both a CDC-class USB serial interface as well as a TTL serial port. It didn't have enough pins to drive data, address and control to the display so I used a pair of shift registers. The boards are designed so that they can be daisy chained via the TTL serial signal.
Read more »
My friend had given me 213 displays so I decided I'd design for a 64 character by 16 line display which was at the low end, but common for some devices in the 1970s. Each board could be strapped for one of 4 column positions and one of 16 line positions. Firmware running on the PIC keeps track of the cursor position across the entire display and only updates its displays if it "owns" the cursor. The firmware also interprets several control characters for special functions and an escape sequence for cursor positioning.
I ordered parts for the full display and had a nasty surprise when I started assembling and testing. A couple of the tubes of displays contained nothing but bad parts. I had expected some fallout but now had no-where near enough displays to build the full 64 x 16 screen. I tried to disassemble a display but the entire thing was potted and there was no way to fix anything. So after testing all displays and discarding the completely dead ones and the ones with bad segments, the project was scaled back to 12 lines of 48 characters each. An additional complication was that the displays came in 7 different brightness grades. I tried to disperse them in a gradient across the display. Visually the result is ok although the different brightnesses are more apparent in photographs.
During firmware test, I found an error in the spec. It claims that the cursor position is controlled by the address lines but I found that I had to put a bitmask on the data lines. Later firmware testing revealed a few bugs related to cursor updating on a bunch of boards in parallel but overall it was fairly quick to get the displays up and running.
We used the shop-bot at Solid State Depot to route a piece of plastic to hold the displays in an array and also provide access to the ICSP programming port (for which I was thankful because I did one firmware update after all the displays were assembled together).
Next up was starting to assemble an enclosure. I decided to try to use only materials I had or I found at the hackerspace which turned out to be HDPE plastic. The motor controller for the shop-bot got damaged so I ended up hand cutting and routing. One interesting thing was having to deal with static electricity. I ended running a strip of conductive tape around both the terminal and keyboard enclosure and tying it (at least in the computer) to ground. I ordered a cut piece of transparent red plastic for the front bezel. A pair of old paddle switches and neon power indicator rounded off a look that I hope is reminiscent of the plastic and mod looks of machines from the 70s.
I choose a PJRC Teensy 3.1 as the brains of the device since it had plenty of RAM and 3 serial ports in addition to the USB host port. One serial port was dedicated to the DL1416B displays and keyboard. A second as a host RS232 port and the third as a printer RS232...