Manual / Guide
Mike Douglas ASCII RS-232 AFSK Interface
Mike Douglas, *ASCII/RS-232/AFSK Interface for the Model 15 Teletype* — user manual
Manual / Guide
Mike Douglas, *ASCII/RS-232/AFSK Interface for the Model 15 Teletype* — user manual
ASCII/RS-232/AFSK Interface for the Model 15 Teletype Sep 5, 2026 Introduction This board makes it easy to interface a Model 15 Teletype to a computer – or any device that uses RS232 and ASCII for communication. The board also has an audio input for accepting AFSK data (e.g., an ITTY feed) which it will demodulate and use to drive the Teletype. The board generates the 60ma loop current required by the Teletype without the need for a high voltage loop supply or high power (hot!) components. Host Interface The host interface is RS-232, 9600 baud, 8N1, using the ASCII character set. An RJ-14 modular connector on the interface easily allows switching between a modular DB-9 or DB-25 connector for the host connection. The host is throttled by a flow control line from the interface board. The audio input supports line level AFSK data (2125Hz Mark, 2295Hz Space) for ITTY or RTTY. Connection is via a 3.5mm headphone plug. Teletype Interface The Teletype interface supports 60ma current loop using the Baudot (US-TTY or ITA2) character set. The interface can also be configured to operate at 60, 67, 75 or 100 WPM. The Teletype must be wired for full duplex operation (separate transmit and receive loops). The interface is specifically designed for use with the Model 15 neutral signalling configuration (pulling or holding magnet). Connection to the Teletype is through separate 1/4” headphone jacks for send and receive. Half duplex operation can be enabled on the board, but the loops remain electrically separate. “Escape” sequences, started with the blank key on the Teletype keyboard, allow generation of ASCII characters not present on the Teletype keyboard (e.g., control characters, + * = ^ etc.). Miscellaneous The interface is fully powered by a small 15 volt AC adapter. The board is designed to fit in a Pac-Tec JM42 case. The board generates virtually no heat, so the case can be closed. Limitations The interface board is not a general purpose Teletype loop interface. It is specifically designed for the electrical characteristics of the Model 15 selector magnet. This is most typically a pulling magnet selector with about 200-220 ohms of resistance. The interface will also work with the Model 15 holding magnet selector with coils wired in parallel (about 50-55 ohms). It can also be used with some configurations of the Model 28 – contact me for assistance. If your equipment has a polar relay driving the selector magnet, the relay must be removed/bypassed and neutral signaling used. The interface is designed to drive just one Teletype in the loop. No other equipment, power supplies, or data switches should be in the printer loop or the keyboard loop. The printer and keyboard loops must be wired separately – not in series. The interface provides an option for half-duplex to allow local printing of keystrokes, so series wiring of the printer and keyboard loops is not necessary for local echo. How Does It Work? • A PIC16F1824 processor controls all operation including ASCII/Baudot translation, baud rate conversion, AFSK demodulation, and loop voltage control. • Power is supplied with a small 15vdc AC adapter. • A regenerative technique is used to generate the high loop voltages required for quick pull-in and release of the selector magnet armature. During a mark to space data transition, the snubber circuit captures 40v-60v from the decaying magnetic field of the selector magnet onto a pair of capacitors. This captured energy is then dumped back into the loop during a space to mark transition. • If needed, a processor controller switching circuit can be enabled to further boost the voltage on the snubber capacitor after each mark to space transition. • A monitor mode is accessible through the host interface to allow easy configuration of settings. This includes selection of the baudot translation table, enabling a baudot pass-through mode, enabling carriage return timing, unshift on space, selection of switching supply options, etc. Assembly Procedure Parts List Qty Designator 2 3 1 1 3 2 1 1 2 1 1 1 1 1 1 C1, C2 C3,C4,C6 C5 C7 D1,D2,D3 D4,D5 J1 J2 J3, J7 J4 J5 J6 L1 R1 R2 1 2 1 1 1 1 2 1 1 1 1 1 R4 R5,R6 R7 R8 R9,R11 R10 T1,T2 U1 U2 U3 Description 1.0uf, 250v Ceramic Capacitor 0.1uf Capacitor 10uf, 25v Tantalum Capacitor 2.2uf, 35v Tantalum Capacitor Fast, 400v Diode Schottky Diode 2.1mm PCB Coaxial Power Jack 0.1" Berg Header and Jumper 1/4" Phone Plug Jack Telephone jack 6p/4c 3.5mm Phone Plug Jack Header 2 x 3 x 0.1 100uh Inductor 50 ohm Trimpot 0 ohm (pulling magnet) 150 ohm, 1w (holding magnet) 560 ohm, 1/4w 220 ohm, 1/4w 10K, 1/4w 51K, 1/4w 1K, 1/4w 330 ohm, 1/4w Logic MOSFET, 250v Solid State Relay PIC16F1824 (use 14 pin socket) 78L05 Regulator 15v A/C Adapter Case (optional) PacTec JM-42 Mouser Part Number 81-RDER72E105K5B1H3B 80-T350E106K025AT 581-TAP225K035SRW 583-FR104G-B 78-BAT46 502-RAPC722X 568-NYS2162-U 571-5555165-2 502-35RAPC2BH3 649-67996-406HLF 652-RLB0912-101KL 229-CT-6EP500 (can be just a wire) 689-TN5325N3-G 782-LH1505AB, 782-LH1522AB, 78-VOR2121A8 (provided) 511-L78L05ABZ 490-SMI6B-15-4-P6 616-71867-510-000, 490-SWI6-15-N-P5 PCB Assembly Assembly steps are not critical. In general, work from lower to high profile parts: 1) Insert and solder resistors and diodes 2) Insert and solder U1 and the socket for U2 (the processor) 3) Insert and solder trimpot R1, audio connector J5 4) Insert and solder capacitors, J6 header 5) Insert and solder transistors, voltage regulator 6) To prevent a high-voltage and/or high current accident, do NOT install L1 for now 7) Insert and solder remaining connectors IMPORTANT: The current sense jumper J2 must ALWAYS have a shorting jumper or a current meter in place. Do not operate the board with J2 open. At this point you can power up the PCB and check for reasonable voltages based on the schematic. Do not connect the interface to your Teletype at this time. This will be done after the host interface has been checked and the board has been configured. Part Designators and Locations Host Cable Assembly Modular DB-x connectors make it easy to connect the Teletype to computers with different interface requirements because the modular DB-x connectors are easily swapped on and off the end of the phone cable. Custom wiring of the DB-x connector requires no soldering – just push the pre-wired pins into the DB-x positions your application requires. Do a search for RJ-11, 12 or 14 to DB-9 or DB-25. Don’t get the RJ-45 versions. The 11, 12 and 14 designations are used interchangeably, though technically in error. Because pin numbering and wire colors are not consistent with modular jacks and cables, use the picture below as a guide for determining how to wire the DB-x connector. The view shown is looking into a DB-x modular connector with the RJ14 hook down. Again, IGNORE WIRE COLORS as your connector may be different than pictured here – instead determine function by each wire’s position. For reference, the “R” and “T” signals are the center two positions. G – ‘G’round R – ‘R’eceive data into the adapter T – ‘T’ransmit data from the adapter H – ‘H’andshake line from the adapter PC Serial Port (DB-9 DTE): Use a female DB-9 connector. Plug unused wires/pins into DB-9 positions 6 and 9 for extra friction and to make sure they don’t short against anything internally. G – 5 (Ground) R – 3 (Xmt from PC) T – 2 (Rcv into PC) H – 8 (CTS into PC to throttle transmission) – 6 (unused wire) – 9 (unused wire) Vintage Computers (DB-25 DCE): Use a male DB-25 connector. Plug unused wires/pins into DB-25 positions 17 and 22 for extra friction and to make sure they don’t short against anything internally. G – 7 (Ground) R – 3 (Xmt from computer) T – 2 (Rcv into computer) H – 4 (CTS into computer to throttle transmission) – 17 (unused wire) – 22 (unused wire) IMPORTANT: The telephone cable used must be four conductor, not two conductor. Use a standard telephone cable (technically “reverse wired”). Configuring the Interface Board It is important to test the host interface and ensure the interface board is properly configured before connecting it to a Teletype. Use a terminal emulator like TeraTerm on your PC to connect to the host serial port on the interface board. In the terminal emulator under serial port settings, specify 9600 baud, 8 bits, no parity, 1 stop bit. Enable hardware handshaking (CTS/RTS). A configuration monitor is built into the interface board. It is accessed through the host serial port. To access the monitor, start the terminal emulator on your PC and configure settings as show above. With power off to the interface board, connect the serial cable from the PC to the RJ14 jack on the interface board. Finally, apply power to the interface board, and within three seconds press the ESC key on the PC keyboard. The board should respond with: Model 15 Loop Interface (Bootstrap v2.0) Update firmware (Y/N)? If this message does not come up, remove power from the interface, wait five seconds, and try again. If it still does not work, verify the serial port settings on the emulator are correct and that the correct COM port is selected. Also double-check the DB-9 wiring. Type “N” to the “Update firmware?” prompt to continue into the configuration monitor. The main menu of the monitor will look similar to the menu shown below. The note in parenthesis at the end of each menu item is the current setting for that menu option. Model 15 Loop Interface (Application v2.6) Main Menu" --------1) Full/Half Duplex (FULL) 2) Printer Translate Mode (ASCII->US TTY) 3) Keyboard Translate Mode (US TTY->ASCII) 4) Auto CR/LF at Column 73 5) CR Delay (ON) 6) Character Timing (7.42) 7) Voltage Boost (OFF) 8) Unshift On Space (OFF) 9) WPM Setting (60 wpm) Enter selection or X to exit: The function of each menu option is described below. When finished making changes, type “X” to exit the monitor and save changes. Full/Half Duplex – Toggles between full duplex or half duplex operation. With half duplex operation, characters typed on the Teletype keyboard are locally printed on the Teletype as well as being sent to the host. Half duplex can also be selected by installing a jumper on J6 where “Half Duplex” is labeled. The jumper takes precedence over the menu selection. Note that the jumper is only sampled when the interface is first powered on. Printer Translate Mode – Allows selection of translation from ASCII to US TTY or to ITA2. A Baudot passthrough mode can also be selected. In the Baudot pass-through mode, communication from the host is still 8 bit, 9600 baud, but the lower five bits of each byte contain a Baudot character to print without translation. This setting does not affect AFSK data. Keyboard Translate Mode – Allows selection of translation from US TTY or ITA2 to ASCII. A Baudot passthrough mode can also be selected. In the Baudot pass-through mode, communication to the host is still 8 bit, 9600 baud, but the lower five bits of each byte contain the untranslated Baudot character that was typed on the keyboard. This setting does not affect AFSK data. Auto CR/LF at Column xx – When the carriage reaches the specified column, the interface will send a CR/LF sequence to the Teletype before the next character is printed. This is typically set to column 73. Specifying column 0 disables auto CR/LF. This setting does not affect AFSK data. CR Delay – Toggles between on and off. When on, the interface inserts a one or two character delay based on the current carriage position to give time for the carriage return to complete. The LTRS character is the padding character used for timing. This setting does not affect AFSK data. Character Timing – Toggles between 7.0 and 7.42 timing. These codes represent 1 start bit, 5 stop bits, and either 1.0 or 1.42 stop bits, respectively. 7.42 is the most common timing, but most any machine will run fine at 7.0 on a short clean loop like the one used with this interface board. This setting does not affect AFSK data. Voltage Boost – The snubber circuit typically captures about 40v-60v on the snubber capacitor during a mark to space transition (pulling magnet selector). This voltage is then used to drive the loop during the space to mark transition. This voltage can be boosted during space period by 20v, 30v, or 40v with this option. “OFF” is the default. Ensure this setting is “OFF” until you have everything basically working together with the interface and your Teletype. See the “Voltage Boost Feature” section at the end of this document for more information. Unshift On Space – Toggles between on and off. If your Teletype has unshift on space enabled, this setting should be “on.” Otherwise, choose “off” for more efficient printing. WPM Setting – Selects between 60, 67, 75 or 100 wpm (45.5, 50, 56.8 or 75 baud). Note that character timing is reset to 7.42 anytime a new WPM setting is selected. Updating Firmware When needed, firmware updates can be applied through the host interface. To start, see the “Configuring the Interface Board” section above. At the “Update firmware?” prompt, type “Y” to proceed with the firmware update and then follow the prompts to send the .hex file containing the firmware update. After the update completes, there is a short pause, then the configuration menu is displayed. A firmware update resets all parameters, so you may have to make some updates. Adjusting Loop Current The printer loop and keyboard loop of the Teletype should be wired as separate loops in the Teletype. Cables from the printer loop and keyboard loop plug into the ¼” jacks as illustrated on the next page. Before applying power to the interface board, remove the jumper from J2 and clip a current meter across the two pins of J2. Adjust the trimpot to the halfway point. With the Teletype powered off and the printer cable from the Teletype plugged into the Printer jack, apply power to the interface board. In about a second, you should hear the selector magnet armature click into place. Adjust the trimpot until the measured current is 60ma. It is not unusual for the adjustment to be almost at the turn limit with a pulling magnet selector. Normal Operation of the Interface Board The printer loop and keyboard loop of the Teletype should be wired as separate loops in the Teletype. Cables from the printer loop and keyboard loop plug into the ¼” jacks as illustrated on the right. The interface board is typically used in one of three ways: 1) Half-duplex without a host connection to use the Teletype in local “typewriter” mode 2) Full or half-duplex with an RS-232 connection to a host computer 3) With an AFSK audio input for printing from a audio modulated feed like ITTY IMPORTANT: Do not have both RS-232 and audio plugged into the board at the same time. It must be just one or the other. Local Mode The simplest way to enable local (half-duplex) operation is to install a jumper on the “Half Duplex” pins on J6. Note that this jumper is only sampled when the interface board powers up. In half duplex mode, everything you type on the Teletype keyboard is also printed on the Teletype. Half duplex operation can also be enabled in the configuration monitor. Connected to a PC or Vintage Computer With an RS-232 connection to a PC, you can run a terminal emulator like TeraTerm on the PC and exchange data with the Teletype. In the terminal emulator under serial port settings, specify 9600 baud, 8 bits, no parity, 1 stop bit. Enable hardware handshaking (CTS/RTS). As you type on the PC keyboard, everything you type is sent to the Teletype. You can type faster than the Teletype can print, but the Teletype will eventually catch up when you stop typing. Similarly, anything you type on the Teletype keyboard will show up in terminal emulator window. You can use the File->Send… option in the terminal emulator to send a text file to the Teletype. For example, you could create a text file in notepad with “The quick brown fox…” message repeated a number of times and send it to the Teletype. You can also use the Teletype as an operator’s console connected to a vintage computer. Note that this requires the handshake line from the interface board eventually reaching the CTS pin on the UART used for the console port. There are several ASCII characters used by computers that are not present on the 5-bit Teletype keyboard. See the “ASCII/Baudot Translation” section for more information about the translations and how to generate the missing characters. Note that the interface board maintains a separate shift state for the printer and the keyboard. This ends up being more intuitive when using the Teletype as a console for a computer. For example, when CP/M displays its “A)” prompt, the printer is in the FIGS state to print the “)”. However, as an operator, you’d expect to start typing a command with letters, not figures. Similarly, if you were running a program that prompted over and over for a sequence of numbers, you’d intuitively just start typing numbers each time you were prompted even if the printer happened to be in a LTRS state after printing each input prompt. AFSK Audio Feed To use an AFSK audio feed, disconnect the RS-232 cable from the RJ14 jack on the interface. Plug in line level audio to the interface board using a 3.5mm phone plug. If using ITTY from a PC as the audio source, connect to the speaker jack on the PC and set volume at about 75% as a good starting point. The Model 15 is compatible with 60 WPM audio feeds – not 100 WPM. Printing should start immediately when the audio begins playing. Note that it might take a few characters or a line return until the Teletype’s FIGS/LTRS state is in sync with the sender. If there are any issues with printing, disconnecting the keyboard cable from interface might help – especially if the Teletype uses a governed motor. Also, adjusting the volume up or down for the best printing can help. ASCII/Baudot Translation The ASCII character set contains many characters that are not present in the Baudot character set. For the missing characters, the interface board makes the substitutions shown below: US-TTY Missing Characters VT, FF prints as LF TAB prints as space % prints as / * prints as $ + prints as ! < prints as ( = prints as " > prints as ) @ prints as & { prints as ( \ prints as / ] prints as ) ^ prints as ' _ prints as ` prints as ' { prints as ( | prints as I } prints as ) ~ prints as - ITA2 Missing Characters VT, FF prints as LF TAB prints as space % prints as / * prints as & " prints as ' ; prints as , # prints as £ > prints as ) @ prints as & { prints as ( \ prints as / ] prints as ) ^ prints as ' _ prints as ` prints as ' { prints as ( | prints as I } prints as ) ~ prints as - In the opposite direction – from Baudot keyboard to ASCII host, some of the missing characters can be generated with two-key “escape” sequences. The escape sequence starts by pressing the blank key followed by a second key listed in the table below. Note that the FIG/LTRS shift state does not matter. Keyboard Escape Seqences – Type BLANK then… C for ctrl-c O for ctrl-o X for ctrl-x Z for ctrl-z B for BS D for DEL T for TAB K for ESC E for = prints as " (ITA2 prints =) P for + prints as ! (ITA2 prints +) A for * prints as $ (ITA2 prints &) R for ^ prints as ' (R is for "R"aise to a power) G for > prints as ) L for < prints as ( U for _ prints as - Examples with CP/M and BASIC: A:=B:*.COM prints as... A:"B:$.COM for US TTY A:=B:&.COM for ITA2 A=B+C-(D*F)^3 prints as... A"B!C-(D$F)'3 for US TTY A=B+C-(D&F)'3 for ITA2 IF A>B THEN prints as... IF A)B THEN Voltage Boost Feature Once you have everything working fairly well, if your finder range is too narrow or you’re having to adjust the selector spring tension very close to the loose-end limit, you may want to enable the voltage boost feature. Install L1 and used the configuration monitor to try different voltage boost settings to improve performance of the printing loop.