This page sets out some basic information about serial connectors used for RS232-level asynchronous serial communications.
Protocol and signal levels
When TXD and RXD lines are in the IDLE state (and for a Logic 1 on these lines):
TTL logic lines are at +5V
RS232 lines are at -VE voltages
Current is flowing in current loops
Here are two diagrams showing TTL and RS232 voltage levels:
Pinouts: DB25 and DE9
The full description of the DB25 pinouts (including rarely used signals) is shown in the table about one-quarter of the way down this page -> RS232 on DB25 Pinout (RS-232C)
The table below shows the serial port pinout on some devices I have needed to make cables for.
This image shows the pinouts of the DB25 connector from a DTE’s perspective -> V.24/RS-232 Interface
Note 1 (Ferguson Big Board I):
This section is largely adapted from Wikipedia’s Data Terminal Equipment page.
Usually the DTE device is the terminal (or a computer emulating a terminal), and the DCE is a modem or another carrier-owned device.
A general rule is that DCE devices provide the clock signal (internal clocking) and the DTE device synchronizes on the provided clock (external clocking). D-sub connectors follow another rule for pin assignment.
The signal names used in most diagrams are usually named from the perspective of the DTE device.
IBM PC DB25 Pinout (including current loop)
This section is largely adapted from a posting on Vintage Computer Forums by “vwestlife”.
The original IBM 8-bit ISA serial port card (and exact clones) supported current loop, using some of the pins not normally used by RS-232C. As Wikipedia says, “The original IBM PC serial port card had provisions for a 20 mA current loop”, and “on the original IBM PC, a male D-sub was an RS-232-C DTE port (with a non-standard current loop interface on reserved pins)”.
Current loop technology was supported on the PC and XT interfaces.
Current loop was discontinued when the AT interface was introduced.
Transmitted and receive data are referenced from the data device and not the modem.
Pinouts: DEC-423 MMJ/MMP
DEC used a 6-pin modular connector extensively on computers, terminals and printers. These are easily recognised by the offset locking tab, as pictured here.
Each piece of equipment was fitted with a 6-pin female Modified Modular Jack (MMJ). A 6-conductor flat cable with a 6-pin male Modified Modular Plug (MMP) crimped on each end was used to connect two pieces of equipment together. Every device had identical pinout (eg TX and RX was on the same pin on every device). The cable was constructed as a “crossover cable” (to achieve the swapping of TX and RX signals) by having the wiring reversed at each end.
DEC’s part number for the cables was BC16E-xx, where “xx” is the length of the cable in feet (eg – a 10 foot long cable was BC16E-10).
The pins are numbered 1 to 6. Pin 1 is furthest from the locking tab.
The pinouts are as follows (signal names are relative to the device):
Pin 1: Data Terminal Ready
Pin 2: Transmit Data (TX+)
Pin 3: Transmit Data GND (TX-)
Pin 4: Receive Data GND (RX-)
Pin 5: Receive Data (RX+)
Pin 6: Data Set Ready
Lammert Bies website has lots of useful information about the MMJ/MMP connectors and adapters.
MMJ to DE9 Null Modem Cable
It is relatively easy to construct a cable to connect a DEC device (with a female MMJ socket) to a PC or USB-to-RS232 adapter that has a male DE9 connector on it
You’ll need a short length of 6-pin flat cable with a MMP crimped to one end, and a DE9 female connector.
The interconnections required are shown in the table below. The signal names shown in brackets are relative to the device at that end of the cable. When viewing the DE9F from the rear (solder side) with the 5-pin row at the top, pin 1 is top-left, pin 5 is top-right, pin 6 is bottom-left and pin 9 is bottom-right. On the MMP connector, pin 1 is furthest from the locking tab.
Pinout: DEC DLV11-J
The DLV11-J (M8043) is a 4-channel Serial Line Unit for a QBUS PDP-11.
Along the top edge of the DLV11-J there are four 10-pin box headers (one for each channel).
The pin numbering of the box header pins is shown in the diagram on the right, which is Figure 1-1 from the DLV11-J User’s Guide. Pin 6 is usually removed on the DLV11-J, to accommodate a blanking key in the plug in this location.
Figure 4-13 in the DLV11-J User’s Guide (as shown on the right here) gives us a guide to the functionality at the 10-pin connector.
The DLV11-J supports both single-ended (RS232C) and differential (RS422) serial communications, depending on the status of the array of “M” and “N” numbers in the two top corners of the DLV11-J PCB. For RS232 usage, all 8 jumpers should have a link between “X” and “3”. Other changes may also be required. See the DLV11-J User’s Guide for full configuration details.
As can be seen in this diagram there are no handshaking lines (DTR, DSR, RTS, CTS, etc), but the DLV11-J does provide a +12V output that can be used to drive the handshaking lines (DSR, CTS, etc) at the peripheral, if required.
Although not shown in this diagram, Pins 2, 5 and 9 are permanently connected to GND.
DLV11-J to DE9 Null Modem Cable
Shown to the right here is the full pinout of the 10-pin connector on the DLV11-J. This is Table 1-1 from the DLV11-J User’s Guide.
It is relatively easy to construct a cable to connect a DLV11-J serial port to a PC or USB-to-RS232 adapter that has a male DE9 connector on it
I usually run a short length of 10-pin ribbon cable from the IDC 10-pin header, and a length (2 to 5 metres) of 4-way data cable from the DE9 female connector. Those two lengths of cable can then be soldered together as necessary (see the table below). Each individual soldered connection should have a heatshrink sleeve over it, and use another short length of larger diameter heatshrink to cover the overall join.
The interconnections required are shown in the table below. The signal names shown in brackets are relative to the device at that end of the cable. When viewing the DE9F from the rear (solder side) with the 5-pin row at the top, pin 1 is top-left, pin 5 is top-right, pin 6 is bottom-left and pin 9 is bottom-right. On the 10-pin header, pin 1 is in the top-right corner when looking into the housing on the edge of the DLV11-J.
In addition to the above connections, I often connect Pin 4 of the DLV11-J connector to the CTS pin (Pin 5 on a DB25F, Pin 8 on a DE9F). I do this because the DLV11-J can be jumpered to provide a TTL-level “Reader Run” output signal on Pin 4, and I may one day use this.
I always leave the shield un-connected at the DLV11-J end of the cable. I sometime connect the shield to Pin 1 on a DB25 connector.
Note: DEC also made a bulkhead with 4 x DB25M connectors on it, which can be used to connect up all 4 ports on a DLV11-J. The part is called a “DLV11-J Filter Panel”. The DEC Part Number is 5415221 (the “21” is however hidden beneath the 40-pin Berg header), and the PCB is marked “5015220”. The schematic for this panel are available here -> CKDLVJ1 Field Maintenance Print Set, DEC Part Number MP00990-01. Page 13 of the MP00990 Field Maintenance Print Set shows how DEC connects between the DLV11-J and a DB25M plug.
Not also that there are other similar-looking panels that are NOT compatible with the DLV11-J, so check the part number or PCB number before using it. For example there is a H3173A (with PCB number 50-15599-01), which appears to be designed for use with DHV11 (terminal multiplexer).
FTDI USB-to-TTL-Serial Adapters
Here is the pinout of these relatively-common adapters.
The signal names below are relative to the FTDI chip (ie – TXD and RTS are outputs from the FTDI chip):
Sample code to implement serial terminal on a PC
Listed below are some links to projects that implement serial communications on a PC. I have found these to be useful for my own projects.