chipKIT® Development Platform

Inspired by Arduino™

Trouble with Arduino IDE v1.6.8

Posted 2016-06-02 16:14:24 by Majenko

Note: This problem was repaired in version 1.6.9 of Arduino IDE

The latest release of Arduino IDE (v1.6.8) has introduced a problem that prevents sketches from running on many chipKIT boards, in addition to some Arduino boards. It appears that any board using an FTDI chip for serial bootloader communications is adversely affected.

A temporary solution is to re-install the previous version, Arduino IDE v1.6.7, which has been well-tested and known to work fine with chipKIT-core selected in the Boards Manager. For more information about installing Arduino IDE and chipKIT-core, refer to the chipKIT-core Wiki page.

When the problem with v1.6.8 occurs, the sketch compiles and downloads from the IDE just fine, but does not appear to execute on the chipKIT board. This is because the serial DTR line between the FTDI chip and MCU is being toggled approximately once per second. DTR is typically tied to the MCU's RESET line, causing the board to reset before the sketch has had a chance to execute.

The reason for toggling DTR is not currently known, but appears to be a consequence of enumeration of the USB bus. One of our team members writes:

On further investigation it is my belief that the Arduino IDE is not explicitly toggling DTR, but rather enumerating the USB bus repeatedly. As a byproduct of USB enumeration the FTDI chip toggles DTR. This may be the reason the Arduino boards are not affected as they have their own USB/Serial chip and it may not have the same effect on USB enumeration. This "side-affect" is specific AND annoying with to FTDI chip. In theory, DTR should only be toggled when commanded to do so on the COMM port; or maybe (but I don't think it should) when the COMM port is opened. Just USB enumeration should not toggle DTR, but the FTDI chip/driver has always done this. I have noticed this for a long time as if you plug in any USB device to any port on the same hub as a chipKIT board, the board gets reset. So for example, if you plug in a memory stick, all chipKIT boards on the hub reset due to the USB enumeration.

At the time of this writing (4/20) a temporary solution is to avoid using Arduino IDE v1.6.8. The previous version (Arduino IDE v1.6.7) works fine with chipKIT-core selected in the Boards Manager. chipKIT team members are looking into this problem and will submit a detailed report to the Arduino IDE bug list at the earliest opportunity.