diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index be1879269595f0193ad4db42a7bc22d5ae04a417..cf0b23446d0a4f20468505f4b304691a756f3c72 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -27,7 +27,7 @@ ELSE(FTDI_INCLUDE_DIRS AND FTDI_LIBRARIES)
   IF(FTDI_INCLUDE_DIRS AND FTDI_LIBRARIES)
     SET(BUILD_FTDI TRUE)
     SET(INSTALL_FTDI TRUE)
-    SET(FTDI_VER 1.3.6)
+    SET(FTDI_VER 1.4.8)
     MESSAGE(STATUS "Use local ftdi files")
   ELSE(FTDI_INCLUDE_DIRS AND FTDI_LIBRARIES)
     MESSAGE(STATUS "FTDI library won't be build. Impossible to locate the necessary files")     
diff --git a/tools/libftd2/ReadMe.txt b/tools/libftd2/ReadMe.txt
index beb2f0586d1d3e806d44015ff31eb20f2898987a..9360df97d4d250a31eea4286af8867395516fc42 100644
--- a/tools/libftd2/ReadMe.txt
+++ b/tools/libftd2/ReadMe.txt
@@ -24,7 +24,7 @@ libusb is included in this distribution.
 Installing the D2XX shared library and static library.
 ------------------------------------------------------
 
-1.  tar xfvz libftd2xx-i386-1.3.6.tgz
+1.  tar xfvz libftd2xx-i386-1.4.8.tgz
 
 This unpacks the archive, creating the following directory structure:
 
@@ -32,7 +32,7 @@ This unpacks the archive, creating the following directory structure:
         libftd2xx        (re-linkable objects)
         libusb           (re-linkable objects)
         libftd2xx.a      (static library)
-        libftd2xx.so.1.3.6   (dynamic library)
+        libftd2xx.so.1.4.8   (dynamic library)
         libftd2xx.txt    (platform-specific information)
     examples
     libusb               (source code)
@@ -52,13 +52,13 @@ already root, then step 3 (and step 7) is not necessary.
 
 Copies the libraries to a central location.
 
-5.  chmod 0755 /usr/local/lib/libftd2xx.so.1.3.6
+5.  chmod 0755 /usr/local/lib/libftd2xx.so.1.4.8
 
 Allows non-root access to the shared object.
 
-6.  ln -sf /usr/local/lib/libftd2xx.so.1.3.6 /usr/local/lib/libftd2xx.so
+6.  ln -sf /usr/local/lib/libftd2xx.so.1.4.8 /usr/local/lib/libftd2xx.so
 
-Creates a symbolic link to the 1.3.6 version of the shared object.
+Creates a symbolic link to the 1.4.8 version of the shared object.
 
 7.  exit
 
diff --git a/tools/libftd2/WinTypes.h b/tools/libftd2/WinTypes.h
index 5114b955578430e1e250e6508ab342ce11982429..88e500e1a79b5c6f9dcc7180912f7eeddb316108 100755
--- a/tools/libftd2/WinTypes.h
+++ b/tools/libftd2/WinTypes.h
@@ -9,6 +9,7 @@ typedef unsigned short            USHORT;
 typedef unsigned short            SHORT;
 typedef unsigned char            UCHAR;
 typedef unsigned short            WORD;
+typedef unsigned short            WCHAR;
 typedef unsigned char            BYTE;
 typedef BYTE                    *LPBYTE;
 typedef unsigned int            BOOL;
@@ -32,13 +33,19 @@ typedef ULONG                    *PULONG;
 typedef LONG                    *LPLONG;
 typedef PVOID                    LPVOID;
 typedef void                    VOID;
+typedef USHORT                  *PUSHORT;
 typedef unsigned long long int    ULONGLONG;
 
 typedef struct _OVERLAPPED {
     DWORD Internal;
     DWORD InternalHigh;
-    DWORD Offset;
-    DWORD OffsetHigh;
+    union {
+        struct{
+            DWORD Offset;
+            DWORD OffsetHigh;
+        };
+        PVOID  Pointer;
+    };
     HANDLE hEvent;
 } OVERLAPPED, *LPOVERLAPPED;
 
@@ -61,13 +68,24 @@ typedef struct _EVENT_HANDLE
 
 typedef struct timeval SYSTEMTIME;
 typedef struct timeval FILETIME;
+
+// WaitForSingleObject return values.
+#define WAIT_ABANDONED      0x00000080L
+#define WAIT_OBJECT_0       0x00000000L
+#define WAIT_TIMEOUT        0x00000102L
+#define WAIT_FAILED         0xFFFFFFFF
+// Special value for WaitForSingleObject dwMilliseconds parameter
+#define INFINITE            0xFFFFFFFF  // Infinite timeout
+
 #ifndef TRUE
 #define TRUE    1
 #endif
 #ifndef FALSE
 #define FALSE    0
 #endif
-
+#ifndef CONST
+#define CONST const
+#endif
 //
 // Modem Status Flags
 //
diff --git a/tools/libftd2/build/i386/libftd2xx.so b/tools/libftd2/build/i386/libftd2xx.so
index 0a78f94d732e3c98968766e205a00050f0a17d8d..e2386ef3164a8c6d7e14503c179191ffb1171635 120000
--- a/tools/libftd2/build/i386/libftd2xx.so
+++ b/tools/libftd2/build/i386/libftd2xx.so
@@ -1 +1 @@
-libftd2xx.so.1.3.6
\ No newline at end of file
+libftd2xx.so.1.4.8
\ No newline at end of file
diff --git a/tools/libftd2/build/i386/libftd2xx.so.1.3.6 b/tools/libftd2/build/i386/libftd2xx.so.1.3.6
deleted file mode 100755
index ba8c996d234d8712aa57f58605436b7dc5ff3e3d..0000000000000000000000000000000000000000
Binary files a/tools/libftd2/build/i386/libftd2xx.so.1.3.6 and /dev/null differ
diff --git a/tools/libftd2/build/x86_64/libftd2xx.so b/tools/libftd2/build/x86_64/libftd2xx.so
index 0a78f94d732e3c98968766e205a00050f0a17d8d..e2386ef3164a8c6d7e14503c179191ffb1171635 120000
--- a/tools/libftd2/build/x86_64/libftd2xx.so
+++ b/tools/libftd2/build/x86_64/libftd2xx.so
@@ -1 +1 @@
-libftd2xx.so.1.3.6
\ No newline at end of file
+libftd2xx.so.1.4.8
\ No newline at end of file
diff --git a/tools/libftd2/build/x86_64/libftd2xx.so.1.3.6 b/tools/libftd2/build/x86_64/libftd2xx.so.1.3.6
deleted file mode 100755
index ecd25dbe29c05de403883419da0036aad679753f..0000000000000000000000000000000000000000
Binary files a/tools/libftd2/build/x86_64/libftd2xx.so.1.3.6 and /dev/null differ
diff --git a/tools/libftd2/ftd2xx.h b/tools/libftd2/ftd2xx.h
index e9b7fc55222129506765f97ca5a1c6c660f51225..e5bbb46820c1a0d8fa1ef68ed64ac3c02b97fb6c 100755
--- a/tools/libftd2/ftd2xx.h
+++ b/tools/libftd2/ftd2xx.h
@@ -58,6 +58,10 @@ kernel & user mode
 #elif defined(FTD2XX_STATIC)
 // Avoid decorations when linking statically to D2XX.
 #define FTD2XX_API
+// Static D2XX depends on these Windows libs:
+#pragma comment(lib, "setupapi.lib")
+#pragma comment(lib, "advapi32.lib")
+#pragma comment(lib, "user32.lib")
 #else
 #define FTD2XX_API __declspec(dllimport)
 #endif
@@ -311,6 +315,18 @@ extern "C" {
 #endif
 
 
+#ifdef FTD2XX_STATIC
+    FTD2XX_API
+        FT_STATUS WINAPI FT_Initialise(
+        void
+        );
+
+    FTD2XX_API
+        void WINAPI FT_Finalise(
+        void
+        );
+#endif // FTD2XX_STATIC
+
 	FTD2XX_API
 		FT_STATUS WINAPI FT_Open(
 		int deviceNumber,
@@ -1162,7 +1178,7 @@ extern "C" {
 		WORD XoffLim;				/* Transmit X-OFF threshold				*/
 		BYTE ByteSize;				/* Number of bits/byte, 4-8				*/
 		BYTE Parity;				/* 0-4=None,Odd,Even,Mark,Space			*/
-		BYTE StopBits;				/* 0,1,2 = 1, 1.5, 2					*/
+		BYTE StopBits;				/* FT_STOP_BITS_1 or FT_STOP_BITS_2		*/
 		char XonChar;				/* Tx and Rx X-ON character				*/
 		char XoffChar;				/* Tx and Rx X-OFF character			*/
 		char ErrorChar;				/* Error replacement char				*/