# FEDEVELPlatform forum

## Pull Up Resistor

FurkanDursun , 01-15-2020, 04:13 AM
Hello everyone;

I would like to ask one question. I know to pull up resistor. And I know how to work pull up resistor. (BTW I bought FEDEVEL ACADEMY'S learn to design your own board course) My problem is why we don't use a switch on PCB with pull up resistors. I mean that is the picture.

And how to we calculate this value?
robertferanec , 01-15-2020, 04:42 AM
why we don't use a switch on PCB with pull up resistors
I am not sure what you mean by "switch on PCB"
FurkanDursun , 01-15-2020, 05:30 AM
Originally posted by robertferanec
I am not sure what you mean by "switch on PCB"
Sorry, my bad. The true sentence "without button switch on PCB"
FurkanDursun , 01-15-2020, 05:32 AM
Originally posted by FurkanDursun

Sorry, my bad. The true sentence "without button switch on PCB"

robertferanec , 01-15-2020, 06:23 AM
If you like, you can use pull up on board like this. There are a few things to consider:
- many chips include internal Pull up, you may not even need that external pull up, just enable it inside of the chip
- you need to be sure, that signal will be de-bounced. When you press a button like this, you will often get multiple impulses - that can cause a lot of problems with your software (even if you think you just pressed the button once, you still may get number of impulses). There are several ways how to filter that impulses - some chips have build in de-bouncing filter, it can be filtered by software, it can be de-bounced outside of the chip as I have it done in 28pins

Calculate value:
Depends what current you need for the input pin to register High/Low and is still reliable and immune for noise - usually for input pins very small current is required. You do not want to use a too low pull up as then your board will have unnecessary higher power consumption (when you press the button, current will flow through resistor to GND - that is wasted power).

For calculation it is all about R=U/I and P=U.I, but general values for standard pull ups are 10k for 5V and 4.7k for 3.3V. However you have to be very careful - in some situations you need different pull ups, e.g. if you need something stronger (often for I2C) 2.2k is used or if there is internal pull up / down resistors inside of CPU or MCU, often 1k resistors are used.