from ctypes import * #http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf #http://docs.python.org/2/library/ctypes.html FT_LIST_NUMBER_ONLY=c_uint(0x80000000) #enum { FT_OK = 0 # FT_INVALID_HANDLE, # FT_DEVICE_NOT_FOUND, # FT_DEVICE_NOT_OPENED, # FT_IO_ERROR, # FT_INSUFFICIENT_RESOURCES, # FT_INVALID_PARAMETER, # FT_INVALID_BAUD_RATE, # FT_DEVICE_NOT_OPENED_FOR_ERASE, # FT_DEVICE_NOT_OPENED_FOR_WRITE, # FT_FAILED_TO_WRITE_DEVICE, # FT_EEPROM_READ_FAILED, # FT_EEPROM_WRITE_FAILED, # FT_EEPROM_ERASE_FAILED, # FT_EEPROM_NOT_PRESENT, # FT_EEPROM_NOT_PROGRAMMED, # FT_INVALID_ARGS, # FT_NOT_SUPPORTED, # FT_OTHER_ERROR, # FT_DEVICE_LIST_NOT_READY, # }; if __name__ == "__main__": ftdll=windll.LoadLibrary("Driver FTDI\\i386\\ftd2xx.dll") print(ftdll) numberofdev=c_uint() dummy=c_uint() handle=c_uint() buf="0x101010101010101010101010101010101010" ftdll.FT_ListDevices(byref(numberofdev),byref(dummy),FT_LIST_NUMBER_ONLY) print(numberofdev) print handle if numberofdev == 0: print "No device available" else: if ftdll.FT_Open(0,byref(handle)) == FT_OK: print handle if ftdll.FT_Write(handle, buf, len(buf), byref(dummy)) == FT_OK: print dummy,"bytes written" else: print "Can't write to device" ftdll.FT_Close(handle) else: print "Can't open device"