libftd2xx Release Notes

1.4.27
Add x86_32 support

1.4.26
Add arm64e support for mac

1.4.25
ARMv6l hard-float Support included, using ArchLinux ARM Cross compiler.

1.4.24
Support FT232HP, FT233HP, FT2232HP, FT2233HP, FT4232HP, FT4233HP, FT2232HA and
FT4232HA devices. Correct length of product description for multi-interface
devices. Add builds for Mac OS X using Apple M1 Silicon.

1.4.22
Improve response time to fast back-to-back FT_Read operations when data is
available and buffered. Improve on fix introduced in 1.4.20.

1.4.20
Fix issue with possible timeout occurring when reading fast bursts of data.

1.4.16
Fix issue with occasional data loss on very first packet from device when 
repeatedly opening and closing driver.
Update libusb to 1.0.22.

1.4.10
Implement functionality for FT_StopInTask and FT_RestartInTask.

1.4.8
Fix issue where ports opened within the same process do not show reliably in 
the FT_CreateDeviceInfoList.

1.4.6
Add ARM V8 build.

1.4.4
Reduce time taken to peform an FT_CreateDeviceInfoList.
Small performance gains on FT_read.

1.4.2
Rename constructor and destructor to avoid conflict with MySQL.
Minor updates to ftd2xx.h to match Windows version.

1.4.0
Update libusb from 1.0.18 to 1.0.20.
Remove lib_table method for specifying custom VID+PIDs.

1.3.7
Allow FT_SetVIDPID to be called multiple times (no need to save and restore).
The LibTable method still works but will be removed soon.

1.3.6
Release to web as platform-specific tgz packages.

1.3.5
Add support for ARMv7 uClibC targets.

1.3.3
Fix potential EEPROM corruption when writing to User Area on type 56 and
66 EEPROMs.
Harmonise ftd2xx.h with up-to-date Windows version.
Fix out-of-step versions of ftd2xx.h and WinTypes.h in examples directory.

1.3.1
Add builds for various ARM flavours, including v5, v6 and v7.

1.3.0
Replace libusbx 1.0.12 with libusb 1.0.18 (re-unified with libusbx).

1.2.8
Remove dependence on GLIBC 2.7 again, accidentally re-introduced in 1.2.0 
with the switch to libusbx.
Remove dependence of 64-bit library on GLIBC 2.14.

1.2.2
Fix bug where small numbers of bytes might be lost at low transfer speeds.

1.2.0
Replace libusb (1.0.8) with libusbx (1.0.12).
Fix leaks introduced in 1.1.12: make FT_Close wait for outstanding requests.
Fix bug where FT_GetStatus would silently ignore bytes received after waking 
from sleep: treat time-out like removal.
Fix Mac crash discovered investigating above bug by reducing memory churn.
Fix FT_SetDeadmanTimeout implementation: now matches Windows driver, and uses 
the device's default value, rather than the system-wide hard-coded default.
Fix a few early-exit crashes.

1.1.12
Add basic support (not EEPROM) for X-series chips.
Reduce memory churn during Bulk-In processing.
Avoid potential crashes in FT_Close by not cancelling outstanding transfers: 
note - this causes FT_Close to leak a few bytes in some scenarios.
Improve thread safety to fix potential shutdown crashes.

1.1.10
Add timeout for FT_Read; zero means infinite.
Stop reading Bulk-In data when buffer is full, to avoid data loss.  (Now 
matches Windows driver behaviour.)
Fix a potential crash in FT_Read.
Disable libusb's internal logging as it may be implicated in crashes.
Fix potential crash when using Parallel FIFO (fast) reads.

1.1.0
Improve throughput by using multiple intermediate buffers and asynchronous 
libusb requests.
Use separate threads for requesting and processing Bulk-In data, like the 
Windows driver.
Support use in Android JNI projects.
Add FT_CyclePort function.  As with the Windows driver, this causes a 
re-enumeration of the device.
Fix bug where FT_SetFlowControl had no effect without explicitly setting RTS
or DTR.
Improve unplug detection; better Bulk-In error handling after machine sleep.
Avoid potential crash in static build when freeing a config descriptor 
allocated with insufficient permissions (0660).
Correct Rx and Tx LED definitions for FT232H device EEPROM CBUS options.
Pass Valgrind test: avoid leaking config descriptor, and free the device list
when FT_Open exits early.
Improve read timeouts.
Fix FT_GetBitMode and FT_GetLatencyTimer bugs.

1.0.4
Add support for FT232H, including access to EEPROM (and its User Area).
Fix multi-threaded write bug.
Fix potential hang when accessing the device list.
Disable libusb's use of timerfd, since this requires GLIBC 2.7.
Fix bug opening devices using bad strings.

1.0.3
Fix potential crash in FT_ListDevices.

1.0.2
Remove dependence on GLIBC 2.8.
Resolve issue where attempting to open a higher index interface on a device 
than is available could cause a segmentation violation.

1.0.1
Remove libusb kernel_driver calls as this could allow competing multiple 
D2XX processes to access the same device.
Remove dependence on GLIBC 2.4.

1.0.0
Major upgrade.  
Fix numerous bugs.
Add support for location IDs.
Upgrade libusb to version 1.0.8 - requires udev (present on all 2.6 kernels).

0.4.14
Add enhancement to enable use in SuSe 10.2 default kernel.
Correct FT_GetDeviceInfoList behaviour.

0.4.13
Fix software flow control (strip out flow control characters).
Add FT_SetDeadmanTimeout API call.

0.4.12
Add configuration file option added to perform a usb reset on device open. 
(See Config.txt for further details.) 

0.4.11
Enhance FT_SetUSBParameters - check for invalid parameters.
Add driver version functions.
Alter behaviour of a usb reset - only performed on unopened device (2.6 
kernels only).
Improved multi-threaded access.

0.4.10
Add W32 functions and samples (for the extra event handling).
Add support for FT232R EEPROM.
Fix minor FT_OpenEx bugs.
Robust checking of passed in arguments.  Fail on invalid handle or NULL 
pointers instead of causing Segmentation Faults.

0.4.9
Fix FT_OpenEx bug.  Please report any future bugs, as different
distributions may behave in a different manner.
Fix 100% CPU count when using FT_SetBitMode and not using FT_Read to clear 
internal buffers.

0.4.8
Fix FT_Open bug - related to the detach of ftdi_sio kernel driver.

0.4.7
Fix Read-timeout bug.

0.4.6
Fix bug which prevented programming of FT2232 user area.

0.4.5
Allow detaching of ftdi_sio kernel driver on device access.

0.4.4
Add FT_CreateDeviceInfoList, FT_GetDeviceInfoList, FT_GetDeviceInfoDetail, 
FT_EE_ReadEx and FT_EE_ProgramEx.

0.4.3
Fix bulk-write bug on 2.6 kernels - requires "/proc/sys/kernel/osrelease" file 
to be present.

0.4.2
Fix bug in lib_table functionality. Now works with both static and dynamic 
library versions.

0.4.1
Fix modem event notification bug.

0.4.0
Compile user-space driver with GCC version 3.3.1.
Convert all library code to C, so no C++ extensions required - should help 
with some C++ linkage problems.  PLEASE NOTE: due to the conversion to C there 
is a small chance that you will experience problems; a full recompile of your 
application may solve this.  If not, please contact FTDI Support.  Users of 
the PenScope and Dualscope may experience problems related to this.  Please 
contact FTDI Support for a suitable update.
Fix FT_GetBitMode bug.
Fix FT_Read timeout bug.
Fix FT_GetStatus bug.
Static library available (see static folder on how to compile).
Static linkage to libusb to avoid installation issues.

0.3.0
Add timeouts.
Add EEPROM reading/writitng.
Add event handling (see example on how to use).
Add more examples to help with development.
Add FT_SetVIDPID - see example.
