I'm constructing a circuit that needs both voltage supplies (for 3.3V RFID and 5V relay, GPS and screen) but the Uno is physically too big so I need to use a nano or mini pro, both of which I can only get in 5V. I understand how to use a regulator to drop 5V to 3.3V for the RFID-IC power but I keep seeing instructions to use a level shifter between the IC outputs and arduino input pins. I was just wondering if the Uno has a built-in level shifter for all pins or some other method as the I/O pins do not have specified voltages or uses.

Thanks for your time.


Pins of the UNO/Nano/Mini/Mega board are connected to GPIO pins of the MCU without any additional circuit. The ATmega MCU running at 5 V will sense 3.3 V as HIGH because of the threshold level to convert voltage to logic state.

ATmega will read the pin HIGH from 0.6 * Vcc, so at 5 V Vcc the threshold is 3 V.



There are no built-in level shifters on the Uno; it doesn't need them. Uno's 3.3v pin is merely a convenience for supplying a low-current 3.3v device but there is no provision made for level shifting if/when that is necessary.

Genuine Uno's can deliver a max of 150mA to the 3.3v pin, so plan your current-budget conservatively. In my dual-voltage designs (2 voltage rails on a board with 3.3v & 5v parts), I reduce the "raw" 5v with a 3.3v regulator (typically an LM1117-3.3 part) rather than drawing it off of the regulated 5v power. (I put "raw" in quotes because I usually supply the board with a pre-regulated 5 volts (USB or wall-wart).

For I/O levels, a 3.3v part's HIGH level is within the range of what Uno will read as HIGH. In the other direction, Uno's HIGH level is too high for a 3.3v part and needs to be shifted down to 3.3v. If there are only one or two such signals (Uno -> 3.3v device), a voltage divider circuit would be less expensive and use less board space than a level-shifter. The level-shifter board would be an extra purchase but it is a quick and dirty solution if you have the space for it.


You can get pro-mini in 3.3V, but this has little to do with your problem.

The nano runs on 5V, but has an on-board regulator which supplies 3.3V power, although the logic I/O is 5V.

Level shifters can be used to perform logic level translation, but are not always needed.

The output of a 3.3V logic circuit will drive the INPUT of a 5V logic circuit (technically this is marginal, but works in practice).

5V logic outputs can be connected to 3.3V inputs with a simple voltage divider (you can use level shifter or other methods). Without some means of limiting voltage there is a risk of damaging the 3.3V logic.

Without more detail of exactly what you are planning it is not possible to be more precise.

  • Thanks, my question was mainly to clarify my own understanding of why a 5V nano or pro-mini would need a level shifter but the Uno does not. – Dan Bailey Jun 10 '19 at 16:34
  • I am building an e-bike security system. Part 1 is a rfid reader embedded in the handle bar which the arduino uses as a test for the presence and ownership (via nfc ring) of the rider, driving a relay to connect the accelerator while authorised user is present. Part 2 is a GPS tracker which disables all of the bike functions when activated. Part 3 is a possible future addition which will be a display unit replacing the current factory unit. – Dan Bailey Jun 10 '19 at 16:44
  • @DanBailey, "why a 5V nano or pro-mini would need a level shifter but the Uno does not". not one of them needs logic level conversion from 3.3 V on input pin and any 3.3 V input controlled by them and not 5 V tolerant should have a logic level conversion – Juraj Jun 10 '19 at 17:02

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.