FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  


Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support

New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - Daniel123

Pages: [1]
Discussion - Software / Re: FT60X Isochronous Endpoint
« on: August 13, 2018, 05:48:55 AM »
yes I see that. But this doesn't answer my question. How exactly do I set up my C# implementation to run isochronous transfer?
Calling ReadPipe unfortunately will only do Bulk transfers...?

Discussion - Software / FT60X Isochronous Endpoint
« on: July 29, 2018, 09:04:59 AM »
Dear all,
is it possible with FT60X to implement isochronous endpoint? I found in the AN_407 D3xx .NET Programmers Guide:

Code: [Select]
/// <summary>
/// USB Pipe types
/// </summary>
public enum FT_PIPE_TYPE {
/// <summary>
/// USB control pipe
/// </summary>
/// <summary>
/// USB isochronous pipe
/// </summary>
/// <summary>
/// USB bulk pipe
/// </summary>
/// <summary>
/// USB interrupt pipe
/// </summary>

How can I declare that a specific endpoint is isochronous type?

Dear FTDI-Community,

sorry but perhaps I'm mistaken: With 1 Channel 1 IN I have only 8k for use? As I have only one direction I cannot use the other 8 K. How then is according to AN_407 D3 XX .NET Programmers Guide on page 67 and 68 with 1 Channel 1 IN iI have burst size of 16 but only 8192 Bytes FIFO ? A burst of 16 with USB 3.0 packet length 1024 bytes exceeds the 8192 Bytes FIFO.

How is this working?

Discussion - Software / FT60X C++ Example not working
« on: July 20, 2018, 08:36:17 AM »
Dear all,
I tried a simple c++ example, which is provided in pieces with the d3xx api programming guide. I want to use ReadPipe for synchronous read of FT60X-Q.
I can compile it with visual studio. However running the exe file gives me back ftStatus = 32, so this means FT_OTHER_ERROR.
Here is the used code snippet:

Code: [Select]

#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>
#include <Windows.h>
#include <iostream>
#include <string>
#include <chrono>
#include <fstream>
#include <thread>

// Include D3XX library
#include "FTD3XXLibrary\FTD3XX.h"
//#pragma comment(lib, "FTD3XX.lib")

int main()
int n;
//UCHAR acBufs[BUFFER_SIZE] = { 0xFF };
UCHAR Buffer[2048] = {};

bool noDevice = false;

FT_STATUS ftStatus;
FT_HANDLE ftHandle;
DWORD numDevs = 0;

ftStatus = FT_CreateDeviceInfoList(&numDevs);
if (!FT_FAILED(ftStatus && numDevs > 0))

ftStatus = FT_GetDeviceInfoList(devInfo, &numDevs);
if (!FT_FAILED(ftStatus))
printf("List of Connected Devices!\n\n");
for (DWORD i = 0; i < numDevs; i++)
printf("Device[%d]\n", i);
printf("\tFlags: 0x%x %s | Type: %d | ID: 0x%08X | ftHandle=0x%x\n",
devInfo[i].Flags & FT_FLAGS_SUPERSPEED ? "[USB 3]" :
devInfo[i].Flags & FT_FLAGS_HISPEED ? "[USB 2]" :
devInfo[i].Flags & FT_FLAGS_OPENED ? "[OPENED]" : "",
printf("\tSerialNumber=%s\n", devInfo[i].SerialNumber);
printf("\tDescription=%s\n", devInfo[i].Description);

noDevice = true;

if (noDevice == false)
ftStatus = FT_Create(devInfo[0].SerialNumber, FT_OPEN_BY_SERIAL_NUMBER, &ftHandle);
std::cout << "Device Created";

ULONG transferBytes = 1 * 1024 * 1024;
int anzahl = 2048;
int anzahl_alt = 0;
int durchgang = 0;
long bytesTotal = 0;
ULONG ulBytesTransferred = 0;
long maxTransfer = 2147483648;
long transfer = 0;
bool isRunning = true;

ftStatus = FT_ReadPipe(ftHandle, 0x82, Buffer, transferBytes, &ulBytesTransferred, NULL);
std::cout << ftStatus;

std::cin >> i;
if (noDevice == false)
ftStatus = FT_Close(ftHandle);

    return 0;

Running the exe gives me first information of connected FT60X-Q, then "Device Created" and after this ftstatus 32 when FT_ReadPipe is called. Can you help me solving this issue.
Do I have to compile with Common Language Runtime common environment or CLI? I now used native c++. I have the same program in C#, there it works without problems.
Thank you.


Thank you for your Reply.

But in single IN configuration FT600 uses just one direction. So it uses the whole 16 kbyte for this one direction?
And for 1 Channel IN + OUT it uses 4k for one direction and 4 k for the others direction? And the residual 8 k just do nothing at all which in this configuration?

I want the highest transfer speed in both directions possible without reconfiguration of FT60X. So I should of course chose the maximum buffer size per direction. So then I have no choice but should use the 1 channel IN + OUT configuration?

Sorry, but the document provided gave me no information about the difference of FT245 and FT600 mode. Neither does the FT60X datasheet. There is only mentioned a difference in signal use with OE_N and RD_N

Dear all,
in technical reference of FT60X it is stated that FIFO stack size is 16 Kbyte.
Then further on there is the statement that when FT60X is configured as 2 channel in multi channel FIFO Bus mode the FIFO buffer is configured as 2 KB * 2 (double buffered) each on RX and TX channel.
So to sum this up we have 2 channel x 2 directions x 2 kb x 2 which is 16 Kbyte.

But what exactky does double buffered mean. In the example do I have now 4 Kbyte per pipe? What are the implications of double buffered?

What exactly is the difference between FT245 and FT600 mode except that in FT600 I have more choice regarding number of endpoints?

Discussion - Hardware / FT601 FPGA Bus Master Example Error
« on: January 22, 2018, 02:27:55 PM »
Hello everyone,
I have FT601 dev board connected to an Altera Cyclone V GX Startet Board and I'm trying to get the loopback example startet. I downloaded the cyclonev_mst_fifo32_1.1.zip file with the FPGA Configuration and uploaded it to the Cyclone board. I switched the switches for loopback FT600 Mode.
Using the FTDI example Loopback program on my host pc and starting a loopback transfer is succesful for the first loopback transfer, but all other loopback transfers are failing. The data comes back but there is no match between the sendout data and the received data.
Switching to the streamer FPGA configuration and trying to stream data with the FTDI streamer example program on the host pc works, but data throughput is relative low (231 Mbyte/s).

Does anyone else experience similar problems? There is another Altera FPGA Image for download on the same page like the one mentioned beforce. In this configuration the loopback works and is much faster then the other configuration but in this example there is no streamer configuration, however it is cleary stated in the txt-File contained in the zip file Altera_Dataloopback_Firmware.zip  :

Altera CycloneVGXC5G master Release List:

1.CycloneVGXC5G_16bit_MC245    ///For data loopback demo, FT600 device, 245 FIFO Mode

2.CycloneVGXC5G_32bit_MC245    ///For data loopback demo, FT601 device, 245 FIFO Mode

3.CycloneVGXC5G_32bit_MC600    ///For data loopback demo, FT601 device, Multi-channel FIFO Mode(600 Mode)


4.CycloneVGXC5G_16bit_MC245_XP    ///For data streamer demo, FT600 device, 245 FIFO Mode

5.CycloneVGXC5G_32bit_MC245_XP    ///For data streamer demo, FT601 device, 245 FIFO Mode

6.CycloneVGXC5G_32bit_MC600_XP    ///For data streamer demo, FT601 device, Multi-channel FIFO Mode(600 Mode)


Revision: 1.1

Revision: 1.11
1.Add in MC245-16bit/32bit data streamer demo
2.Add in MC600-32bit data streamer demo

Configuration 6 6.CycloneVGXC5G_32bit_MC600_XP, 5 and 4 are not inside the zip file. Can anybody tell me where I can download these?
Thank you for any help.

Pages: [1]