Okay, to re-cap, we have two restored working teletypes, two working current-loop to RS232 converters, a working Linux machine, and we're working on the TTY-Link device that will do the hand-holding between the 110 Baud Teletype Data Terminals and the high-speed 9600 baud Linux serial IO cards.
The software is nearing completion, after starting from scratch a couple times. We now have the TTY-Link communicating with a 9600 Baud terminal N 8 1, and a 110 Baud terminal running N 8 2, all LED's working, all ESC commands working, and able to read the configuration DIP switches.
See the two beige terminals to the right and left of the large screen? Those are IBM 3151 workstation terminals that are superb in design and quality. They use the great sounding, positive touch, old style 'clicky' keyboards, and can emulate 10 different data terminals, including the Lear Siegler ADM 3A & ADM 5, Hazeltine 1500, TeleVideo 910 & 925, IBM 3101, etc. Anyway I rescued these 20 year old terminals, and completely restored them so I could use them. You can see restoration of one of them here . . . IBM 3151 Restoration Don't forget to come back :-)
The last step was to get the flow-control working with the prototype. I had a problem getting the Qualtech DSC-100 Serial Board in my Linux machine to turn on the RTS / CTS (Request To Send / Clear To Send) hardware flow control signal, even though I was setting this with the STTY Linux command. I also tried using the DTR / DSR (Data Terminal Ready / Data Set Ready) but no luck. So I resorted to software flow-control, using the x-on / x-off (Ctrl-S / Ctrl-Q) characters. This worked nicely. But it means that I can't have a pure binary tape read to the PC, but I don't think I'll be doing that anyway.
Here is a flow diagram of the final software, which was now about 2500 lines of code. In my tests, the TTY-Link did work at 9600 Baud to the PC, but I liked running at 300 Baud, to reduce the chance of an x-on/x-off flow-control failure, even though I did adjust the trigger point, based on the PC Baud rate setting.
Okay so everything is now working, with the prototype hardware and software. Time to get a case and some boards manufactured.
I went with the Ramsey case, at $10 each. The screw mounts determined the size of my PCB, which I set at 4" x 4.1", only to find out later that this was a costly mistake.
For the PCB (Printed Circuit Board) layout software, I went with KiCad, which is free open-source, developed originally at CERN in Switzerland. The Engineer who helped me had used DipTrace, but that was $800 for a commercial version. We had been using Eagle PCB software in our electronics class, but recently switched to KiCad, when we learned you had to pay $700 for a useful commercial version of Eagle.
It turns out KiCad is an amazing piece of software. It has some awkward usability quirks, as it is French in design, but once you master them, KiKad is easy to use, and fast. First step was to re-do the schematic in the KiCad Schematic editor.
This is the board. To make it I assigned devices to all the schematic components, and laid them out on my 4 x 4.1 inch board, then ran traces to everything. I even gave the board rounded corners :-) This is the first real board for me, outside of small boards we have designed in ec10x electronics class. I then did copper ground pours on the top and bottom layers.
KiCad lets you see your board in 3D, and move it around with the mouse. It was this feature that helped me spot an error. Follow the green outside trace on the PC side of the board, near the upper left. You will see it ends in space, and does not connect to the red trace above it, thus a missing via. That's what they call the tined holes that go from the bottom of the board to the top, via's.
Next I ordered 10 boards, and learned of my costly mistake. The price point for ten 10 x 10 cm boards, was $15. 10 cm is 10 / 2.54, or 3.94 inches. My board was 4 x 4.1 inches, and the price point is for 15 x 15 cm boards, was $69 for ten boards. Too late to change, but I'll fix this if I do a second run. Total cost was $108, for 10 boards, including the airmail shipping to USA. I'm kind of flying in the dark with Seeed Studio. I know they are a middleman for the actually China PCB house, so costs are higher, and I don't have experience with their quality.
It seemed like two months, but 20 days later, 10 boards arrived. Pretty amazing! The quality appears good, but I did not tax the facility, as I used fat traces. A couple things to improve for next time is to make the white board text larger. Also would make rounded PCB corners a bigger arc. You almost don't notice they are rounded :-)
Well, I soldered on all the components, and tried things out. Things were working mostly, but I could not program the Atmel chip directly onboard, and I had some spurious results, i.e. bad characters printing. After about 2 hours of comparing the two boards, the wired prototype and the PCB, I finally realized the wiring to the 7805 voltage regular pins, were backwards. This was a result of the footprint that I used for that component had the three pins reversed. So I de-soldered the backward 7805, and soldered in a new one backward, to compensate for the reversed wiring.
Here the PCB is now working, exactly like the wired prototype. Super. Can't believe I was able to get everything working in just a couple hours. And yes, that's my now upside down, voltage regulator, under the black finned heat sink.
Here it is in the case, with the front and back panels labeled. I'm still getting a TTY print error every 10,000 characters, or so. Always a flipped bit, in different bit locations. I've triple checked the TTY transmit code, and it's clean and simple. Did not spot anything there. Now I will make a second unit, then start testing the complete system.
Continue to . . . Testing Everything
Copyright (c) 2014-2015 John Whitney - 801 815 9265 - john at johnwhitney dot com - Utah, USA