Software serial to externally powered device - no good?

I haven't checked the power supply with my multimeter yet, but am curious as to the following:

I have a GPS in a bread board, connected via software serial to an Uno. I have a Sparkfun BB power supply and can power the GPS from that power supply. Rx and Tx beween GPS and Uno are switched, as required.

If I power the GPS by the power supply, at 3V3 or 5V, the readings from the GPS are garbage. If I power the GPS from 3V3 or 5V from the Uno, the readings from the GPS are pristine, and the GPS locks my location, indoors, as verified via a google maps lookup.

When I come to use this GPS in a circuit, it will be powered by the same source as the uC I intend to use, with common ground, so there should be no issues.

What I want to understand is why the external power supply is causing this issue. Is it because the serial signal on the Uno side relies on signal edges from a ground (reference) that is not shared by the GPS unit?

I am not really sure what to search for to find resources to learn, so pointers would be appreciated.

Is it because the serial signal on the Uno side relies on signal edges from a ground (reference) that is not shared by the GPS unit?

All Gnds must be connected. If not, you will not see good results.

CrossRoads:

Is it because the serial signal on the Uno side relies on signal edges from a ground (reference) that is not shared by the GPS unit?

All Gnds must be connected. If not, you will not see good results.

I have read this often, and when the BB supply didn't work, it was the first thing I tried.

But what I want to know is: why is this the case? What is causing this to happen? Or not happen, in the case of the external supply?

If the grounds are not connected, there is no common reference level.
Without that common reference, how would the GPS in this case know that the signals were going high & low?

aarondc: Is it because the serial signal on the Uno side relies on signal edges from a ground (reference) that is not shared by the GPS unit?

CrossRoads: If the grounds are not connected, there is no common reference level. Without that common reference, how would the GPS in this case know that the signals were going high & low?

Is that a yes?

My naive understanding says Ground = 0V and 5V = well ... 5V.

Anywhere.

So if ground is 0, then it should be 0 volts anywhere. Regardless of the circuit's power supply.

But clearly it's not.

Just trying to wrap my head around why.

Say you have 2 batteries in series, each is 3V. Battery0+ connects to Battery1-.

Now you put your volmeter black wire on Battery0- and your voltmeter red wire on Battery0+; you see 3V. You move the voltmeter red wire to Battery1+; you see 6V. You move the voltmeter blackwire to Battery1-; you see 3V again. From the meter's perspective, Ground is its black wire - from each battery's perspective, its - terminal is Gnd. From your perspective, Battery0- is the System Ground.

Now - break the connection from Battery0+ to Battery1-. The voltmeter is still connected, red to Battery1+ and black to Battery1-; you see 3V. Now, move the black wire to Battery0-; what do you see? 6V? 3V? Answer will be some random small value, because the meter now has no common reference point. Same the seperately powered Arduino and GPS. The Arduino, or GPS, has a wire coming in that effectively has no connection on the other end, so it cannot see the signal as high & low with respect to its own Gnd. You need to make a System Ground connection so the signal is referenced to the same thing on both ends.

aarondc:
My naive understanding says Ground = 0V and 5V = well … 5V.

Anywhere.

So if ground is 0, then it should be 0 volts anywhere. Regardless of the circuit’s power supply.

Say you have two cardboard boxes. Each has a bottom. You could call the bottom “ground” and inside the box you can make a mark, say 5 centimeters high.

The two bottoms could easily be different with respect to each other. One might be on the floor and one on a cupboard. Just calling them “ground” or “bottom” doesn’t change that.

In order for the 5 centimeter marks to line up, the bottoms have to line up. So you have to have both boxes sitting at the same height. In other word, “connect the grounds”.

So essentially ground and 5V are not absolute measurements, but relative measurements. V is a potential difference.

There you go.

Thanks. I think this is something I have never really wrapped my head around until now.

[quote author=Nick Gammon link=topic=177092.msg1314341#msg1314341 date=1373665594] Say you have two cardboard boxes. Each has a bottom. You could call the bottom "ground" and inside the box you can make a mark, say 5 centimeters high.

The two bottoms could easily be different with respect to each other. One might be on the floor and one on a cupboard. Just calling them "ground" or "bottom" doesn't change that.

In order for the 5 centimeter marks to line up, the bottoms have to line up. So you have to have both boxes sitting at the same height. In other word, "connect the grounds". [/quote]

But that explanation seems contingent on there being a difference in grounds. E.g., two circuits powered by identical batteries still can't communicate, can they?

Would it be correct to say that a digital input requires at least some current to flow, even if uA? Thus without common ground no current can flow.

[quote author=Professor Chaos link=topic=177092.msg1314460#msg1314460 date=1373679878] But that explanation seems contingent on there being a difference in grounds. E.g., two circuits powered by identical batteries still can't communicate, can they? [/quote]

In the two boxes analogy they have to be spatially at the same level. In the case of electric circuits the ground has to be electrically at the same level. I don't see how you can do that without connecting the ground wires. After all you don't hold the two batteries so they are they same height from the floor. The only way it makes sense to say the "share" a ground is to actually connect it.

[quote author=Professor Chaos link=topic=177092.msg1314460#msg1314460 date=1373679878] Would it be correct to say that a digital input requires at least some current to flow, even if uA? Thus without common ground no current can flow. [/quote]

Between the grounds? I don't think that question makes sense because if the grounds are connected therefore no current flows from one "ground" to another.

Put it this way. If you get a battery and put the + terminal into a digital input of your Arduino and don't connect the - terminal to anything nothing will happen. The battery might have 3V between its + and - but without the - being connected to the Arduino (the shared ground) the + voltage is not "referenced" to anything the Arduino knows about.