From 351d6a6a5b030802c4dd00f8b0b18cca1ca8b3f0 Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Mon, 21 Jan 2013 11:30:32 +0100 Subject: arduino-makefiles --- arduinoAnalogStomp/bin/ard-reset-arduino | 115 +++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100755 arduinoAnalogStomp/bin/ard-reset-arduino (limited to 'arduinoAnalogStomp/bin/ard-reset-arduino') diff --git a/arduinoAnalogStomp/bin/ard-reset-arduino b/arduinoAnalogStomp/bin/ard-reset-arduino new file mode 100755 index 0000000..22c7109 --- /dev/null +++ b/arduinoAnalogStomp/bin/ard-reset-arduino @@ -0,0 +1,115 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use Device::SerialPort; +use Getopt::Long; +use Pod::Usage; + +my %Opt = + ( + period => 0.1, + ); + +GetOptions(\%Opt, + "period=f", # width of reset pulse in seconds + "verbose!", + "help!", + "info!", + ); + +if ($Opt{help} || $Opt{info}) + { + usage(); + } + +die "No Arduinos found!\n" + unless @ARGV; + +foreach my $dev (@ARGV) + { + my $p = Device::SerialPort->new($dev) + or die "Unable to open $dev: $!\n"; + + my $dt = $Opt{period}; + + print STDERR "Setting DTR high for ${dt}s on $dev\n" + if $Opt{verbose}; + + die "Invalid pulse width ($dt), " + unless $dt > 0.0; + + $p->pulse_dtr_on($dt * 1000.0); + } + +## here endeth the main + +sub usage + { + pod2usage(-verbose => 2); + } + +__END__ + +=head1 NAME + +ard-reset-arduino - Reset an Arduino + +=head1 USAGE + + $ ard-reset-arduino /dev/cu.usb* + + $ ard-reset-arduino --verbose --period=0.1 /dev/cu.usb* + +=head1 DESCRIPTION + +To reset (most) Arduinos, it's enough to just pulse the DTR line. + +You can do that from the shell with stty, but there's an interesting +diversity of command flags. This little program gives a uniform interface +at the cost of requiring C. + +=head1 OPTIONS + +=over + +=item --verbose + +Watch what's going on on STDERR. + +=item --period=0.25 + +Specify the DTR pulse width in seconds. + +=back + +=head1 BUGS AND LIMITATIONS + +There are no known bugs in this application. + +Please report problems to the author. + +Patches are welcome. + +=head1 AUTHOR + +Martin Oldfield, ex-atelier@mjo.tc + +Thanks to Daniele Vergini who suggested this to me, and supplied +a command line version. + +=head1 LICENCE AND COPYRIGHT + +Copyright (c) 2012, Martin Oldfield. All rights reserved. + +This file is free software; you can redistribute it and/or modify it +under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + -- cgit v1.2.1