Skip to content

FTDI device driver written in pure Python

Notifications You must be signed in to change notification settings

sebastian-matuschka/pyftdi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyFtdi

Documentation

PyFtdi documentation is available from https://eblot.github.io/pyftdi/

Overview

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

Modern FTDI devices include:

  • UART-only bridges
    • FT232R (single port, clock up to 6 MHz, 3Mbps)
    • FT230X (single port, clock up to 48 Mhz, 3Mbps)
  • UART and multi-serial protocols (SPI, I2C, JTAG) bridges
    • FT2232D (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)

Other FTDI devices could also be supported (including FT232* devices), although these devices are not a primary goal for PyFtdi, and therefore have not been tested with PyFtdi.

Primary goals

PyFtdi currently supports the following features:

  • UART/Serial USB converter, up to 12Mbps (depending on the FTDI device capability)
  • Bitbang/GPIO support
  • SPI master
  • I2C master
  • JTAG master

PyFtdi provides a pyserial compliant API, so it can be used as a drop-in module to access USB-serial converters based on FTDI devices.

Warning

Starting with version v0.40.0, several API changes are being introduced. While PyFtdi tries to maintain backward compatibility with previous versions, some of these changes may require existing clients to update calls to PyFtdi.

Do not upgrade to v0.40.0 or above without testing your client against the new PyFtdi releases. PyFtdi versions up to v0.39.9 keep a stable API with v0.22+ series.

See the Major Changes section on the online documentation for details about potential API breaks.

About

FTDI device driver written in pure Python

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.7%
  • Shell 0.3%