I just switched from an Arduino Deumilanove w/ ATMEGA328P to an Arduino Mega (not the UNO). The Deumilanove worked perfectly by turning LEDs on/off upon receiving letters over its serial interface. I would have my email client turn on two LEDs when I got new emails. After uploading the code to the mega, it worked fine with the serial monitor at 9600 baud. I then exited arduino and tried to send an A to it with the CLI
echo A > /dev/ttyUSB16
and nothing. I even tried it with python using pyserial... nothing! I finally tried the command again with the Arduino serial monitor open (to try to see if the arduino was sending anything back) and IT WORKED!! WTF!? I then exited the serial monitor and instantly the LED I turned on went off (which would have required me to send a lower case a normally). Does the Arduino Mega have some dis-feature that makes it suspend if the arduino serial monitor isn't open?? This never happened with the Deumilanove!!!!!!!!
PS: I use Linux as my one and only OS not windows.
PSS: And no, its not because I have it on /dev/ttyUSB16, thats just a UDEV rule I made to make it so its always on the same serial port no matter what else is plugged in.