Arduino IDE serial terminal works, but no other terminal.

OK, my UNO is using 9600 8N1, and if I use the IDE's included serial terminal, everything works fine. If I use Minicom, set it to 9600 8N1, and try to send data to the UNO, nothing. I can receive data from an Uno sending out data, but I can't send anything to the Uno. The Uno is programmed to take a number and after a bitRead() toggle a pin that does a relay.

What's so special about the IDE's serial terminal that no other terminal program has?

I've used realterm with success. I've even pumped the baud rate upto 1,000,000 and it still doesn't miss a beat. But I'm using a mega on xp so my experience is probably quite irrelevant.

I've tried PuTTY, Reflection and everything works fine. Are you talking about connection via USB, yes?

What's so special about the IDE's serial terminal that no other terminal program has?

Probably nothing. Mistake is somewhere else, I think.

I assume that you do realise that no other terminal program will be able to access the com port if you've already got the serial monitor open?

Minicom works for me. I'm not familiar with it but blindly typing the correct data produced the expected result on my Uno.

...R

OK, I'm trying to use the USB > serial on the UNO, via the /dev/ttyACM0. I already know that you can't have 2 programs compete as the first one open will get dibs. You close the IDE first then try Minicom or other program. Despite being in the dialout group on my Ubuntu 13.04 box I still have to use sudo in order to READ serial output with Minicom. I have one UNO I'm trying to make into a timer and it counts seconds readable on Minicom as described above.

Now, I deployed a second UNO that'll take in a number from 0 to 15 to toggle relays and output the binary and decimal of the number typed - but only through the IDE's own serial debug feature. If I try that UNO with any other terminal program I can type in a number and the cursor keeps blinking in the same upper left corner and relays don't toggle according to the sent nybble in decimal.

Of course, if I plug in both, the first one (the one with the relays) is the /dev/ttyACM0 and the second one is a /dev/ttyACM1. With both, I can select between the two with the IDE to align a sketch or use the serial feature.

In the Arduino Playground section of this site has a command line article with this loooong command (a ton of "switches") to set the port. I tried it and poof the UNO with the relays resets (of course) but won't take nybble commands over the serial. I'd like to write shell scripts to control relays to do lights like Clark Griswold. But, like the Minicom problem, it's a no dice.

Sorry, but I can't see what your problem might be - probably because I'm not having a problem on this Linux netbook.

Can you write a minimal sketch to illustrate the probem and post the code here so I can exactly what you are doing.

...R

OK, I did succeed at getting an UNO to work with a Linux shell script. First I have to initialize serial port by firing up the IDE and dishing out a command to the UNO. Then, I can stop the IDE then use the Linux shell with a command like:

echo 12 >/dev/ttyACM0

with the 12 being a decimal for which relays I want on. (in this case, the ones activated by a "4" and an "8" while the "1" and "2" relays remain off.) For a Clark Griswold Machine, it's cool as anything. Now I get to write shell scripts to make my own control software. If Javascript has something like a C-like system("fill in command here"); then you can use a web browser as a GUI interface! This will be a fun Christmas. Too bad I'm an apartment dweller.

pentius:
Now I get to write shell scripts to make my own control software. If Javascript has something like a C-like system("fill in command here"); then you can use a web browser as a GUI interface! This will be a fun Christmas. Too bad I'm an apartment dweller.

It should not be necessary to open the Arduino IDE first.

Why not just write a regular PC program rather than use shell scripts. See this demo for example.

You could also write a server program on your PC that takes inputs from a browser and passes them on to an Arduino. It's easy to do that with Python.

Or you could write a GUI program for your PC - this is a simple Python GUI demo

...R

Mine works fine but making a robust solution isn't easy, trust me. If you are just prototyping something simple then scripts may do the job. Anything more critical and you really need a multi threaded solution to deal with listening for input, sending out data, processing incoming data and the user interface.

http://forum.arduino.cc/index.php?topic=185740.0

In order to get the shell scripts to work after the initialising, I do need to have the cap. That is, the cap to disable the reset. You can use the 10mF cap or a 4.7 mF cap. You would normally use the cap on an UNO to allow the programming of the other chip with "Arduino as ISP" thingy. I have a nice stash of UNO copycat cards and Seeeduino relay shields plus I know how to do solid state relays. One fun Christmas with RGB LEDs, coming up! (plus I get a little color...)

How I got the Clark Griswold Machine to work was to add the anti-reset cap like you do for an Arduino as ISP. You initialize the connection first (I use the IDE serial window) then open the bash shell. Then, I can merrily code light show shell scripts. Note that a 4.7uF cap works for this as good as the 10uF cap.
By the way, I gave up on the Leonardos.

pentius:
How I got the Clark Griswold Machine to work was to add the anti-reset cap like you do for an Arduino as ISP. You initialize the connection first (I use the IDE serial window) then open the bash shell. Then, I can merrily code light show shell scripts. Note that a 4.7uF cap works for this as good as the 10uF cap.
By the way, I gave up on the Leonardos.

This reminds me of Mr Bean (Rowan Atkinson) trying to steer the car with string attached to the steering wheel while sitting on the roof.

...R

There was always Rube Goldberg. Rube Goldberg would probably code the light show in QBASIC then use an obscure QBASIC to C converter (such a thing exists, and I have it on my Linux box) to write a complete GUI from scratch (instead of using a web browser as a pre-existing GUI) then hook a Leonardo to do the mouse on the GUI and the Leonardo is set off by, yep, a mechanical Rube Goldberg Machine.
Imagine Rube Goldberg at a tech startup...

pentius:
There was always Rube Goldberg.

The UK equivalent was Heath Robinson.

But I always associate his cartoons with the days of mechanical devices - long before computers.

...R

Rube Goldberg made cartoons in the 1800s, way before digitalness. (other than possibly relay logic like the Census machines)
Oh, for those interested in using shell scripts, you can use this shell command to initialize a serial connection:
stty 9600 cs8 -parenb crtscts -echo -F /dev/ttyACM0
Replace the 0 with the correct number as needed. That removes some Rube Goldberg-ness.