Upload BOM & Gerber

Upload BOM and Gerber
Get a Quote Within 12 Hours

Request a PCB / PCBA Quote

Arduino Nano Pinout: Map Pins Without Wiring Mistakes

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.

Identity checkClassic Nano A000005Stop and verify when
ProcessorATmega328P / ATmega328-family AVRThe MCU or official documentation identifies another processor
Logic and clock5 V, 16 MHzDocumentation specifies 3.3 V or another clock
USB connectorMini-BThe board uses Micro-USB, USB-C, or another connector
Mechanical outline18 x 45 mm, two 15-contact edge rowsHeader spacing, length, or end features differ
Pin labelsMatch the A000005 pinoutRST, REF, VUSB, VBUS, or edge labels disagree
Which Arduino Nano Pinout Does This Guide Cover

Core Specifications That Affect Pin Use

ParameterClassic Nano A000005Why it matters for pin use
MicrocontrollerATmega328P / ATmega328-family AVRDefines the AVR port functions and peripheral mapping
Operating logic5 VA 5 V output is not automatically safe for a 3.3 V-only peripheral
Clock16 MHzSets the standard Classic Nano timing environment
Flash32 KB; 2 KB used by bootloaderProgram storage is separate from pin count
SRAM / EEPROM2 KB / 1 KBUseful when pin-heavy projects also buffer data or store settings
Analog inputs8A0-A7 are ADC inputs; A6/A7 are not normal digital GPIO
ADC resolution10-bitA normal analogRead() returns 0-1023
PWM outputs6D3, D5, D6, D9, D10, and D11
Board size / weight18 x 45 mm / about 7 gUseful when verifying the Classic Nano form factor
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.

PositionLeft headerRight header
1 (USB end)D13 / SCK / LEDD12 / CIPO (MISO)
23V3D11 / COPI (MOSI) / PWM
3AREFD10 / SS / PWM
4A0 / D14D9 / PWM
5A1 / D15D8
6A2 / D16D7
7A3 / D17D6 / PWM
8A4 / D18 / SDAD5 / PWM
9A5 / D19 / SCLD4
10A6 (analog only)D3 / PWM / INT1
11A7 (analog only)D2 / INT0
125VGND
13RESETRESET
14GNDD0 / RX
15 (opposite end)VIND1 / TX

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.

CoordinateD2 exampleWhat it controls
Physical contactHeader contact beside the D2 silkscreenWhere the wire or carrier pad touches the Nano
Board labelD2Human-readable reference on the module
Arduino identifier2Value used by pinMode(), digitalRead(), and digitalWrite()
MCU functionPD2 / INT0AVR port bit and external-interrupt capability
EDA mappingChosen symbol pin and matching footprint padHow the schematic net reaches that physical 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.

Arduino Nano Pinout Map Physical Position Labels and Orientation
Video: Master Your Arduino Nano Pins with This Handy Guide! by The Last Outpost Workshop.

How Do Digital, Analog, PWM, and Interrupt Pins Share Resources?

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.

Pin groupPrimary capabilityShared ownership or limit
D0, D1Digital I/OUART RX/TX and the USB-to-serial upload path
D2Digital I/OExternal interrupt INT0
D3Digital I/O, PWMExternal interrupt INT1
D4, D7, D8Digital I/ONo fixed UART/I2C/SPI alias on the official map
D5, D6, D9Digital I/O, PWMTimer-backed PWM capability
D10Digital I/O, PWMSPI SS
D11Digital I/O, PWMSPI COPI/MOSI
D12Digital I/OSPI CIPO/MISO
D13Digital I/OSPI SCK and onboard LED
A0-A310-bit analog inputDigital aliases D14-D17
A4, A510-bit analog inputD18/D19 plus I2C SDA/SCL
A6, A710-bit analog input onlyADC6/ADC7; no normal digital output mapping

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.

How Do Digital Analog PWM and Interrupt Pins Share Resources

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.

InterfaceNano pinsTypical conflictUseful check
UARTD0 RX, D1 TXExternal serial hardware interferes with upload or Serial monitoringDisconnect or isolate the external UART device during upload
I2CA4 SDA, A5 SCLThe same contacts are allocated as analog/digital signals or pull-ups are unsuitableCheck SDA/SCL continuity, logic voltage, and the actual pull-up network
SPID10 SS, D11 COPI, D12 CIPO, D13 SCKChip-select planning is incomplete or D13's LED connection is ignoredTrace every SPI net and each device's chip select
ICSP programmingCIPO, 5V, SCK, COPI, RESET, GNDThe 2 x 3 header is mirrored or treated as extra GPIOVerify the bottom-view cue, pin 1, and continuity to D11-D13

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.

Which Pins Carry UART I2C SPI and ICSP

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.

Source or pinRolePractical design check
Mini-B USBBoard power plus USB dataCheck host ground and whether another supply is connected at the same time
VINUnregulated input to the onboard regulatorUse 7-12 V as the conservative official range; check regulator heat and actual load
5VRegulated 5 V rail connectionVerify regulation, polarity, source contention, and the exact board revision
3V3Limited 3.3 V outputKeep total external load within the 50 mA guidance shown on the official pinout
GNDCommon circuit reference and returnConfirm the intended return path and avoid accidental ground offsets
RESETActive-low reset controlCheck external pull circuitry and connector mapping before driving it
AREFExternal ADC reference inputUse only with the intended analogReference() mode and a valid external reference

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.

Power Pins and Electrical Boundaries

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.

Verification stageActionPass condition
IdentityRecord the MCU, USB connector, silkscreen, and board revisionThe hardware matches A000005 evidence or has its own verified documentation
OrientationMark component-side top view, Mini-B direction, both header rows, and ICSP pin 1Every drawing, fixture, and footprint uses the same viewing convention
Code-to-wire testExercise one GPIO, ADC channel, or interface signal at a time with a limited test loadThe observed physical contact matches the intended Arduino identifier
EDA mappingCompare symbol pin number, footprint pad number, net name, and physical contactAll four descriptions refer to the same Nano contact
Pre-fabrication checkRun ERC/DRC, print the footprint at 1:1, and inspect a 3D or assembly viewSpacing and pin orientation agree with the real module

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

SymptomFirst checkNext safe test
Upload fails or Serial is corruptedExternal circuitry on D0/D1Disconnect or isolate UART loads, then retry upload
A6/A7 produce no digital outputAnalog-only mappingRead the signal with analogRead() instead
I2C device disappearsA4/A5 allocation, logic voltage, and pull-upsVerify SDA/SCL continuity and the actual pull-up network
SPI device fails through ICSPDuplicated D11-D13 nets, CIPO/COPI naming, and header orientationCheck pin 1, SCK, data direction, and chip select
D13 LED changes unexpectedlyD13 is also LED_BUILTIN and SCKAccount for the onboard connection before treating D13 as an isolated node
Board resets or overheatsPower entry, polarity, load, and source contentionRemove the load and verify rail voltage before reconnecting
Carrier connections are reversedTop-view versus bottom-view footprint interpretationCompare a 1:1 print and the real Nano from the component side

Leave a Reply

Your email address will not be published. Required fields are marked *