From ff5fe878641c555a44dfcde9c12f625c4c5724f5 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Wed, 24 Aug 2011 17:12:28 -0400 Subject: [PATCH] changed auto-reset method for upload: now triggered by opening port at 1200 bps --- hardware/arduino/boards.txt | 2 +- hardware/arduino/cores/arduino/CDC.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hardware/arduino/boards.txt b/hardware/arduino/boards.txt index 4c847a9e6..bb5eaadcf 100644 --- a/hardware/arduino/boards.txt +++ b/hardware/arduino/boards.txt @@ -3,7 +3,7 @@ leonardo.name=Arduino Leonardo leonardo.upload.protocol=stk500 leonardo.upload.maximum_size=30720 -leonardo.upload.speed=115200 +leonardo.upload.speed=1200 leonardo.bootloader.low_fuses=0xde leonardo.bootloader.high_fuses=0xd8 leonardo.bootloader.extended_fuses=0xf3 diff --git a/hardware/arduino/cores/arduino/CDC.cpp b/hardware/arduino/cores/arduino/CDC.cpp index b0e5e891f..7d9d68225 100644 --- a/hardware/arduino/cores/arduino/CDC.cpp +++ b/hardware/arduino/cores/arduino/CDC.cpp @@ -94,15 +94,15 @@ bool WEAK CDC_Setup(Setup& setup) if (CDC_SET_LINE_CODING == r) { USB_RecvControl((void*)&_usbLineInfo,7); + if (1200 == _usbLineInfo.dwDTERate) // auto-reset is triggered when avrdude opens the port at 1200 bps + Reboot(); + return true; } if (CDC_SET_CONTROL_LINE_STATE == r) { _usbLineInfo.lineState = setup.wValueL; -// if (_usbLineInfo.dwDTERate == 115200 && _usbLineInfo.lineState == 0) // Emulate DTR reset hack - if (_usbLineInfo.lineState == 0) - Reboot(); return true; } }