pylibftdi
Pythonic interface to FTDI devices using libftdi.
What it is and what it does
pylibftdi wraps the libftdi C library to give Python developers a high-level, Pythonic interface to FTDI USB devices. It abstracts away low-level libftdi calls and provides file-like objects for reading and writing, making it straightforward to control serial and parallel IO devices like the UM232R. The package supports multiple connected devices, text/binary modes with configurable encoding, and includes convenience wrappers for common external devices such as HD44780 LCDs.
The library is designed for embedded systems work and hardware control—typical use cases include reading sensor data over USB serial, toggling parallel IO pins, or driving external displays. It requires only the libftdi system library and Python 3.10 or later, with no additional Python dependencies, keeping installation friction minimal.
Use it for:
- Read sensor or telemetry data from FTDI serial devices at configurable baud rates.
- Control parallel IO pins on FTDI devices for relay switching or LED control.
- Interface with HD44780 character LCD displays via FTDI bitbang mode.
- Manage multiple FTDI devices simultaneously in a single application.
- Prototype embedded hardware communication without writing C code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pythonic interface to FTDI USB devices via libftdi, providing serial and parallel IO with file-like read/write operations and support for multiple devices.
Yes, if you need to control FTDI USB devices from Python. The package is actively maintained, has no Python dependencies, supports current Python versions, and carries no known vulnerabilities. Install friction is low. The MIT license poses no restrictions. The only prerequisite is having libftdi installed on your system and an FTDI device to communicate with.
Install
pylibftdi on PyPI
pip
pip install pylibftdiuv
uv add pylibftdipoetry
poetry add pylibftdiInstalling pylibftdi
Before you install
Low friction: pure Python wheel with no runtime dependencies beyond libftdi itself. Actively maintained with recent commits and supports modern Python versions (3.10–3.14).
License in practice
MIT license permits unrestricted use, modification, and distribution in commercial and private projects with minimal attribution requirements.
Quickstart
from pylibftdi import Device
with Device(mode='t') as dev:
dev.baudrate = 115200
dev.write('Hello World')
Requires libftdi library installed on the system; FTDI device must be connected and recognized by the OS.
Verify before relying
- Specific libftdi version requirements or compatibility matrix with different libftdi releases.
- Whether BitBangDevice and HD44780 LCD support are production-ready or still experimental.
- Performance characteristics when handling multiple simultaneous devices.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 132 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 93,318/month — #13,392 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pylibftdi-0.24.0-py3-none-any.whl
Keywords: ftdi, libftdi, usb
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
blkinfoRetrieves structured information about block…
copyleft · top 15,000 on PyPI
pyftdiPyFtdi provides a pure-Python user-space driver…
permissive · top 15,000 on PyPI
ft4222Provides Python bindings to LibFT4222, enabling…
permissive · top 15,000 on PyPI
libusb1Python wrapper for libusb-1.0 that enables…
copyleft · top 15,000 on PyPI
python-ipmiPure Python library for communicating with…
copyleft · top 15,000 on PyPI
PyLinkPyLink provides a unified file-like interface…
permissive · top 15,000 on PyPI
libusbsioProvides a Python wrapper around NXP's…
permissive · top 15,000 on PyPI
pyusbPyUSB provides Python access to USB devices on…
permissive · top 5,000 on PyPI
libusb-packageBundles libusb shared libraries for multiple…
permissive · top 5,000 on PyPI
pylibiioPython bindings for libiio, a library for…
copyleft · top 15,000 on PyPI