-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Hi all, Abstract problem; I'm trying to communicate to an external device using an FTDI usb serial interface. The 'common' communication with this device is using Windows. Obviously I am not running Windows and trying to develop some alternative tools for it. Basic outline. The device should respond 0x0d after the sequence 0x54, 0xE0; in any proper configured Windows C#, Delphi whatever program it just works that way. Thanks to our friends from Seattle we can show this: 3020 0.00000000 MikroKopter-Too IRP_MJ_WRITE VCP0 Length 1: 54 3020 0.00029976 SUCCESS 3021 0.00000000 MikroKopter-Too IRP_MJ_WRITE VCP0 Length 1: E0 3021 0.00006733 SUCCESS 3022 0.00000000 MikroKopter-Too IOCTL_SERIAL_PURGE VCP0 Purge: RXCLEAR 3022 0.00000391 SUCCESS 3015 0.27185690 SUCCESS 3023 0.00000000 MikroKopter-Too IOCTL_SERIAL_WAIT_ON_MASK VCP0 3024 0.00000000 MikroKopter-Too IOCTL_SERIAL_GET_COMMSTATUS VCP0 3024 0.00000251 SUCCESS 3025 0.00000000 MikroKopter-Too IRP_MJ_READ VCP0 Length 1 3025 0.00000419 SUCCESS Length 1: 0D It is not that difficult to write a program using Linux doing exactly the same; using interceptty the following output is gathered. < 0x54 (T) < 0xe0 < 0x56 (V) > 0x30 (0) > 0x33 (3) It is not that the read call is too short or maybe even to slow; there is just no data for any 'command' that is build from two or more bytes. As you can see, a single byte command 'V' is actually picked up and returns data. Reading into the WINE sources I have actually added the RXCLEAR, as tcflush(fd, TCIFLUSH); but still no luck. I have also experimented with FNDELAY to do everything manually so far no luck. It is clear that this device is picky; it is unclear to me why it preferences Microsoft as its only master. Though this problem seems not to be unique; in 2006 someone wrote that sending an exact sequence in Linux results in a different output on Windows after interacting with a device. http://wiki.clug.org.za/wiki/Novatel_Status_Port My main problem is that I need an (open source) Flash utility for this external device, that we have now written in C# on Windows after my hopeless attempts to get this to work under Linux in C. In that respect, pragmatically I have what I need. But since this issue shows that there might be more issues: What can we do to debug this on a more fundamental level? Is there anything that can be measured or investigated to make Linux more like Windows? Serial wise that is ;) Yours Sincerely, Stefan de Konink -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEAREKAAYFAkpimMsACgkQYH1+F2Rqwn37BwCbBOpVRUDoQE/XiMhyEYuDYXK8 n/8An2IEh+EQSzCH/bCqMQ4bKuHfezKy =69Ky -----END PGP SIGNATURE----- -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html