Project: pyftdi

FTDI device driver (pure Python)

Project Details

Latest version
0.55.0
Home Page
http://github.com/eblot/pyftdi
PyPI Page
https://pypi.org/project/pyftdi/

Project Popularity

PageRank
0.004652620752840817
Number of downloads
94760

PyFtdi

.. cannot use defs.rst here, as PyPi wants a standalone file. .. |I2C| replace:: I\ :sup:2\ C

Documentation

The latest PyFtdi online documentation is always available from here <https://eblot.github.io/pyftdi>_.

Beware the online version may be more recent than the PyPI hosted version, as intermediate development versions are not published to PyPi <https://pypi.org/project/pyftdi>_.

PyFtdi documentation can be locally build with Sphinx, see the installation instructions.

Source code

PyFtdi releases are available from the Python Package Index from PyPi <https://pypi.org/project/pyftdi>_.

PyFtdi development code is available from GitHub <https://github.com/eblot/pyftdi>_.

Overview

PyFtdi aims at providing a user-space driver for popular FTDI devices, implemented in pure Python language.

Supported FTDI devices include:

  • UART and GPIO bridges

    • FT232R (single port, 3Mbps)
    • FT230X/FT231X/FT234X (single port, 3Mbps)
  • UART and multi-serial protocols (SPI, |I2C|, JTAG) bridges

    • FT2232C/D (dual port, clock up to 6 MHz)
    • FT232H (single port, clock up to 30 MHz)
    • FT2232H (dual port, clock up to 30 MHz)
    • FT4232H (quad port, clock up to 30 MHz)
    • FT4232HA (quad port, clock up to 30 MHz)

Features

PyFtdi currently supports the following features:

  • UART/Serial USB converter, up to 12Mbps (depending on the FTDI device capability)
  • GPIO/Bitbang support, with 8-bit asynchronous, 8-bit synchronous and 8-/16-bit MPSSE variants
  • SPI master, with simultanous GPIO support, up to 12 pins per port, with support for non-byte sized transfer
  • |I2C| master, with simultanous GPIO support, up to 14 pins per port
  • Basic JTAG master capabilities
  • EEPROM support (some parameters cannot yet be modified, only retrieved)
  • Experimental CBUS support on selected devices, 4 pins per port

Supported host OSes

  • macOS
  • Linux
  • FreeBSD
  • Windows, although not officially supported