Using a 1930 Teletype as a Linux Terminal

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
It's a long time we haven't seen the five bit  Baudot teletypes and I'm taking advantage of   the Coronavirus shelter-in-place to finish  some loose end projects. And one of them was   a suggestion that we should connect this to a  modern machine, maybe a Linux one. As you might   remember from the restoration over a year ago this  model 15 teletype is an entirely mechanical device   which was introduced in 1930. It was very  popular until the 1960s, used for military   communications and commercial telex service. On  the transmit side it uses a rotating contact to   encode the bits. On the receive side it uses  a mind-bogging-ly clever mechanical system   driven by an electromagnet to decode the  bits and print them onto the roll of paper. The transmitted contact and receiver magnet are  linked by a line driven by a high voltage to   overcome the wire resistance, usually around 120  volts, and running at 60 milliamps current. The   scheme is called a 60 milliamp current loop. As  primitive as it looks, it can transmit reliably   for many miles. This of course predates ASCII  coding by a very long shot. Instead it uses the   earlier Baudot coding with only 5 bits, at the  very pokey rate of only 45.5 bits per second or   Bauds as it became known. So at first blush, it  is rather incompatible with modern computers.   First thing is to make a circuit that goes from  the 60 milliamp high voltage current loop to   a regular 5-volt logic and what I like in this  circuit I got on the Interwebs is that it takes   care of the polarity. This is the low voltage  and digital signal. You light up your little   LED in your opto-coupler, it's basically a modern  equivalent of a relay, it's a solid state relay.   And a voltage clamp to get rid of the relay spikes  that will invariably come back and ruin your opto   isolator. I like the receiver circuit too and it  cleverly puts a full bridge rectifier so you are   not sensitive to the polarity of the loop. And  same thing, opto-isolator and off you go to the   5 volt circuitry. Except they had two mistakes in  it and that can't be a 100 Ohms - 100 Ohms with a   120V on it will definitely fry your opto-isolator.  And here also the resistor is in the wrong branch   of a transistor. And here's the circuit. You  see the transmit with the polarity insensitive   opto-isolator and the 120 volt TVS and in the  receive section you have the power resistor,   the full-bridge bridge rectifier, the  1k resistor - and not the 100 Ohms - the   simple opto-isolator and the resistor in the  right branch of the circuit. And out it comes:   plus minus 5 volts, Rx and TX. I wanted to give  it the a whirl and try it on the Teletype here.   Except that I need a source of 5-bit 45.5 Bauds  and I haven't made that contraption yet. But i   have the HP 8018 serial data generator.  So what this antique instrument can do,   is generate a serial bit stream. And you have  a giant memory of 2 K bits. Let's do a 1 bit   pattern. Load word. Here is our bit. I  can add another bit. Here are 2 bits. And let's send [it] out to the teletype. So okay my interface works, let's write some  modern Arduino stuff. So my job here is to   make a contraption that takes regular  ASCII eight bits on one side and spit   out some Baudot bits on the other side. I  usually put the hardware I built over here,   or I will put my interface, [but] it's  already taken out, it's already put in   a box. And on the software side I use the  Eclipse IDE and I program the devices in   straight C. I don't use at all the Arduino  stuff, which gives me more control. And in   particular the trick here was to slow down the  Atmel enough so it could do baudot at 45.5. It   turns out [that] the Atmel chip supports 5  bits, but to get it to go down that slow,   you have to go into the fuses and flip this little  one here that says "divide clock by 8 internally".   So this bit is on and instead of having your  standard Arduino running at 16 megahertz,   it divides it internally down to 2 megahertz and  that's slow enough to cover all the way down to   45.5 Bauds. I put the Arduino and the interface  in a blue box and wired it to a front panel. Okay, demonstration! So I use the USB either  as an input or for power, actually it does   both .Then also put the serial port in  it. Here I have my high voltage supply   for the loop. And I'll put myself in  half duplex, power in, here we go. Okay, it's on. If I turn to over here, let me  make a terminal. And it's using - I think I am   on COM4. You want to turn Xon-Xoff if you send  big files. All right so now we type on this. And it goes back to the other end. And notice that it has a lot of buffering. And the extra feature I have added is lowercase  mode. Of course the original UNIX did support   all caps - heck, that's how it was developed, on  ASR 33 Teletypes - but this feature seemed not to   be functional in modern distributions.  Although the -U option is still there,   it sure didn't work. And for the  occasional capitalization I need,   what I elected to do is to use the blank  key as a prefix. Let's do CuriousMarc and   I'll capitalize CuriousMarc. So, I'll  do blank c-u-r-i-o-u-s blank m-a-r-c and of course here it's all caps, it's the  only thing it can do. But on the receive side   it did capitalize it properly. So were these  modifications I think I can log into Linux. So   here's the setup: on the right it's my Dolch which  has booted an old version of Linux. Now the box   is set up in full-duplex. The transmit, which is  powered by this box, and the receive comes to this   other box, because I have to power the receive  loop separately. Since it's not half-duplex,   there are two independent loops. So they are both  connected to my high [voltage] supply. Now it   powers two loops so I have 120 mA instead of 60.  Okay. And actually if I turn this on, that should   be OK. So, that where we need the Linux-Fu to come  in, and I always get it wrong. I have two serial   ports ttyS0 and ttyS1, and I'm on S0 I believe. So  it would be set TTY dash F slash /dev/ttyS0 9600.   And I want xOn Xoff, so ixon ixoff. So now I  have to generate a login shell so sbin/agetty, "Alternate Get TTY". ttyS0. I'm  gonna tell it what type of terminal,   I'll try tty33 which is ASR 33. That should do  it. I put myself in lowercase mode here. So...  We have a shell prompt! That's where we'll   see if my lowercase trick works. Cannot possibly work without effective root? Ah, I have to do sudo. Okay, all right, almost  there. sudo, Super User do, okay. Try it again. Allright, try again. USER. Okay, doesn't echo my password,  that's correct. Oh we're in! Oh no, it's going to give a disclaimer.  It's going to take forever at 45.5 Bauds. All right! So I should have a computer at the  other end of this old mechanical contraption.   So. Oh, let's do UNALIAS LS, because I know this  distribution does color by default, which will   give me all all the extra characters I don't want.  So do LS, let's see what's in this directory. Okay. So what can you do? Well, probably not  very much, because you can't do any programming,   because you don't have even - there's  no plus sign, there is no equal sign,   there is no backlash, so you're really really  limited in what character you can input into   this thing. But I could do a little bit of single  line editing. Let's try it. Let's do ED. ED, okay,   single line editor. This - no. Append. There  we go. And I go second line. So ED being the   original editor for Teletypes, one line at  a time. And to get out of it it's FIGS-dot,   I have to go back to LTRS, or  I'll forget. All right. And now   I want to change the second line, so  I would go to line two. FIGS 2 LTRS "At the teletype". Now I want to change it,  I do C. Then I do CAT TEST. It works! Can you   imagine developing the whole Unix system line by  line on the line editor? Now those guys deserve   a medal. What people used to do a lot is print  ASCII art. They are very nice, takes forever to   print though. ROADRUNNER. And here is Roadrunner  and my whole Unix session. There! Not that it's   useful or anything, but it can be done:  a 1930 Baudot teletype as a terminal for   Linux. Alright commenters: I think have  done it, and don't miss the next episode   as we might well try to connect to  Linux using Morse code this time.
Info
Channel: CuriousMarc
Views: 1,553,142
Rating: undefined out of 5
Keywords: CuriousMarc, Vintage Tech, Retro Computing, Restoration, Electronic Repairs, TTY, Teletype, Model 15, Baudot, 45.5 Baud, 60 mA Current Loop, RTTY, Terminal, agetty, Crunchbang, Telex
Id: 2XLZ4Z8LpEE
Channel Id: undefined
Length: 16min 33sec (993 seconds)
Published: Mon Apr 13 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.