:tldr; Could problems occur if one connects a HIGH Output of one arduino to a PULLUP_INPUT of another while using differed power sources?

Hi I'm building some devices for a LARP Dungeon (think Escape room).

For that we have interfaces, riddles and switches(triggers). Interfaces provide access to sound/light/DMX sytems for riddles. Riddles check conditions and send state information to the interfaces.

To keep things simple, states are boolean (like riddle is solved, a critical mistake has been made,..)

I would like to use PULLUP_INPUTs on the receiving end so I can use simple switches to GND as controls. In some cases a switch might be connected directly to an interface. Mostly there is a riddle in-between. In those cases an OUTPUT of the riddle's Arduino will be connected to the PULLUP_INPUT of the Interface's Arduino. There will be multiple riddle Arduinos connected to one or even multiple Interfaces. Due to cable length, differed power sources etc. the potential to GND of the involved Arduinos might be differed. So I assume this difference will flow over the pullup resistor of the interfaces into their 5V. The internal PULLUP is ~20kOhms so current should not be a problem but can the voltage, which might be a little higher than the one of the input, cause problems?

Or would it be better to set the Output of a riddle Arduino to INPUT while the signal line should be HIGH so it gets a high impedance? Switching between: OUTPUT:LOW while active and INPUT while inactive.

  • If a voltage higher than Vcc is applied to a pin, current will barely flow through the pullup but through protection diodes... – Sim Son May 12 at 13:44
  • Thanks! That should resolve my concerns. – Karl Sanathos May 12 at 16:28
  • I might have been unclear: that is actually a bad thing. Those clamping diodes are meant to protect IOs from transients, not from a persistent overvoltage. Applying a constant voltage of typ. 0.5V above Vcc can destroy the GPIO... but it is only relevant if the two devices have different Vcc. – Sim Son May 12 at 17:17

Connecting any signal that is within the voltage range of the receiving Arduino is safe. So if you use Arduino UNOs or similar with a 5V operating level, you can connect any signal between 0 and 5V to an input. It does not matter whether the input is in pull-up-mode or not. So connecting an output to an input of another Arduino (or even of the same Arduino) is safe. In addition to the signal values, you do need to connect the ground of both Arduinos.

The only thing you must not do is connect two outputs together (because if one of them is high and the other is low, you have a shortcut that will potentially fry one or both of the boards). And you would need to be careful if you used different types of Arduinos, like a Uno and a Due, because they run at different voltage levels.

  • 1
    All correct, but also note: The two MCUs need the same reference, but they have separate power sources, so you also'll need to connect their grounds together. – JRobert May 12 at 11:50
  • True, added that. – PMF May 12 at 12:27
  • Yes all GNDs are connected as well. From my understanding a IO-Pin which is set to INPUT_PULLUP is connected via a internal resistor to the 5V-Pin of its Arduino. An OUTPUT is directly connected to 5VPin when HIGH. Depending on the load and accuracy of each linear converter the real voltage between 5V-Pin and GND might be different for each Arduino. I have read that this voltage is critical for any Arduino and must not change. Load on any Arduino may change. So I fear that current might go back into the INPUT_PULLUP. I guess the difference will be <100mV.. Maybe I'm over thinking this. – Karl Sanathos May 12 at 16:10
  • @KarlSanathos: The internal resistor that is used to create the pull-up is large enough that whatever current you attempt to draw from it is small enough not to cause any harm. The voltage on an input pins is absolutely not critical, as long as it is not significantly above 5V. If it is around 2.5V, the input reading might be random, but still this won't break anything. – PMF May 12 at 16:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.