Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
2441213
BaseException should be reserved for built-in python code per https:/…
jcollins1983 Feb 23, 2026
aff9f01
merge main
jcollins1983 Mar 2, 2026
d10786f
restructure ftdi library
jcollins1983 Mar 2, 2026
1ca32bc
update import references after restructure to ftdi module
jcollins1983 Mar 3, 2026
6569c3e
add dll and necessary bits to be able to include it in the fixate pac…
jcollins1983 Mar 3, 2026
6b4e73b
ready to start testing with hardware
jcollins1983 Mar 3, 2026
fe841d8
add not implemented error for SPI class
jcollins1983 Mar 4, 2026
c7c3a9d
update black to be able to parse current python features
jcollins1983 Mar 4, 2026
e3d1001
use generic type to make open method a little cleaner
jcollins1983 Mar 5, 2026
34ec6fa
correct dll function calls that resulted in an OSError
jcollins1983 Mar 5, 2026
afde6f6
fix error handling
jcollins1983 Mar 5, 2026
95a9f8c
add pyftdi like start / stop bools in the simple interface
jcollins1983 Mar 8, 2026
7591271
it doesn't make sense for the options to be optional
jcollins1983 Mar 8, 2026
438a4b1
future work TODO
jcollins1983 Mar 8, 2026
389d297
make repeated start teh default (as per pyftdi)
jcollins1983 Mar 9, 2026
8b07986
build without a debug print statement
jcollins1983 Mar 11, 2026
3cd59f7
change to I2CError for more clarity in error reporting
jcollins1983 Mar 11, 2026
6d8aca4
add retry logic akin to that in pyftdi library as I don't want to int…
jcollins1983 Mar 17, 2026
5fc0b27
switch to NAK last byte
jcollins1983 Mar 17, 2026
99dff59
clean up handle after close
jcollins1983 Mar 17, 2026
05b8bae
add comment RE change to library
jcollins1983 Mar 17, 2026
46e216e
make ftdi_mpsse.py private and only expose parts of the module that a…
jcollins1983 Mar 17, 2026
a888668
update release notes and make version line up with these
jcollins1983 Mar 17, 2026
f20d3b7
ignore a mypy issue because I don't want to deal with it in this branch
jcollins1983 Mar 17, 2026
6166852
update the ignore structure after changing the module layout for ftdi. I
jcollins1983 Mar 17, 2026
a58fc70
switch prints to logger calls
jcollins1983 Mar 17, 2026
7700d68
make tox black version the same as precommit.yaml version
jcollins1983 Mar 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ repos:
hooks:
- id: check-yaml
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 25.12.0
hooks:
- id: black
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# All aren't necessary for the docs themselves
autodoc_mock_imports = [
# import a DLL/shared lib and is platform-dependent
"fixate.drivers._ftdi",
"fixate.drivers.ftdi._ftdi",
"PyDAQmx",
# pulls in platform-dependent libraries
"pynput",
Expand Down
1 change: 1 addition & 0 deletions docs/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Major Changes

New Features
############
- FTDI MPSSE I2C functionality that replaces pyftdi with libmpsse.

Improvements
############
Expand Down
8 changes: 7 additions & 1 deletion mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,14 @@ exclude = (?x)
__init__.py
|helper.py
)
|ftdi/
(
__init__.py
|_ftdi_mpsse.py
|_ftdi_py.py
|_libmpsse.py
)
|__init__.py
|ftdi.py
)
)
)
Expand Down
4 changes: 4 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,11 @@ install_requires =

[options.packages.find]
where = src
include_package_data = True

[options.package_data]
# this is only for windows. We can look to add support for other platforms in the future if necessary.
fixate.drivers.ftdi.libs = libmpsse.dll

[options.extras_require]
gui =
Expand Down
2 changes: 1 addition & 1 deletion src/fixate/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@

from fixate.main import run_main_program as run

__version__ = "0.6.4"
__version__ = "0.6.5"
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from fixate.core.common import bits
from fixate.core.exceptions import FixateError, InstrumentNotConnected

from fixate.drivers._ftdi import ftdI2xx
from fixate.drivers.ftdi._ftdi import ftdI2xx

# Definitions
UCHAR = ctypes.c_ubyte
Expand Down Expand Up @@ -448,3 +448,13 @@ def open(ftdi_description="") -> FTDI2xx:
raise InstrumentNotConnected(
f"No valid ftdi found by description '{ftdi_description}'"
)


from fixate.drivers.ftdi._ftdi_mpsse import ( # noqa: I001 - we don't want these imports to be split up
I2CTransferOptions as I2CTransferOptions,
I2CClockRate as I2CClockRate,
I2CChannelConfig as I2CChannelConfig,
MpsseI2C as MpsseI2C,
MpsseI2CSimpleInterface as MpsseI2CSimpleInterface,
open as open_mpsse, # explicitly named to avoid conflict with open() at ftdi level. # noqa: F401
)
File renamed without changes.
Loading
Loading