Is there any significant performance trade-off between buttons wired with the internal vs external pull-up/down resistors? I see a lot of tutorials demonstrating the use of external resistors when wiring a simple button, like this and this. But since the Arduino/AVR includes internal pull-up resistors, you can wire a button without any external resistor as demonstrated here.

Is there any good reason to complicate your design with an extra resistor?

2 Answers 2


If you are using the pin as an input in close proximity to the Arduino there is little reason to use an external pullup.

There are a number of factors to consider.

If the switch is some distance from the chip and/or in a noisy environment it will be more susceptible to interference as the internal pullups are high impedance (20kΩ to 150kΩ depending on model).

If the pin is used as both input & output the pullup can reduce the voltage swing.

In other applications e.g. Raspberry Pi the state of the pin between boot and software initialisation can be significant, but this should not be an issue with Arduino.


I think it depends on the application you're going for. A simple switch probably doesn't need a resistor, since it doesn't require the chip to provide any specific voltage or current.

If you're trying to run an LED or something that requires a specific amount of current or voltage, then you may be better off supplying the power connection & resistor rather than relying on the chip to provide the proper power to the device.

Another situation may be where you're approaching the maximum power output of the chip that you might change to external pull-up/down resistors.

  • That's what I thought. I have a simple application that just has a few basic push-button switches, and I didn't understand why I was seeing so many complicated wiring schematics when simply connecting the button to ground and signal was sufficient. I just want to make sure I'm not missing something...
    – Cerin
    Oct 26, 2014 at 2:11
  • 1
    This anwser does not relate to the original question: pullup resistors are used for INPUT exclusively, hence they are not a matter of supplying current or voltage by the MCU. Limiting current on OUTPUT is another matter and can be done by resistors in series (not pure pullup).
    – jfpoilpret
    Oct 26, 2014 at 8:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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