pyftdi

FTDI device driver written in pure Python

https://github.com/eblot/pyftdi

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 50 committers (2.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

FTDI device driver written in pure Python

Basic Info
  • Host: GitHub
  • Owner: eblot
  • License: other
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 16 MB
Statistics
  • Stars: 560
  • Watchers: 29
  • Forks: 229
  • Open Issues: 105
  • Releases: 1
Created over 15 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

SWUbanner

PyFtdi

Python package Mock tests Syntax tests StandWithUkraine

PyPI Python Versions Downloads

Documentation

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

Overview

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

Suported FTDI devices include:

  • UART and GPIO bridges

    • FT232R (single port, 3Mbps)
    • FT230X/FT231X/FT234X (single port, 3Mbps)
  • UART, GPIO 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

License

SPDX-License-Identifier: BSD-3-Clause

Warnings

Python support

PyFtdi requires Python 3.9+.

See pyftdi/doc/requirements.rst for more details.

Owner

  • Name: Emmanuel Blot
  • Login: eblot
  • Kind: user
  • Location: France, Provence

Embedded SW developer / ARM - C - Python and other languages

GitHub Events

Total
  • Create event: 11
  • Release event: 1
  • Issues event: 27
  • Watch event: 51
  • Delete event: 6
  • Issue comment event: 51
  • Push event: 25
  • Pull request event: 22
  • Fork event: 14
Last Year
  • Create event: 11
  • Release event: 1
  • Issues event: 27
  • Watch event: 51
  • Delete event: 6
  • Issue comment event: 51
  • Push event: 25
  • Pull request event: 22
  • Fork event: 14

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 868
  • Total Committers: 50
  • Avg Commits per committer: 17.36
  • Development Distribution Score (DDS): 0.281
Past Year
  • Commits: 20
  • Committers: 5
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.2
Top Committers
Name Email Commits
Emmanuel Blot e****t@f****r 624
Emmanuel Blot e****t@n****m 63
Emmanuel Blot e****t@m****o 55
Emmanuel Blot e****m@g****m 15
Stefan n****t 10
Emmanuel Blot m****t@g****m 10
Emmanuel Bouaziz e****z@n****m 10
Adam Feuer a****f@p****m 7
TedKus t****s@m****m 5
Scott Petersen s****t@n****m 4
Roger Hu r****u@g****m 4
S. Goadhouse s****e@v****u 4
hannesweisbach h****h 3
Alex Forencich a****x@a****m 3
Tommy Vestermark t****v@v****k 3
David Brown d****d@w****m 3
Henry Au-Yeung h****y@g****m 3
Darren Garnier d****r@r****t 2
Mark Melvin m****n@g****m 2
Octavian Purdila t****i@c****o 2
Vianney le Clément de Saint-Marcq c****e@q****u 2
Darrell Harmon d****l@h****m 2
len0rd l****d 2
Anders a****e 2
Alex M 7****M 2
Michael Pratt m****1@g****m 2
Hannes Weisbach h****h@g****m 1
Michael Niewöhner f****s@m****e 1
Rod Whitby r****d@w****u 1
Sebastian Zwietz e****e@g****m 1
and 20 more...

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 117
  • Total pull requests: 56
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 5 months
  • Total issue authors: 111
  • Total pull request authors: 34
  • Average comments per issue: 2.41
  • Average comments per pull request: 1.86
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 19
  • Pull requests: 12
  • Average time to close issues: 4 days
  • Average time to close pull requests: 16 days
  • Issue authors: 18
  • Pull request authors: 6
  • Average comments per issue: 1.79
  • Average comments per pull request: 0.17
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • dvzrv (2)
  • shareefj (2)
  • mani9876 (2)
  • charkster (2)
  • forestomir (2)
  • insane-dreamer (2)
  • Notselwyn (1)
  • wuzhongjie1997 (1)
  • fredy0219 (1)
  • richcj10 (1)
  • rtborg (1)
  • Shoyur (1)
  • Bnjamn (1)
  • boyesm (1)
  • SurfCityMojo (1)
Pull Request Authors
  • eblot (10)
  • bhass1 (4)
  • markmentovai (3)
  • TedKus (2)
  • Kalofin (2)
  • dnschneid (2)
  • len0rd (2)
  • aleeraser (2)
  • andreasWallner (2)
  • sgoh25 (2)
  • romavis (2)
  • buganini (1)
  • enkiusz (1)
  • sjoerdsimons (1)
  • kornel-swierzy-embevity (1)
Top Labels
Issue Labels
wait4feedback (9) bug (4) invalid (3) documentation (2) duplicate (1) enhancement (1)
Pull Request Labels
wait4feedback (2) enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 340,596 last-month
  • Total docker downloads: 5,185,980
  • Total dependent packages: 24
    (may contain duplicates)
  • Total dependent repositories: 402
    (may contain duplicates)
  • Total versions: 106
  • Total maintainers: 1
pypi.org: pyftdi

FTDI device driver (pure Python)

  • Versions: 77
  • Dependent Packages: 24
  • Dependent Repositories: 401
  • Downloads: 340,596 Last month
  • Docker Downloads: 5,185,980
Rankings
Docker downloads count: 0.6%
Dependent packages count: 0.7%
Dependent repos count: 0.7%
Downloads: 0.9%
Average: 1.6%
Stargazers count: 2.9%
Forks count: 3.7%
Maintainers (1)
Last synced: 10 months ago
conda-forge.org: pyftdi

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

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Forks count: 13.2%
Stargazers count: 19.4%
Dependent repos count: 24.4%
Average: 27.1%
Dependent packages count: 51.6%
Last synced: 11 months ago

Dependencies

requirements.txt pypi
  • pyserial >=3.0
  • pyusb >=1.0,
.github/workflows/pythonchecksyntax.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
.github/workflows/pythonmocktests.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
.github/workflows/pythonpackage.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite