arduino to sim800 weird connectivity issue

Hey all,
So I have the weirdest problem I have ever encountered. I have sim 800 connected to atmega328 on a custom made PCB (ordered from china). the atmega sits on an atmega holder which is soldered to the pcb.

I run my code (worked perfect in the previous PCB iteration) and the modem doesn’t respond. BUT, if I heat the RX pin of the atmega with a soldering iron (so the solder is liquid) the modem starts responding perfectly.

after I remove the soldering iron the communication still works for a couple of minutes, after some time (5-30 minutes) the communication is lost again, until I heat it up again.

there is always a “short” when I test the connection between the atmega itself and the sim800, as it should be.

what is going on?

thanks in advance!

what is going on?

No schematic == no idea

Its working perfectly after heating.. so you can guess that the schematic is correct.. but anyway, I included a schematics

What is that component connected to dtr?

Its working perfectly after heating.. so you can guess that the schematic is correct..

You can make no such assumption, you have no common ground between the two units.

I updated the schematics to include voltages

Grumpy_Mike:
What is that component connected to dtr?
You can make no such assumption, you have no common ground between the two units.

The device is a mosfet, 2N7000

The device is a mosfet, 2N7000

Well that is not the symbol, see the data sheet for the real symbol, one that everyone understands.

Now why is their not a pull up resistor in the DTR line?

Also 3V3 is hardly enough to even begin to turn on that FET.

Why are you putting this signal through a FET anyway?

Are you serious? this is the symbol for mosfet, everyone understands that symbol. so i didn't draw the bulk. why are you picking on irrelevant things?

the sim800 have an internal pullup for the DTR line.

it is hardly enough but it does the job, the line goes to 0

I put this signal through a FET because connecting it directly to is not enough to get it to 0v.

can you please comment on this: "if I heat the RX pin of the atmega with a soldering iron (so the solder is liquid) the modem starts responding perfectly."

Are you serious? this is the symbol for mosfet, everyone understands that symbol

Yes deadly serious. I don't understand that symbol as an FET, I have never seen it in 50 years of electronics.

can you please comment on this: "if I heat the RX pin of the atmega with a soldering iron (so the solder is liquid) the modem starts responding perfectly."

It is probably bollocks and a bit of a red herring. If it is genuine then some how your atmega chip is buggered otherwise it is something you are missing, like a floating ground where application of a grounded soldering iron for some time causes the grounds to float down so that it works.

I put this signal through a FET because connecting it directly to is not enough to get it to 0v.

Now that I find hard to believe. The Arduino can sink up to 40mA which is a hell of a lot and implies a pull up resistor smaller than 75R. This could be a pointer to where things are wrong. Basically I think that it is not wired how you think and that includes a wire not making contact. Again that could point to a grounding problem.

There is not floating ground, I triple checked it.

I will try to ground the DTR pin, maybe you are right and the fet is giving the problems.

I will update as soon as I see results

I shorted the DTR to ground, and it seems that so far it is OK. I will try to let it run for a few days and if it will stay like this I will conclude two things:
the device variation (Vt in particular) is responsible why the previous pcb worked perfectly and this doesn't.

The heating of the pin somehow made the DTR pin get higher voltage and opened the mosfet all the way.

So it didn't help, I include the pcb design

only the atmega, the sim800, and the capacitors listed on the image are installed on the pcb.

the sim800:
url for the sim800: sim800 url

and again touching with a soldering iron fixes all communication issue for a while.

It appears that there was some very small residue of flux on the pins, after cleaning with IPA all errors stopped, the mosfet is working great and everything is perfect.

thanks for the advice.