3
\$\begingroup\$

I would like to debug the kernel of my nexus 5 and I sent to a fab the design for the debu cable that uses internally a FTDI chip that creates a USB to serial bridge.

Since the chip is a QFN package is a little bit annoying to solder but after some tries I done it; one of the board is seen correctly, indeed from the syslog

kernel: [12174.440550] usb 3-14: new full-speed USB device number 5 using xhci_hcd
kernel: [12174.585763] usb 3-14: New USB device found, idVendor=0403, idProduct=6001
kernel: [12174.585766] usb 3-14: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: [12174.585767] usb 3-14: Product: DCSD USB UART
kernel: [12174.585768] usb 3-14: Manufacturer: FTDI
kernel: [12174.585768] usb 3-14: SerialNumber: A600ASO8
mtp-probe: checking bus 3, device 5: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-14"
mtp-probe: bus: 3, device: 5 was not an MTP device
kernel: [12174.606497] usbcore: registered new interface driver usbserial
kernel: [12174.606569] usbcore: registered new interface driver usbserial_generic
kernel: [12174.606633] usbserial: USB Serial support registered for generic
kernel: [12174.608070] usbcore: registered new interface driver ftdi_sio
kernel: [12174.608128] usbserial: USB Serial support registered for FTDI USB Serial Device
kernel: [12174.608173] ftdi_sio 3-14:1.0: FTDI USB Serial Device converter detected
kernel: [12174.608245] usb 3-14: Detected FT232RL
kernel: [12174.608427] usb 3-14: FTDI USB Serial Device converter now attached to ttyUSB0

Other two boards instead are seen as a DCSD Status LED

kernel: [11309.878562] usb 3-14: new full-speed USB device number 4 using xhci_hcd
kernel: [11310.024048] usb 3-14: New USB device found, idVendor=0403, idProduct=8a88
kernel: [11310.024051] usb 3-14: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: [11310.024052] usb 3-14: Product: DCSD Status LED
kernel: [11310.024053] usb 3-14: Manufacturer: FTDI
kernel: [11310.024054] usb 3-14: SerialNumber: A101FPA7

I googled it but I haven't found anything related to it.

Since two devices return the same exact descriptor I don't think it's an error of transmission but something else, anyone has idea of what can cause this behaviour?

P.S: The chip has been bought from aliexpress so I can't say are original.

EDIT

As indicated by the solution, the chip was reprogrammed.

BTW thanks to the comment of @pjc50 I looked for a way of rewriting the EEPROM: on a Debian system you can install ftdi-eeprom and after that you have to write a configuration file with the desired VID and PID

vendor_id=0x0403        # Vendor ID
product_id=0x6001       # Product ID

and then use the program to reflash the chip

$ sudo ftdi_eeprom --device i:0x0403:0x8a88 --flash-eeprom ftdi.conf

(ftdi.conf is the name of the configuration file described above).

Now I have the device correctly indentified by the kernel.

\$\endgroup\$
  • 1
    \$\begingroup\$ They have different "product ID" which is being interpreted differently. Can you reprogram this ID? \$\endgroup\$ – pjc50 Jun 29 '17 at 10:28
  • \$\begingroup\$ Uh, no? The working one sends idProduct=6001, while the others send idProduct=8a88. Further, the product string DCSD Status LED is sent by the device, and the kernel prints it in verbatim. \$\endgroup\$ – Janka Jun 29 '17 at 10:29
  • \$\begingroup\$ maybe, from the datasheet ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf page 34 and 35 talks about internal EEPROM configuration that can be reprogrammed with an application via USB. BTW I'm more interested about the reason of this different PID :) \$\endgroup\$ – gipi Jun 29 '17 at 10:36
  • 1
    \$\begingroup\$ @gipi: Two obvious reasons: the chip was programmed wrong, or it is fake \$\endgroup\$ – PlasmaHH Jun 29 '17 at 10:36
3
\$\begingroup\$

Looks like the FTDI chip is preprogrammed with a custom PID.

You can reprogram it with FT_PROG.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.