Earthing of Arduino Board

Hello!
I am wondering why the Arduino behaves differently when powered by a USB. One example of that is in this forum post I made here: http://arduino.cc/forum/index.php/topic,102717.0.html Another behaviour I've experienced recently is when using an LED as a light sensor (more details at http://provideyourown.com/2011/cheap-alternative-for-hard-to-find-cds-light-sensor/). The circuit is a green, reverse biased LED from pin 12 to GND (sensing LED), a forward biased LED from pin 9 to GND with 330 ohm resistor (brightness adjusted depending on ambient light [display LED]). Here is the code (not quote):

class AmbientLightSensor {
public**:**
AmbientLightSensor(int ledPin) : mLedPin(ledPin), mMeasureAnalog(false) {}

void setAnalogMeasurement(int thresholdLevel); // measure from an analog pin
void setDigitalMeasurement(); // measure from a digital pin (default)

int measure();

protected**:**
int mLedPin;
bool mMeasureAnalog;
int mAnalogThresholdLevel; // (0 to 1023)

void charge();
void discharge();

int measureUsingAnalogPin();
int measureUsingDigitalPin();
};

void AmbientLightSensor::setAnalogMeasurement(int thresholdLevel)
{
mAnalogThresholdLevel = thresholdLevel;
mMeasureAnalog = true;
}

void AmbientLightSensor::setDigitalMeasurement()
{
mMeasureAnalog = false;
}

void AmbientLightSensor::charge() {
// Apply reverse voltage, charge up the pin and led capacitance
pinMode(mLedPin, OUTPUT);
digitalWrite(mLedPin, HIGH);
}

void AmbientLightSensor::discharge() {
// Isolate the diode
pinMode(mLedPin, INPUT);
digitalWrite(mLedPin, LOW); // turn off internal pull-up resistor, see http://arduino.cc/en/Tutorial/DigitalPins
}

int AmbientLightSensor::measure() {
charge();
delay(1); // charge it up
discharge();
return (mMeasureAnalog)? measureUsingAnalogPin() : measureUsingDigitalPin();
}

int AmbientLightSensor::measureUsingDigitalPin() {
long startTime = millis();
// Time how long it takes the diode to bleed back down to a logic zero
while ((millis() - startTime) < 2000) { // max time we allow is 2000 ms
if ( digitalRead(mLedPin)==0) break;
}
return millis() - startTime;
}

int AmbientLightSensor::measureUsingAnalogPin() {
long startTime = millis();
// Time how long it takes the diode to bleed back down to a logic zero
while ((millis() - startTime) < 2000) { // max time we allow is 2000 ms
if ( analogRead(mLedPin) < mAnalogThresholdLevel) break;
}
return millis() - startTime;
}
AmbientLightSensor led(12); // LED is hooked up to digital pin 12

int led2 = 9; // led to indicate darkness is hooked up to digital pin 9

void setup()
{
Serial.begin(9600);
pinMode(led2, OUTPUT);
}

void loop()
{
int ledVal = led.measure();
/if (ledVal > 300) // a decent level of darkness
digitalWrite(led2, HIGH);
else
digitalWrite(led2, LOW);
/
analogWrite(led2, map(constrain(ledVal,0, 400), 0, 400, 0, 255));
Serial.println(led.measure());
}

According to my Serial Monitor debugging info, the sensing LED's "parasitic capacitor" takes about 64 ms to discharge in my fairly lit room. Works OK.

I did the following when the UNO was running on USB power from a desktop:

Action 1: touch only the short lead of the sensing LED with my finger. Result 1: display LED dimmed to a great extent, meaning that the "parasitic capacitance" of the sensing LED decreased significantly. Serial monitor prints ~15. Is the human body's capacitance, or earthing the cause?

Action 2: Touch an insulated solid core wire's exposed end to sensing LED's short lead, while holding the plastic part with my finger. Result 2: Nothing happened. Serial Monitor prints the normal discharging time.

Action 3: Touch the same wire's metal end to the short lead of the display LED, while holding the other metal end with my finger. Resulte 3a: Same as 1, but to a smaller extent.

When repeating actions 1-3 while the UNO was running on 9V battery power, they hardly affected the "parasitic capacitance". There is obviously a big difference in the behaviors in USB power and battery power. Also, in this link: Arduino Playground - HomePage it says "the grounding of the Arduino board is very important in capacitive sensing". When the Arduino board is powered by USB via desktop, the power has connection with the Earth (mains power), right? How can this cause these behaviors, or even more? Is there another cause? Any explaination is appreciated!

P.S. What does "Another solution that seems to have worked well on at least one installation, is to run a foil ground plane under the sensor foil (insulated by plastic, paper, etc.), and connected by a wire to ground. This worked really well to stabilize sensor values and also seemed to dramatically increase sensor sensitivity." from that link mean?

  int ledVal = led.measure();
  /*if (ledVal > 300) // a decent level of darkness
   digitalWrite(led2, HIGH);
 else
   digitalWrite(led2, LOW);*/
  analogWrite(led2, map(constrain(ledVal,0, 400), 0, 400, 0, 255));
  Serial.println(led.measure());

I will never understand why people do this. Read a value. Constrain that value. Map that value. Act on that value. Then, read another value and print it. Why? You won't learn a damned thing about the value that was constrained, mapped, and acted on. Print ledVal BEFORE mucking with it.

The human body can function as a large ground or a source of 60 cycle noise and as a floating voltage source. And sometimes all at the same time. You are a large blob of water. When that large blob of water approaches a circuit you have an effect on it. You can affect capacitance, you can add noise and you can act as a ground for different signals. Those properties are what makes smart phones work - you touch the screen and it is able to detect that big blob of liquid affecting that portion of the display.

Okay... but why does it happen only when the Arduino is connected to the Earth via USB power on desktop? When connected to a battery, the human body has a much less effect on the circuit.

To PaulS:
Read it carefully! I am printing the raw led.measure() ! The constrain and map is only to set the brightness of the LED, which I am not so concerned about! I didn't change the variable ledVal; look carefully! led.measure() is the value of ledVal; it never changed (I didn't "muck" with variable ledVal)!. The brightness of the display LED is not contained in a variable! What I want to know is why earthing the Arduino Board will cause different behaviours!

Read it carefully! I am printing the raw led.measure() !

But, you are NOT printing the value that you are constraining and mapping. You are printing a different reading. Big difference.

look carefully! led.measure() is the value of ledVal

I did look carefully, and I see that you are taking two readings. You use one, and print the other. Like I said, I do not understand why you do this.

I didn't "muck" with variable ledVal)!.

You didn't print it either.

I don't fully understand some of the more subtle grounding effects, but I figure what's happening is this:

With USB, your ground reference is the actual Earth -- through the PC, mains wiring, and breaker panel at your house. When battery powered, ground is floating. (From a battery, all that matters is the difference between the reference and the V+ supply.)

So, when you touch a Gnd lead, you equalize grounds with the battery-operated circuit, but you're more likely a source of noise for a mains-powered circuit. After all, you're a lower resistance to Earth than the surrounding air (battery), but not lower than copper cable (USB).

I think. Someone might need to put me in my place.

When battery powered, ground is floating.

So you think that this will cause the readings to be more stable? That seems to be my case.

You can affect capacitance, you can add noise and you can act as a ground for different signals.

Why is the grounding, capacitance, etc. much more evident when the UNO is connected to the Earth? I simply take out the USB cord, plug the battery in, without changing the location of the UNO, and my body now has very little effect on the circuit.

Quote

Read it carefully! I am printing the raw led.measure() !
But, you are NOT printing the value that you are constraining and mapping. You are printing a different reading. Big difference.

Quote

look carefully! led.measure() is the value of ledVal
I did look carefully, and I see that you are taking two readings. You use one, and print the other. Like I said, I do not understand why you do this.

Quote

I didn't "muck" with variable ledVal)!.
You didn't print it either.

Sorry, you are mislead by my code, PaulS. I am not taking 2 readings. The ledVal is useless; forget about it. I don't really care about the values, I just want to know why the Earthing of the board will cause this stuff to happen. I am using only one value: led.measure() the whole time (led.measure() is the time the sensing LED's "parasitic capacitor" takes to fully discharge). The map and constrain stuff is a value not contained in a variable, just for the display LED. Bottom line: that isn't the problem. I am not actually having a problem at all, I just want to know how this happens.

Another question: If I connect my UNO's GND pin to a metal water pipe in my basement, is my UNO's GND now "Earthed"?

dkl65:
I am not taking 2 readings. The ledVal is useless; forget about it. I don't really care about the values, ...

int ledVal = led.measure();
  /*if (ledVal > 300) // a decent level of darkness
   digitalWrite(led2, HIGH);
 else
   digitalWrite(led2, LOW);*/
  analogWrite(led2, map(constrain(ledVal,0, 400), 0, 400, 0, 255));

I think you might have confused PaulS by having all these lines of code for a variable that is "useless" and you don't care about. Maybe delete them?

However you did in fact analogWrite the mapped, constrained value that is called ledVal.

I simply take out the USB cord, plug the battery in, without changing the location of the UNO, and my body now has very little effect on the circuit.

I'm not particularly surprised. Personally I am sitting at a keyboard that is plugged into USB, so there is a proximity between me, the keyboard, the screen, USB and via USB the Arduino. If I unplug the Arduino it moves into a different electrical space.

Let's forget about the whole ledVal thing. From this froum topic, I have learned that the human body can act as some kind of capacitor or ground for the electricity, or conductor of mains 50/60 Hz AC EMF. To use the Capsense library, the Arduino should be connected to the Earth for best results, as said on the playground page. Now, I "speculate" that connecting the Arduino to the Earth enchances this grounding effect on circuits. Second question: if I connect a GND pin of my Arduino into the earth socket in a power outlet, is my Arduino "Earthed"?

When battery powered, ground is floating.

So you think that this will cause the readings to be more stable? That seems to be my case.

Look at it this way. Let's say you have a ladder that's ten feet tall, and you put something on top of it. I don't care what... maybe a rock. How high off the ground is that rock? Ten feet, right? You know this because you have a reference point (Gnd), and a known height via the ladder (+10ft).

Now let's take that ladder and throw it into deep space. You have no idea where. Which way is Earth? Could be any way, any distance. It might be in a completely different galaxy, or just behind Uranus. (Sorry, that joke will never get old.)

You still know the rock is +10ft above the bottom of the ladder, but "Gnd" no longer has any meaning to you.

In this case, the ladder on Earth is your USB-powered Arduino. The ladder in space is your battery-powered Arduino.

If you take a lead from the Arduino's Gnd socket and connect it to USB, a water pipe, the ground hole in a wall outlet, or a copper stake 50ft deep in the back yard -- it doesn't matter how, the Arduino now has a universal reference. It doesn't change the relationship between 0v and 5v on the board, but ...

If you take your battery-powered, but grounded, Arduino and hook up a +5v lead from your computer to a digital pin and take a reading, now the Arduino knows it's +5v. If you remove the lead between Gnd and your bath tub faucet, however, the Arduino no longer has any idea what the voltage on that pin might be. It could register as anything, since it's one piece of wire with no return path, and no current can flow on a circuit with only one wire.

If you have trouble wrapping your mind around that particular line, think of this: Imagine a single dot. Which direction is it pointing? Is it a straight line? None, and no. It's a single dot. It takes two dots to make a line. Circuits are like this. With one wire between two independent circuits, there's no frame of reference, and no path for current to make a round-trip. You need two wires before you can quantify its value.

Another way, if you like math, is to think of Gnd as X. What's X + 5? You can only solve this if you know what X is. Otherwise, the answer is undefined. That doesn't keep stuff within the circuit from working -- for instance, if one voltage is X + 5, and another is X + 2, you know the difference between them is 3. Is it +3 or -3? It depends on which one is your reference point.

So, back to your question: Why does the battery-powered circuit register no change when you touch it? Because it has no reference to the Earth. You do, so through you, it will establish one. (A weak one, but nonetheless.) When you plug it back in via USB, it has a strong reference to Earth. You become a second reference to Earth. Since you're higher resistance than the USB port, motherboard, PSU, power cable, and house wiring, your ground potential is slightly different than its own ground reference. Thus, you induce some voltage (the difference) and it is read as a signal.

This is how I understand it, and I reserve my right to be completely, totally wrong. (I would appreciate a kind nudge in the right direction if I'm guilty of rewriting physics.)

Thanks SirNickity! Even if I am upstairs, sitting on a chair, I am still "Earthed"? The Earth is a giant conductor? How much resistance does it have? So if I connect a lead from the Earth socket of a wall outlet to the GND pin on my UNO, it will behave somewhat like when the UNO is powered by a USB? I also (think I) understand that the Capsense works by measuring the potential difference between an "Earthed" person, and the Earth connected to the Arduino.

It becomes splitting hairs at some point. All real-world objects conduct. It's just that some conduct more than others. So, yes you're still technically earthed in a chair, upstairs, with rubber underwear. But you probably have enough resistance that it is no longer significant. At that point, the battery Arduino and your body are equalizing, but the resistance to earth is high enough not to have much influence.

But I shouldn't be earthed (or it is extremely insignificant) if I am standing on a high voltage bare wire, without touching anything else, even if the wire is connected to a concrete post, touching the Earth. You mean "equalizing" as having a common ground, right? If the Arduino is connected to a USB, the equalizing is much more significant, I "speculate". I connected a wire from my battery powered Arduino's GND pin to the Earth socket in a wall outlet or water pipe, then my finger had more of an effect on a circuit then when it was unconnected to the earth, but not as much as USB power.

Once the resistance between any object and ground is over 1M-ohm or more, it's hardly a ground anymore. So if you're doing your high-wire act on a 10kV power line, you're not conducting much power to earth. The resistance of those wooden poles, ceramic standoffs, and the air around you just don't conduct enough energy to cause any harm. You'll notice, though, at ridiculously high voltages, an air gap becomes less and less effective. Check out a YouTube video of a power station disconnect switch and you'll see what I mean.

But, here where we're dealing with 5v DC, the space between you and the nearest metal object grounded to earth presents enough impedance to effectively isolate you from earth.

The water pipe is earthed, but probably has higher resistance than copper wiring from your AC outlet. After all, it's a water pipe. Its primary purpose is to carry water, not power. That's merely a convenient (usually) side effect. In any case, it wasn't plumbed with the express intent to be as close to 0 ohms as possible. House wiring, on the other hand, is. (Not that it's 0 ohms, otherwise ground loops would never exist, but ideally it's closer.)

Now why would you make a more significant difference when powered by USB than when grounded to the wall? I don't know exactly, but I speculate it has something to do with the amount of noise on the USB circuit. Ground isn't a black hole. It's subject to physical limitations, and can be noisy.

About the equalizing bit... Let's say you have two bedrooms. It's winter out, and in one room you have the window wide open. In the other room, you're well insulated and the heating vent is open. One room will be cold, the other warm. Now let's say there's a door between them -- like one of those hotel rooms that is connected to the next suite. If you open this door, the cold room will become warmer, and the warm room cooler, until they reach equilibrium.

This is what happens when you take two isolated circuits and connect their grounds together. (Or, you touch ground on a battery-operated circuit.) The two will equalize, and you now have a common reference. If you didn't connect grounds, and you tried to read the voltage on circuit A with the ground on circuit B as your reference, the results are undefined.

It's like telling someone that a jar in one of your rooms is 10 degrees above ambient. Well, what's ambient? Without that, you can't know the absolute temperature of the jar.

Do you mean "undefined" as unable to measure the voltage? http://arduino.cc/forum/index.php/topic,102717.0.html is another forum post I made that talks about me doing an EMF detector, but when I touch the wire to the A0 pin (A0 is tied to ground via 3.6M ohm resistance), the output reads ~0.3V only when the computer is connected to the Arduino!

Since you're higher resistance than the USB port, motherboard, PSU, power cable, and house wiring, your ground potential is slightly different than its own ground reference. Thus, you induce some voltage (the difference) and it is read as a signal.

So is this supposed to cause some ground loop (I don't really understand ground loops)? So when I touch the wire, I should establish some circuit like Ground Loop.png, right? I tried recreating this circuit (Ground Loop 2.png), and measure no difference (even in the 200mV range of my multimeter). Am I doing it incorrectly, or am I completely wrong? I am using battery power.

In Ground Loop 2.png, I took a GND lead from my Arduino, connect it to another GND lead via 3.6M ohm resistance. I tried to measure a voltage across the resistance (2 1.8M ohm resisters in series).

Ground Loop.PNG

Ground Loop 2.PNG

Ground loops are superficially easy to understand, but defining exactly what happens can take experienced engineers entire articles to explain. I'm way out of my league there. The essential gist is that a ground loop is when there are multiple paths to ground, so instead of voltage flowing directly to the nearest ground, it may follow an alternate route that you haven't anticipated.

Here's an example. Let's say you have an amplifier in your garage, for playing tunes while you work on your car. You decide you want to listen to some music on your computer, so you run a long cable from your office or living room, through the house, and into the garage.

The amp is grounded through the power outlet in the garage. Your computer is grounded to the outlet in your house. The amp and computer are also grounded to each other through the audio cable. Now, because all cables have resistance, and many homes have old wiring with worn-out connections and outlets, the resistance between the breaker panel and the power outlet is probably substantial enough that the inside room's ground and garage's ground are not equal. So, the amp could very well find a lower resistance path through the audio cable and into the computer. The result being AC offset signals on the audio input, and therefore hummmmmmmmmmmmmmmmm...

Ground is ideally a 0v reference, any deviation from this is detected as a signal. You hear it in an audio signal, but in digital electronics, it manifests in other ways.

Let's look at your first diagram there, with the two high-value resistors to ground. Imagine that top line is like a strip of copper on a PCB. From that line, let's say you have the ground side of the coil from five relays in a row, which are clicking away independently. Every time one of those relays turns on, there is current flowing through the coil, to that trace on the PCB. If the center relay is on, what's the voltage on that trace? It should be zero, with reference to ground, because it's connected to ground. But it won't be, because there are fat resistors between the relays and the real ground point. This is an extreme example, because your ground reference will hopefully have less than M-ohms of resistance. But even if it's 1 ohm, will the voltage on that top line be exactly 0v? Nope.

So, if that center relay is on, dumping 5v into a high-resistance path to ground, what does that mean for the relays on either side of it? What is their reference? Current prefers to flow where there's lower impedance, so it'll flow more toward the side with the lower value resistor. Now there's a difference between the ground reference of the leftmost relay and the rightmost relay. If this offset is high enough, there may not be sufficient voltage difference between the + and - side of the coil for it to engage.

It can get worse if we used that line on the PCB to connect another circuit. Imagine we connect it to an LED with a 220 ohm resistor straight to ground. 220 is a lot less than 100M, so the relay current will flow through the LED to get to ground. (This is a heavily contrived example, but it illustrates that current may flow through a path we didn't intend if it's a lower resistance path.)

The point of all this is, you can't treat a ground as a black hole. Every connection has some amount of resistance. Ideally, every ground in your circuit has its own, unshared connection straight back to the reference point. That way, every component has the same base voltage to compare with. (This is known as star grounding.) That's rather impractical in most cases, so instead we commonly use large ground planes to minimize the resistance, which is the second best approach.

The absolute worst approach is to have a bus ground, like the imaginary trace on the PCB with relays attached to it. The potential will be slightly different at every point along that bus, which could mean instead of going straight to ground, there may be times where the easiest path to earth is through some other component with a lower resistance to ground. Or, some component may not be working the way it should because the voltage across it isn't what we inteded it to be.

Sorry this is a book. :slight_smile:

The circuit I showed you; the high resistance isn't actually 100M ohm. I don't know the resistance of my house when I am on the second floor, so I made up that resistance. If I establish that circuit, will I actually induce a voltage / current between the Earth and A0? Is there a way I can reproduce this effect using my "floating ground" (it's still a ground)? I know that it is a convention to draw the current from the positive voltage source to a ground (negative). But, in real life, electrons flow from negative (GND) to positive, because they are pulled by the positive charge. So, technically, I am drawing electrons out of the Earth?! Yes, I understand that electrons prefer the easiest path, so the voltage may not be even.

But it won't be, because there are fat resistors between the relays and the real ground point.

Are you talking about a parallel circuit? In parallel circuits, current is shared between the paths, but the one with lower resistance will get more current. If the + terminal is 5V, the voltage across the relays won't be 5V due to the resistors, I think. But, the voltage in the parallel circuits should be the same, or am I wrong again? Sorry, I prefer to work with graphics. In Ground Loop 3.png, there would be a difference in earth reference between the left relay and the right relay, correct? So the voltage across the relays are not the same as each other.

I don't know the resistance of my house when I am on the second floor, so I made up that resistance.

I don't know what it would be either. In anything but theory, it's close enough to infinity that it probably doesn't matter.

If I establish that circuit, will I actually induce a voltage / current between the Earth and A0?

That's beyond what I understand. I was kinda hoping someone with more electronics experience than me would jump in here. I understand some theory, but it's part physics, part chemistry, and part magic. I'm trying to design stuff that works. How the electrons make their trek from one place to another -- well, I can speculate based on what I know (or think I know). Sooner or later, I run out of answers.

So.. is it you conducting between earth and A0? I don't know. It might be static energy, or the electrons flowing through your body (we are partly electrical beings). I can assume the amount you measure will vary respective to ground when that ground is earth via USB, or an isolated battery.

Are you talking about a parallel circuit? In parallel circuits, current is shared between the paths, but the one with lower resistance will get more current.

Yes, right.. See the picture I've attached. This is more like how I pictured it. I chose more reasonable resistances of 100 and 3.6 ohms, rather than 100M and 3.6M, because with a 5v source, in reality, those relays will never turn on. The triggers are 5v square waves, at different frequencies, so they turn on and off independently. (This was an illustrative point I made in the last post, but otherwise not important.)

If the + terminal is 5V, the voltage across the relays won't be 5V due to the resistors, I think.

Right. The coil has its own resistance, so it's essentially a voltage divider.

But, the voltage in the parallel circuits should be the same, or am I wrong again?

If the trace on the - side of the coils, between the resistors, had 0 ohms resistance, then yes -- the voltage at the top end of both resistors would be the same (and current through each side would be relative to its resistance). But that trace does have some resistance, so it will affect the voltage at each end. By how much is proportionate to how much current is flowing. In most cases, not much different, but if you're dealing with long / thin traces, high current, or very low voltages, it's significant enough that you need to know it's there.

Sorry, I prefer to work with graphics.

I'm visual too. Also lazy. :wink:

In Ground Loop 3.png, there would be a difference in earth reference between the left relay and the right relay, correct? So the voltage across the relays are not the same as each other.

Well, I didn't intend for the resistors to be parallel to the relays when I wrote my last post, so your diagram 3 has the advantage of having a low-impedance ground reference. My last post assumes the absurd 100M and 3.6M values between the coil - pins and ground. (Again, the relays would never actually work this way, it was just an example.) The voltage through the coils would be nearly exactly the same. The only thing that prevents them from being precisely the same is variance in the coil impedances (tolerance), and the imperfect nature of the ground bus beneath them. To help understand the last part, imagine those traces as very low-value resistors, not a straight line.

Since the connections between the relay grounds is not perfect, there will be voltage on the ground bus between relay 1 and 2 if relay 3 is on, for instance. This affects relay 1 and 2's point of reference, because the + terminal is no longer with respect to 0v. It's with respect to 0v + the voltage across the ground bus.

The better way to design a PCB based on your latest diagram would be to put the ground connection under relay 2, so it's (closer to) equidistant from each of the relays. If you have a fourth relay, then you can align them in a square, with the ground lead in the middle. Or, just make that PCB trace fat enough that its impedance is so low that it doesn't affect your circuit.

We've gotten away from your original quandry (why the capacitive sensing doesn't work from a battery). I don't really know how to help with that specifically, since I've never tried to do it myself. All I have is theories, and I'm not sure all those are correct, or if I've explained everything right. I often find out how much I still have to learn by trying to explain my thoughts to someone else, so I might get schooled here soon. :slight_smile:

relay.png

How high off the ground is that rock? Ten feet, right?

Not necessarily. The analogy was great, except that you said nothing about the orientation of the ladder. A 10 foot ladder leaned up against the side of a house will not have its top 10 feet above ground level. Only a ladder that is vertical will have its top to feet above the ground, but, then, I'm not climbing it to put the rock on top. Lay that ladder flat, and put the rock at the top of the ladder, and the rock is still laying on the ground.

Welcome back, PaulS! I hope you aren't gonna blabble about my ledVal again! Just so you know, we are having a conversation about the Earth and electricity (not ladders or ledVal). It would be nice for you to provide some info!

I might get schooled here soon. :slight_smile:

I don't think that PaulS would have said that if you hadn't said this!

Also lazy. :wink:

Compared your posts to mine!

We've gotten away from your original quandry (why the capacitive sensing doesn't work from a battery).

What does "quandry" mean? I searched it on Google, and found only "quandary".
This conversation isn't over yet (I hope [because everyone seems to have lost interest]). I hope someone more knowledgable will help us here. If mains electricity never used the Earth as a universal reference (maybe they used a long insulated wire), and I touch a 10kV wire, will I get hurt? How can my extremely large resistance to the Earth affect an Earthed Arduino? This topic seems more related to science than Project Guidance. Maybe they should have a catagory for that. I speculate that connecting my Arduino GND pin to the Earth socket while using battery power will have not cause the same effect as USB power, because the grounds are merely equalizing (door between the different temperature rooms ajar), not becoming only the Earth, if you know what I mean.