AllSerial – A very universal modular USB-UART interface

Over the course of time I had to deal with tons of devices which had to be connected via a kind of serial interface (RS232, RS485, TTL, TTY, …). There are lots of different cheap USB-UART adapters available, but no adapter was including all features I wanted to have in a single device:
- Interfacing ALL signals: TXD, RXD, RTS, CTS, DSR, DTR, DCD, RING
- Electrically isolated signals and supplies
- LED indicators for TXD/RXD
- Pinheader for attaching a logic analyzer
- Generate electricaly isolated power for supplying slaveboards and DUTs connected to these
- Enclosure
- open source hardware
- installation without dedicated drivers on Windows, Linux & Mac
All adapters have common parts like the USB-interface IC, USB connector, electrical isolation, indicators, etc.. So I came up with the idea having a mainboard providing all common parts, and having a common connector for different slaveboards hosting all the interface-specific parts which can easily be plugged into the mainboard.
Mainboards
USB Mainboard

This mainboard uses the well known FT232 USB to UART bridge IC from FTDI. Power is supplied from the USB interface, no additional power supply is required. The isolated voltage supplys (3.3 V, 5 V, 12 V) are provided via screw clamps e. g. to supply DUTs.
WiFi Mainboard (under development)

Alternatively to the USB Mainboard the WiFi Mainboard can be used to bring a serial connection to a WiFi network.
Slaveboards
At the moment there are slaveboards availble for the following types of serial interfaces. A KiCad library is provided so custom types of interfaces can be added easilly.
EIA-232 (RS-232, V.10)

This slaveboard uses the MAX211 IC from Maxim for converting the signallevels to RS-232 compliant values. All data- and handshakelines (TXD, RXD, RTS, CTS, DSR, DTR, DCD, RING) are interfaced and can be accessed on a pluggable screwclamp. Additionally there is a 2×5 pin header on the slaveboard where a standard 9-pin IDC D-Sub connector can be attached.
EIA-422 (RS-422, V.11) / EIS-485 (RS-485, V.10)

This slaveboard provides up to 4 differential data-/handshake linepairs. In RS-485 mode only one differential pair (A, B) is used for sending and receiving (half-duplex). Switching between TX and RX is done automatically by the mainboard. In RS-422 mode 2 pairs are used, one for sending (TX+, TX-) and receiving (RX+, RX-). As a special feature it is possible to send one handshakesignal (RTS or DTR) over a seperate linepair (XO+, XO-) and receive one handshakesignal (CTS or DSR) over a seperate linepair (XI+, XI-). This can be used to connect to devices over long distances which require hardwarehandshake.
Configuration jumpers:
- Term.: Activate termination resistor (120 Ohms) für linepair A/B
- RS422 closed -> RS422 mode, open -> RS485 mode
- XI-CTS closed: route received signal on linepair XI+/- to CTS, XI-DSR: route received signal on linepair XI+/- to DSR
- XO-RTS closed: route RTS to linepair XO+/-, XO-DTR closed: route DTR to linepair XO+/-
TTL

The TTL slaveboard leads all data- and handshakesignals (TXD, RXD, RTS, CTS, DSR, DTR, DCD, RING) to a pluggable screwclamb. The voltagelevel is selectable via a jumper (1.8 V, 3.3 V, 5 V) and also supplied on pin Vcc of the screwclamp. If jumper is not applied, the voltage can be set by connecting the desired voltagelevel on pin Vcc of the screwclamp.
TTY current loop

This historical interface is provided by the TTY slaveboard. All connections of the RX- and TX-loop are wired to a pluggable screwterminal in order to use it for different TTY wirings:
- 2 wire: half-duplex, sender and receiver in serial connection
- 3 wire: full-duplex, 1 pin for sending, 1 pin for receiving, 1 pin common
- 4 wire: full-duplex, 2 pins for sending, 2 pins for receiving
- All wirings can be configured for active mode (interface will provide power for signalloops) or passive mode (DUT will provide power for signalloops)
- 2 constant current sources included on slaveboard, all wirings can be used in active or passive mode
ESP8266 flasher

The ESP8266 flasher slaveboard can be used to connect to a ESP8266 microcontroller. This slaveboard also generates the reset- and GPIO0-signals to bring the target into bootmode. Additionaly there is a dedicated 2×4 pin socket for directly plugging in an ESP01 device.
1wire

The 1wire-slaveboard used the DS2480B IC from dallas semiconductors in order to connect to 1wire devices like temperaturesensors and many others.
LIN (local interconnect network)

The LIN slaveboard uses the Microchip MCP2003 IC to provide a LIN interface which is commonly used for communication between components in vehicles. When configuration pins Master is closed, the device will work as a LIN master.
Digi XBee (under development)

Evaluationboard for Digi XBee S2/S3/LTE radiomodems. Frontpanel has space for 3 SMA pigtails used by the LTE modem.
eBus

The eBus is used for controlling heating systems. Optional 24 V power supply can be connected, e. g. when testing a single eBus slave which does not provide supply voltage to the eBus.
Custom boards
Custom master- and slaveboards can easily be designed by using the provided KiCad libraries in the GitHub repository. For the interfaceconnector between master and slavedevices there are symbols available:

The voltagelevels of the signallines are selected by the slaveboard by connecting the needed voltage (1.8 V – 5 V) back to VIN. One of the three provided powersupplies of the master (1.8 V, 3.3 V, 5 V) can be used here, alternatively an external supply between 1.8 V and 5 V.
In order to minimize designtime, the KiCad library contains PCB templates for master- und slaveboards and also for the frontpanels:

