RX/TX problem between a Mega and Duemilanove

I have an arduino mega 1280 that I use as a master device. I have a duemilanove as a slave device. I want the slave to read the master’s output. I have grounds tied, both arduinos have their own dedicated power source, and I have the Mega’s TX pin going straight to the nove’s RX pin. The problem is the nove won’t read any data from the Mega.

I tried using softwareserial, but that dosen’t work either. The weird thing about that library is it forces a servo to spaz out whenever it’s receiving data from the mega, yet it isn’t interpreting the data.

What I find the weirdest is if I tell the nove to send data to the mega, it works just fine. If I use USB, everything works fine. I’ve been trying to figure this out for nearly 4 hours and it makes no sense.

So, you have an annoying problem. You've beat all around the bush, but not told us what your problem is. You haven't posted any code. You haven't said how the Arduinos are powered when not using USB. You haven't asked any questions.

Was there a reason you stopped by?

Hmm so I didn't ask a question, I'm not sure how I missed that, but I am tired (I just fixed the main post). Sorry about that, anyways:

Why is the nove not able to recieve data from the mega? Code is not the problem, because as stated before, reversing the roles of the nove and mega works just fine and everything works great over USB. The nove is powered by USB, the mega by 5v of a computer PSU. Before you say that isn't enough, I tried 12v too which didn't make a difference, it just made the regulator hot.

So nobody knows why I can't send serial data between these 2 arduinos? I tried using transistors but that didn't help. I do get the impression the Mega is a little more sensitive when it comes to reading data than the nove.

There is no reason for this not to work other than maybe human coding error, 9/10 times the answer is the simplest and it's usually coding

If I send the data directly by USB to either arduino, they operate exactly as they should. The baud rate is 38400 if that somehow makes a difference - 9600 is too slow. As a test, I told the nove to repeat any data it received and it either does nothing at all or sends 1 random character. I can also use a separate USB FTDI adapter that works perfectly fine.

The reason I think there's something electrically wrong is because of the softwareserial glitch. I have no clue why it would just go berzerk like that in ways that code isn't involved.

So I discovered the problems. With the UART pins, I think the problem is because I'm using USB to power the nove, but the UART chips seem to shut down if they're in use by USB. As for softwareserial, I tried doing a brand new really simple code for and it seemed to have given me non-gibberish values. On top of that, the servo also didn't freak out. However, as soon as I added the code to initialize the servo, THEN it started to spaz. So apparently I can't do both servo and softwareserial at the same time, at least not at 38400bps.

Any other suggestions? Or should I just switch to i2c?

Personally i dont like software serial and as one of your boards is a mega theres no need to use it, it has 4 uarts, I have had problems with some old atx power supplies in computers shutting down the usb if there is a surge on the port

Actually the mega is only using 1 serial port, the nove is what needs 2 unfortunately. I’d like to reverse it but the mega needs the other extra resources.