diff options
| author | Calvin Li <calvin.li.lt@gmail.com> | 2015-04-03 22:37:51 -0700 |
|---|---|---|
| committer | Sudar <sudar@sudarmuthu.com> | 2015-04-04 16:08:23 +0530 |
| commit | bc2a9a9798879694f6575c0d003cc7867a3d9e66 (patch) | |
| tree | 667b230657864ffc0e9656af44d284ebcb442d08 /bin/ard-reset-arduino | |
| parent | 3dce457c6df6bc7b3c3ae9d357d7f3b802a297a0 (diff) | |
Fix reset for leonardo
I found that the previous reset code did not work for Leonardo or Micro, nor did any reset code anywhere on the internet.
An examination of the Arduino IDE source code (and the JNI code behind its serial implementation) shows that it holds RTS high and DTR low when doing the 1200 baud open/close. And it turns out that's exactly what's needed!
Diffstat (limited to 'bin/ard-reset-arduino')
| -rwxr-xr-x | bin/ard-reset-arduino | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/bin/ard-reset-arduino b/bin/ard-reset-arduino index ed22a63..3e43486 100755 --- a/bin/ard-reset-arduino +++ b/bin/ard-reset-arduino @@ -17,10 +17,10 @@ if args.caterina: if args.verbose: print('Forcing reset using 1200bps open/close on port %s' % args.port[0]) ser = serial.Serial(args.port[0], 57600) ser.close() - ser.open() - ser.close() ser.setBaudrate(1200) ser.open() + ser.setRTS(True) # RTS line needs to be held high and DTR low + ser.setDTR(False) # (see Arduino IDE source code) ser.close() sleep(1) |
