Many of you are familiar with our partner company ROBOTIS - they manufacture the DYNAMIXEL servos that we use in many of our kits. They also manufacture a variety of devices to interface with DYNAMIXEL servos. Recently we were notified about a problem with 3 of ROBOTIS's products. These products are:
- CM-530 (The BIOLOD PREMIUM Robot Kit , the BIOLOID STEM Standard Robot Kit, and the BIOLOID GP all come with the CM-530.
These three devices, when used with new FTDI drivers, will not communicate properly with the ROBOPLUS software suite. The USB2DYNAMIXEL will not be able to successfully scan for servos (either on the TTL or the RS-485 bus), the LN-101 will not send any information to the CM-700 board, and the CM-530 can not be accessed through ROBOPLUS Manage, Task or Motion. ROBOTIS has posted a fix on their website.
All three of these products use the FTDI232RL chip to facilitate communication between the USB on your computer and the rest of the circuity on the device. When any of these devices are connected to your computer, FTDI Drivers create a virtual serial port on your computer. Your computer can than pipe data from various programs, through the FTDI chip, to your DYNAMIXEL servos.
In August of 2013 FTDI Ltd. released an update to their drivers (2.08.30). This driver offered a variety of specific bug fixes. However this release also had the caused some existing FTDI chips to stop working. The FTDI chips would still register as a virtual serial port, but they would be unable to properly communicate. Computers running an older version of the driver (2.08.28) still work with the devices.
We are very familiar with this problem because we had we had it happen to us with an early run of out Geekduino Boards. We received the boards at the end of July, and everything seemed to be fine with our computers running the 2.08.28 FTDI driver. But in the first week of August, we tried running some tests with a clean PC installation. We loaded the brand new 2.08.30 driver, and while we could see the device as a serial port, we could not get the Arduino IDE to communicate with the Geekduino (the IDE would just send 'out of sync' errors). We hoped it was a fluke, but board after board had the same behavior. We eventually reached the conclusion that the FTDI chips on our Geekduinos were counterfeit and that the 2.08.30 driver had some measure to block the chip. Tests with known legitimate FTDI chips showed no problem with 2.08.30. After talking to our manufacturer, we had all of the boards repaired with new, legitimate FTDI232RL chips.
Because of our experience with this kind of problem, we were very interested when ROBOTIS told us they had a fix. We were sent this link, with a new FTDI driver (2.08.31) and an installation guide. We could find no reference to the 2.08.31 driver on FTDI's site or on the Internet.
Eventually we unzipped the new driver supplied by ROBOTIS (2.08.31) and found something odd - the majority of the files had a timestamp of January 2013 (the same time that the 2.08.28 drivers were released). Further investigation shows that all of the driver binary files from the ROBOTIS 2.08.31 release are the same as from the official 2.08.28. Only two files differ
Both these files have any reference to 2.08.28 stripped out, replaced with 2.08.31.
If you'd like to see this for yourself, compare the two file contents using a program like Winmerge or Filemerge. The fact that all of the binary files are identical from 2.08.28 to 2.08.31 tells us that the 2.08.31 drivers from ROBOTIS are repackaged 2.08.28 drivers.
From what we understand, re-labeling the drivers 'tricks' windows into thinking the driver is newer, and installs it without error - rolling back the driver normally from 2.08.30 to 2.08.28 can be problematic. Also, if windows was to get new drivers automatically, it might try to re-install 2.08.30. Having 2.08.31 should hopefully circumvent that.
So the big question is, "Is there any harm in using old drivers?". For most users, using the 2.08.31/2.08.28 drivers won't cause any trouble. The drivers are still legitimate FTDI drivers, they are just labeled in a misleading manner. Prior to the 2.08.30 update, ROBOTIS and Arduino users saw ver few problems. If you're running the 2.08.31/2.08.28 drivers, then you will not get the bug fixes associated with the 2.08.30 release - but these fixes will not affect most users. There is also the possibility that FTDI will release a new version of the FTDI drivers, at which point the 2.08.31 drivers may get overwritten by the newer drivers - but we'll have to see what ROBOTIS does if that happens.
There are two classes of people who might have problems because of this setup
- Hardware Developers working with FTDI232RL based devices
- Advanced Users who need the 2.08.30bug fixes
These people may need to juggle drivers, using the newest drivers with all other devices and old drivers for ROBOTIS products.
We currently have no information about how many individual units might be affected by this problem, or how long it might persist, but we plan on keeping you updated.
If your interested in learning more about counterfeit chips, check out Sparkfun's great write-up about some counterfeit ATMEGA328s they received. They went to a lot of work to learn more about the nature of their chips