Show Posts
Pages: [1]
1  Using Arduino / Interfacing w/ Software on the Computer / Re: Arduino doesn't listen to data sent via virtual serial port until Serial Monitor on: January 18, 2013, 03:26:05 am
My problem was that I was not saving the serial port settings in my Perl script. I did indeed find this suggestion in an older thread after doing an exhaustive search (http://arduino.cc/forum/index.php/topic,21051.0.html). It was on the last page of search results, which I don't think I got up to the first time I searched the forums for a solution. Thanks for the suggestion PaulS and kicking my butt into gear to search for longer.

Here is my short Perl test script that works without having to open Serial Monitor/PuTTY:

Code:
#!perl -w

use Win32::SerialPort;
use strict;
use warnings;

$| = 1; #enable autoflush

my $PortName = "COM4";
my $sendData = "o";

### SERIAL PORT SETUP ###
my $PortObj = new Win32::SerialPort($PortName) or die "Can't open $PortName: $^E\n";
$PortObj->baudrate(57600);
$PortObj->parity("none");
$PortObj->databits(8);
$PortObj->stopbits(1);
$PortObj->write_settings(); #very important!

$PortObj->write($sendData);

$PortObj->close() || warn "\nClose failed\n";

Hopefully this will be of use to someone - maybe me in a few years time when I forget what I did.
2  Using Arduino / Interfacing w/ Software on the Computer / Re: Arduino doesn't listen to data sent via virtual serial port until Serial Monitor on: January 17, 2013, 10:02:44 pm
I added a 5 second delay (to be safe), but the Arduino still doesn't seem to listen to my Perl program. I have the auto-reset disabled, so I don't think the bootloader is started again when I open the Serial port.

Any other suggestions for what I could try?
3  Using Arduino / Interfacing w/ Software on the Computer / Re: Arduino doesn't listen to data sent via virtual serial port until Serial Monitor on: January 17, 2013, 08:22:30 pm
Thanks billroy, I'll give your suggestion a go later today and post the results.
4  Using Arduino / Interfacing w/ Software on the Computer / Arduino doesn't listen to data sent via virtual serial port until Serial Monitor on: January 17, 2013, 07:39:20 pm

I have a BotBoarduino (a Duemilanove with a few extras) that I'm trying to communicate with using a Perl script. If I open the Serial Monitor from the Arduino IDE, I can send and receive data without a problem. Following this, my Perl script can communicate without any problems. However, if the Arduino is disconnected then reconnected to the PC, the Arduino doesn't seem to listen to commands sent from my Perl script until Serial Monitor is opened again.

I also tried using PuTTY to communicate with the Arduino, and this works the same way as Serial Monitor from the Arduino IDE - the Arduino doesn't listen to my Perl script until the connection has been opened once.

Here is a sample of the way I'm communicating with the Arduino using Perl:

Code:
#!perl -w

use Win32::SerialPort;

my $PortName = "COM4";
my $sendData = "c";

### SERIAL PORT SETUP ###
my $PortObj = new Win32::SerialPort($PortName) or die "Can't open $PortName: $^E\n";
$PortObj->baudrate(115200);
$PortObj->parity("none");
$PortObj->databits(8);
$PortObj->stopbits(1);
#$PortObj->dtr_active(1);
#$PortObj->rts_active(0);
#$PortObj->handshake("xoff");

$PortObj->lookclear();
$PortObj->write($sendData);

$PortObj->close();

I have commented out the dtr_active, rts_active and handshake bits. I played around with these settings as they were mentioned as possible culprits somewhere.

Also, I have used a 120 Ohm resistor to stop the Arduino from auto-resetting as described at http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection.

Does anyone have any suggestions for the settings needed to get the Arduino to listen to my Perl program without having to open PuTTY/Serial Monitor first?
Pages: [1]