Skip to main content

Python wrapper around libFT4222.

Project description

python-ft4222

The FT4222H is a High/Full Speed USB2.0-to-Quad SPI/I2C device controller. This project provides (incomplete) python binding to LibFT4222 (user guide). It provides a similar api than LibFT4222 does.

The complete documentation can be found here

Example

I2C Master

import ft4222
import ft4222.I2CMaster


# list devices
nbDev = ft4222.createDeviceInfoList()
for i in range(nbDev):
    print(ft4222.getDeviceInfoDetail(i, False))

# open device with default description 'FT4222 A'
dev = ft4222.openByDescription('FT4222 A')

# do a i2c transfers where full control is required
slave = 1 # address
# read one byte, don't stop
data = dev.i2cMaster_ReadEx(slave, ft4222.I2CMaster.Flag.REPEATED_START, 1)[0]
# read another 5 bytes
data += dev.i2cMaster_ReadEx(slave, ft4222.I2CMaster.Flag.NONE, 5)
# another byte, than stop
data += dev.i2cMaster_ReadEx(slave, ft4222.I2CMaster.Flag.STOP, 1)

GPIO

import time
import ft4222
from ft4222.GPIO import Dir, Port, Output

# open device with default description 'FT4222 A'
dev = ft4222.openByDescription('FT4222 A')

# use GPIO2 as gpio (not suspend out)
dev.setSuspendOut(False)
# use GPIO3 as gpio (not wakeup)
dev.setWakeUpInterrut(False)

# init GPIO2 as output
dev.gpio_Init(gpio2 = Dir.OUTPUT)

# generate a square wave signal with GPIO2
while True:
    dev.gpio_Write(Port.P2, output)
    output = not output
    time.sleep(0.1)

Accessrights

Under Linux, the usb device is normally not accessibly by a normal user, therefor a udev rule is required. Create or extend /etc/udev/rules.d/99-ftdi.rules to contain the following text:

# FTDI's ft4222 USB-I2C Adapter
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="601c", GROUP="plugdev", MODE="0666"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ft4222, version 1.2.2
Filename, size File type Python version Upload date Hashes
Filename, size ft4222-1.2.2-cp36-cp36m-manylinux1_x86_64.whl (485.6 kB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size ft4222-1.2.2-cp37-cp37m-manylinux1_x86_64.whl (486.5 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size ft4222-1.2.2-cp37-cp37m-win_amd64.whl (302.8 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size ft4222-1.2.2-cp38-cp38-manylinux1_x86_64.whl (525.1 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size ft4222-1.2.2-cp38-cp38-win_amd64.whl (305.0 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size ft4222-1.2.2-cp39-cp39-manylinux1_x86_64.whl (515.6 kB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size ft4222-1.2.2-cp39-cp39-win_amd64.whl (305.0 kB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size ft4222-1.2.2.tar.gz (2.3 MB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page