The Classic Arduino Nano A000005 pinout shows the pin assignments of the ATmega328P-based, 5 V, 16 MHz board with a Mini-B USB connector, and it exposes D0-D13 and A0-A7 pins; however, note that the pin labels are not freely interchangeable as GPIOs. While A0-A5 map onto D14-D19, A6 and A7 are reserved solely for analog inputs. To use this pinout safely, identify your specific variant of the Nano, lock the diagram orientation, reserve shared-interface pins before using them as GPIO, and keep the Arduino identifiers separate from the MCU signal names and EDA pad numbers.
The above map only applies to the Classic Arduino Nano A000005 board. The header pinout map is illustrated from a component-side, top view with the Mini-B connector at the top. Reserve pins D0/D1 for UART and upload access; pins A4/A5 for I2C; and pins D10-D13 for SPI devices if required. Treat A6/A7 as analog-input-only pins, design for a practical I/O ceiling of 20 mA, and confirm the physical header contact before finalising the carrier PCB design.
Which Arduino Nano Pinout Does This Guide Cover?
You could easily connect a project that assumes 5 V logic to a 3.3 V-only clone of the Nano; this mismatch may not manifest itself as a wiring error, but rather through damaged inputs or sensors reporting incorrect data. The Classic Nano uses the A000005 form factor, an ATmega328P-family AVR chip, 5 V logic, and a 16 MHz clock, as well as a Mini-B USB connector, while other Nano-family members may have different processors, logic voltage levels, USB connectors, or pin functions while sharing the same narrow two-row outline; therefore, a matching outline is not sufficient to ensure compatibility.

Core Specifications That Affect Pin Use

Arduino Nano Pinout Map: Physical Position, Labels, and Orientation
Use this arrangement as a component-side (TOP VIEW) layout for wiring up your Nano with the Mini-B connector at the top of the layout.
The 2 x 3 ICSP connector is physically separate and is represented in Arduino's official drawing as viewed from below (i.e., looking at the bottom of the Arduino PCB), where the connector is assigned the following designators: CIPO, 5V, SCK, COPI, RESET, GND. When determining which pin is pin 1 on the ICSP connector, users should not rely on the top-view orientation associated with the edge headers, but instead be sure to use the view cue and pin 1 identification on the official drawing.
One Pin Can Have Several Correct Names
A net in a schematic may be identified by the name D2 and in code as pin 2; yet, when looking at a library footprint that is placed into a physical board layout, an incorrect pad assignment may point to the pad next to D3 instead. While all the parts and their associated connections are reviewed through each individual stage of the design process, the end result may still have connections wired one contact away from where they were originally intended. A mismatch between these coordinate systems is why a schematic might show an apparently correct circuit while a final routed carrier PCB may result in an incorrect connection to a Nano header contact.
When placing the Nano across the center gap of a breadboard, ensure the Mini-B connector is clearly visible and determine which header row faces each power rail. To ensure proper orientation of the printed footprint in relation to the real Nano module during carrier PCB fabrication, print out a 1:1 ratio of the Nano's footprint or compare the footprint with the real module from the component side.

The Classic Nano has 14 labeled digital pins, which are D0 through D13, and includes A0 through A5, which can also be referred to as D14 through D19, giving the AVR core six additional normal digital mappings for a total of 20. A6 and A7 increase the analog-input count to eight but do not add additional normal digital GPIO pins. This difference helps to explain why some specifications give a higher I/O count than what would be expected from a practical pin budget.
Using INPUT_PULLUP on normal digital pins enables the AVR's weak internal pull-up. According to Arduino's official FAQ for the Nano, the pull-up is approximately 20-50 kOhm, which may work well for simple switch input applications but is likely too weak to properly pull up a bus line or load designed to use a defined value for an external resistive pull-up. For those types of applications, you'll need to supply your own pull-up resistor sized appropriately for the interface.
A6 and A7 Are Analog-Only
A6 and A7 are the critical exceptions to the A0-A5 digital-alias pattern for the Classic Nano. The official pinout shows A0-A5 with digital aliases D14-D19, while A6 and A7 appear only as ADC6 and ADC7. The Arduino AVR core indicates that the Nano variant has 8 analog input pins, but the standard digital mapping of the board has 20 pins assigned. When calling analogRead(A6) or analogRead(A7), don't reserve either pin for digital GPIO use; e.g., digitalWrite(A6, HIGH) producing no output points to an invalid mapping assumption rather than proof that the board is damaged.
ADC Resolution, AREF, and the Analog Range
The ADC of the ATmega328P is 10 bits, so calling analogRead() will yield results in the range of 0-1023. In the Classic Nano, the default AVCC reference, nominally 5 V, corresponds to the number of code combinations (1024) possible, with codes running from 0 V (ground) up to one LSB below the selected reference voltage. AREF is the reference input to the ADC; use it only when the sketch intentionally selects an external reference with the analogReference() function and the external reference voltage is electrically valid. A0-A7 are all ADC inputs; however, A0-A5 can also function as standard digital pins.
How PWM Simulates an Analog Output
PWM outputs are on pins D3, D5, D6, D9, D10, and D11. By using analogWrite() on this AVR board, the output value is normally an 8-bit value ranging from 0-255. Thus, the output still switches between digital HIGH and LOW, and the value indicates duty cycle rather than providing a DAC output voltage. This distinction is important when PWM is used to control motor-driver speed, the brightness of LED illumination, or as a filtered control signal.

Which Pins Carry UART, I2C, SPI, and ICSP?
Before using these contacts as spare GPIO, reserve the required interfaces first. Correct wiring can still fail if two different functions attempt to use the same physical pin.
The ICSP header exposes the same SPI signals carried by D11 through D13, together with 5V, RESET, and GND. Wiring to its COPI, CIPO, or SCK contacts therefore also connects to D11, D12, or D13 respectively. Arduino now uses COPI/CIPO for the newer naming convention, but many modules and older schematic drawings still use MOSI/MISO. When wiring, think of COPI as 'controller-out/peripheral-in' and CIPO as 'controller-in/peripheral-out'. Also, make sure you check the naming convention of the device you are connecting to before doing any wiring.
When using I2C, pull-up resistors are normally required on the SDA and SCL lines, since the I2C bus uses open-drain signaling. Many sensor or display modules already include pull-ups, so before you add additional pull-ups on the lines, be sure to check your actual bus wiring. D13 drives the onboard LED; therefore, if you have activity on D13, the LED may light up while you're using D13 for SCK or for general I/O.

Power Pins and Electrical Boundaries
When using VIN as a power source for the Nano, also supplying 5 V to the 5V pin from a second source can create unwanted current between the two power sources. Another variation of this same mistake would be to supply an external sensor with more current than the 3V3 pin is rated to safely deliver. The pin may continue to supply the load until the voltage sags or the source overheats, which could cause downstream components to malfunction. Therefore, rail names should be considered as identifiers, not as proof that a connection is safe.
Why Arduino VIN and I/O Current Numbers Can Look Inconsistent
The reason why current ratings and specified input voltages for the Arduino Nano can appear imprecise, contradictory, or unclear is that Arduino does not use a consistent VIN range across all of its official Nano material. For example, while current technical specifications published on the store list an input voltage of 7-12 V, the current A000005 datasheet lists an unregulated input voltage of 7-15 V, and the store's FAQ still includes an even broader range of 6-20 V. These values should not be interpreted as equally comfortable continuous operating conditions. Using 7-12 V as the conservative range provides greater margin for regulator thermal dissipation, input tolerances, load current, and variation between different Nanos.
The same distinction applies when comparing Arduino's I/O current ratings. The complete pinout and current technical specifications provided by Arduino indicate 20 mA per I/O pin. However, Microchip also provides an absolute maximum rating of 40 mA per I/O pin and an absolute maximum device rating of 200 mA through the VCC/GND pins. It is important not to design normal loads around 40 mA. Motors, relays, high-current LEDs, and other substantial loads require suitable external driver circuitry. Make sure that the logic levels of the input and output pins are compatible when applying 5 V from an Arduino Nano output to a 3.3 V-only input.

How Do You Verify a Nano Before Wiring or PCB Release?
When verifying that a Nano operates correctly prior to wiring or PCB release, it is important to understand that a clean ERC/DRC pass and pinout diagram may each be correct independently, but neither will guarantee that your Nano board will operate properly. This is because the assumptions made in creating the ERC/DRC pass and the pinout diagram may differ from the physical device you have in your hand.
Start with a low-risk contact such as D2, confirm the Arduino identifier in code, measure the intended board contact, and check continuity from the board contact to the carrier net — this process will catch a mirrored footprint in your design; neither the diagram nor the rule checker will indicate this type of issue. Repeat this procedure for representative ADC, UART, I2C, and SPI signals before committing the hardware.
Common Arduino Nano Pinout Problems
References & Sources
- Arduino Nano A000005 – Official Hardware Documentation – Arduino
- Arduino Nano – Official Store Specifications and FAQ – Arduino
- Arduino Nano A000005 Full Pinout PDF – Arduino
- Arduino Nano A000005 Datasheet – Arduino
- Use PWM Output with Arduino – Arduino Help Center
- ArduinoCore-avr – eightanaloginputs pins_arduino.h – Arduino / GitHub
- ArduinoCore-avr – standard pins_arduino.h – Arduino / GitHub
- ATmega328P Product Data and Electrical Limits – Microchip
- KiCad 10 Schematic Editor Documentation – KiCad
- Master Your Arduino Nano Pins with This Handy Guide! – The Last Outpost Workshop



