Skip to content

TTL Data Diode (breadboard)

Markus Ottela edited this page Sep 20, 2022 · 18 revisions

The hardware data diode is a device that allows transfer of data from one computer to another, while physically blocking transfer of data to the opposite direction. The data diode blocks all covert return channels of the link in question, even in the case where the serial interfaces (and their connected pins) are compromised, and re-programmed to send and receive data in the opposite direction.

The design of the data diode and this document are based on USB-TTL-USB Data Diode (version 16.10.a) by pseudonym Sancho_P. The design is modified and used under GNU FDL v1.3.

Required parts

PCS Item
1 Breadboard
3 5x1 male header (2.54mm)
2 HCPL-7723 optocoupler
4 0.01-0.1μF capacitor
9 male-to-male jump wiring
3 TTL-232R-5V USB-to-TTL adapter
3 USB 2.0 A - Mini-B cable
jump wiring

IMPORTANT:

As the original TTL-adapter is no longer available, the instructions below are informative only. Please refer to the schematics of the TTL-adapter to see how to connect the male-to-male jump wiring between the data diode and the TTL adapter.


Required parts

As optocoupler is an integrated circuit the internal functionality of which is hard to audit, to avoid interdiction by nation states, the user should avoid buying the component online.

The circuit diagram

The circuit diagram for the data diode is as follows

The circuit diagram

Building

Start by cutting the male header strip into three pieces with five contact points each. Solder one male header strip to each USB-to-TTL adapter. You can use the optocouplers and breadboard to support the adapter and pins when soldering.

Aligning TTL adapter with pin connector strip

After soldering the headers, solder the voltage selector of each FT232R to the 5V setting. Pay attention to the picture below to see which sections the solder covers. Be careful not to bridge the V-shaped gap between the 3.3V source (pointed in red) with the center lead. Doing so will fry at least the TTL adapter once it's powered on.

Pins to solder


Start the assembly of the data diode by placing the optocouplers on the breadboard as depicted. Notice the orientation marks of the optocouplers (highlighted with blue circles) point to opposite directions.

Optocoupler orientation


Ensure the width of the capacitor leads is four pins. Use needle nose pliers to bend the leads if necessary.

Proper capacitor lead width


Connect the capacitors and wires to the breadboard as follows. Measuring and cutting the jump wiring takes a surprising amount of time. Use this handy guide if necessary. You can also buy ready-made kits to save a lot of time.

Component and wiring placement


Connect the USB-to-TTL adapters to the breadboard. The rows of blue dots in the previous image represent the holes the adapter leads are connected.

TTL-adapter placement

If you want you can optionally create an inspectable tamper barrier for your data diode at this point.


The data diode is now complete. Connect the data diode between Source, Destination, and Networked Computer.

Hardware layout