DLP-USB245M Bitbang CLI interface


This uses libftdi to control a DLP-USB245M USB 1.1 parallel-port in bitbang mode, controlled by a Linux command-line application.
It's useful for simple hardware-control from the shell, writing or reading a byte at a time. Almost all the hard-work is done by libftdi; this is just one program that uses it.

For example:
ftdi245io --check   Check for the specific ftdi device (with the chosen serial number).
ftdi245io --porta_setpins 0xXX   Write the byte to the outputs (suitably output-masked).
ftdi245io --porta_readpins   Read the state of the inputs.
ftdi245io --porta_readback   Read back the current state, from the port hardware.

Libftdi is well documented, stable and flexible. The DLP-USB245M modules are now slightly dated (using USB 1 for 12Mbit/s max) but have had a Linux driver since kernel 2.4. They are quite flexible, capable of acting as a parallel-port with handshaking and a FIFO, or capable of being driven in bit-bang mode for direct I/O.


  • This is somewhat inelegant, and rather application-specific, but ready to use and easy to modify. It's all written in C.
  • Documentation is in the README.txt, the man pages, and by invoking each command with -h. Or read the source.
  • To install, simply: make && sudo make install
  • No udev rules is required: but the serial-number of the device is currently encoded in ftdi245io.h.
  • This is Free Software released under the GNU GPL v2+ (for compatibility with libftdi). Please feel free to take it, modify it, package it etc.
  • Author: Richard Neill. Do ask if you would like further information and assistance.


This was written as part of my PhD Infrared Camera system. It should be possible to adapt it for wider usage.
The original system had 4 independent USB245 devices, hence the remaining references to "PortA".




Some selected files, from the tarball: Readme and Man-pages.


Return to all programs, site home.