Skip to content

Update the FTDI interface to be 64-bit compatible#19105

Merged
SaschaCowley merged 21 commits into
masterfrom
ftdi64
Oct 31, 2025
Merged

Update the FTDI interface to be 64-bit compatible#19105
SaschaCowley merged 21 commits into
masterfrom
ftdi64

Conversation

@SaschaCowley

@SaschaCowley SaschaCowley commented Oct 15, 2025

Copy link
Copy Markdown
Member

Link to issue number:

Fixes #19028

Summary of the issue:

Papenmeier braille displays don't work with 64-bit NVDA.

Description of user facing changes:

Papenmeier displays should work again.

Description of developer facing changes:

  • ftdi2.py has been moved from miscDeps into nvda, and significantly refactored.

Description of development approach:

  • Copy ftdi2.py from miscdeps/python to source/ftdi2/__init__.py
  • Reimplement ftExceptionDecorator as a ctypes errcheck function
  • For each of the _PY_* functions, look up the corresponding function in the D2XX Programmer’s Guide (revision 1.6) and implement the corresponding ctypes prototype in ftd2xx.py
  • Convert enumerations to actual Enums, and move to ftd2xx.py
  • Verify struct definitions
  • Rename the various pythonic functions and methods according to NV Access' house style
  • Update the copyright headers and docstrings
  • Compare the old ftdi2.py wth the new ftdi2 package and document API differences
  • Remove ftdi2.py from miscdeps (PR Remove ftdi2.py nvda-misc-deps#46)
  • Update miscdeps

Testing strategy:

Asked affected users to test try builds.

Known issues with pull request:

None

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@SaschaCowley SaschaCowley added this to the 2026.1 milestone Oct 15, 2025
@github-actions github-actions Bot requested a deployment to snapshot October 16, 2025 07:03 Abandoned
@github-actions github-actions Bot requested a deployment to snapshot October 17, 2025 03:40 Abandoned
@SaschaCowley SaschaCowley added the conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review. label Oct 21, 2025
@github-actions github-actions Bot requested a deployment to snapshot October 21, 2025 03:50 Abandoned
@github-actions github-actions Bot requested a deployment to snapshot October 23, 2025 03:38 Abandoned
@github-actions github-actions Bot requested a deployment to snapshot October 24, 2025 06:04 Abandoned
@SaschaCowley

Copy link
Copy Markdown
Member Author

@michaelDCurran note that I want to send this for one last round of testing once it's reviewed. MiscDeps also needs to be updated once nvaccess/nvda-misc-deps#46 is merged.

@michaelDCurran michaelDCurran left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work :)

Comment thread source/ftdi2/ftd2xx.py Outdated
Co-authored-by: Michael Curran <mick@nvaccess.org>
@github-actions github-actions Bot requested a deployment to snapshot October 30, 2025 00:31 Abandoned
@SaschaCowley SaschaCowley merged commit e80f59d into master Oct 31, 2025
78 of 81 checks passed
@SaschaCowley SaschaCowley deleted the ftdi64 branch October 31, 2025 00:10
@SaschaCowley SaschaCowley mentioned this pull request Nov 28, 2025
5 tasks
seanbudd pushed a commit that referenced this pull request Nov 30, 2025
follow-up #18480
follow-up #19105
Follow-up #19196
Summary of the issue:

Commit references in projectDocs/dev/createDevEnvironment.md were out of date.

There were also references to nvda_dmp and the old ftd2xx.py.
Description of user facing changes:

None
Description of developer facing changes:

Description of runtime submodules now more accurately reflects reality.
Description of development approach:

Updated commit references and removed outdated items.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api-breaking-change conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Braille driver for Papenmeier newer models doesn't load with the latest alpha version

3 participants