Arduino Nano
Hardware Overview
Updated: 18Aug2024 04:04:37 UTC 2024-08-18T04:04:37Z
Rating: (0 reviewsThis article has not been rated yet)
The Arduino Nano is a small breadboard-friendly microcontroller board based on the ATmega328 MCUMicrocontroller Unit. It has more or less the same functionality of the Arduino Uno R3, but in a smaller package of 45mm x 18mm (1.77in x 0.71in) with the DC power jack and USBUniversal Serial Bus Type-B female connector replaced by a single Mini-B USBUniversal Serial Bus connector for both power and data.
This hardware overview Arduino Nano board covers specs, board layout, pinout, power, I/O, and accessories.
Specs
Parameter | Description |
---|---|
Board Model |
Arduino Nano
SKU: A000005 Arduino Nano Datasheet (PDF) |
Main Processor |
8-bit 16MHz AVRAVR microcontrollers derives its name from its developers and stands for, Alf-Egil Bogen and Vegard Wollan RISC microcontroller, and is also known as Advanced Virtual RISC. ATmega (max speed 20MHz) with Advanced RISCReduced Instruction Set Computer architecture
Note: The "328p" in ATmega328p means 32 for 32KB of flash memory, 8 for 8-bit architecture (data bus), and p for "pico-power" (i.e., consumes less power under certain circumstances) |
USB Serial Processor | FTDI FT232RL |
Memory |
|
Interface |
|
Timers |
|
Power |
Input Power:
Output Power:
|
Board Size (LxW) | 45mm x 18mm (1.77in x 0.71in) |
Docs | Arduino Nano Docs |
Board Layout
Components
- USBUniversal Serial Bus Port:
- The USB port is a USB 2.0 Mini-B Connector that can supply a regulated 5V to power the board and establish serial communication with a computer to program the microcontroller and read data from it.
- Voltage Regulator:
- The on board LDOLow Dropout Regulator voltage regulator is an LM1117IMPX-5.0 PMICPower Management Integrated Circuit (PMIC) that outputs a steady 5V to the MCUMicrocontroller Unit and other components.
- SS1P3L Diode:
- The SS1P3L is a 30V 1.5A Schottky diode that provides a method to select power from either the on board 5V regulator or 5V coming from the USB port. If a voltage is present on both, it prevents the on board 5V from conducting to USB.
- MF-FSMF050 PTC Polyfuse:
- The MF-FSMF050 is a PTCPositive Temperature Coefficient polyfuse with a shut-off limit of 500mA. The fuse is on the power input line of the USB port in case the microcontroller plus any connected devices draw more than 500mA, where it will trip the polyfuse and open the circuit to protect the device (computer) the USB is connected to. The polyfuse is self-resettable and will reset when the current drops below 500mA.
- FT232RL USB UART IC:
- The FTDIFuture Technology Devices International FT232RL chip is a USB to UARTUniversal Asynchronous Receiver-Transmitter interface that acts as a bridge between the computer's USB port and the main processor's serial port. This chip also outputs a regulated +3.3V for the 3.3V pin.
- Reset Button:
- The reset button restarts your program from the beginning when pushed, which is the same as unplugging the board and plugging it back in. When you reset the board the on-board LEDLight Emitting Diode labeled "L" (connected to pin 13) should flash a couple of times while it's in the bootloader before it runs your program.
- Onboard LEDLight Emitting Diodes:
-
There are 4 onboard LEDs with the following labels.
- ON: Power LED that turns on when the board is powered
- L: Built-In LED connected to pin 13 that can be controlled through programming with the name LED_BUILTIN. When you reset the board, this LED should flash a couple of times while it's in the bootloader before it runs your program.
- TX: Flashes when data is being transmitted through the USB serial port. The TX LED does not flash for transmitting serial data on the TX pin 1.
- RX: Flashes when data is being received through the USB serial port. The TX LED does not flash for receiving serial data on the RX pin 0.
- ATmega328P MCUMicrocontroller Unit:
-
The ATmega328P MCU IC is the brains of the Arduino Nano. The "328P" in the name means 32 for 32KB
of flash memory, 8 for 8-bit architecture (data bus), and P for
"Pico-power" (i.e., consumes less power under certain circumstances).
This IC is connected to the board by a socket so it can be removed and replaced without desoldering the chip.
- It is clocked using an external 16MHz ceramic resonator (CSTCE16M0V53-R0) with a max speed of 20MHz.
- For timing and interrupts, this MCUMicrocontroller Unit has two 8-bit Timers, one 16-bit Timer, and one Watchdog Timer (WDTWatchdog Timer).
- Memory consists of 2048 bytes SRAMStatic Random Access Memory, 1KB EEPROMElectrically Erasable Programmable Read-Only Memory, and 32KB Flash programming memory (of which 0.5KB is used by the bootloader).
- It can be interfaced with digital I/OInput/Output, PWMPulse-Width Modulation output, analog inputs, and communication protocols such as UARTUniversal Asynchronous Receiver-Transmitter, I2CInter-Integrated Circuit. Also referred to as IIC or I2C., and SPISerial Peripheral Interface.
- ICSPIn Circuit Serial Programming for ATmega328P MCUMicrocontroller Unit:
-
The ICSPIn Circuit Serial Programming 6-pin header for ATmega328P MCUMicrocontroller Unit allows you to directly upload code
from any external programmers and debugging. Typically, you would connect the board to the computer
USBUniversal Serial Bus port and upload your code from the Arduino IDEIntegrated Development Environment (IDE) is a software application that helps develop software code efficiently. on your computer into the
Flash memory of the microcontroller. However, if you have a bad bootloader, you will need to install the
bootloader through the ICSPIn Circuit Serial Programming from an external programmer or use another Arduino board as an
ISPImage Signal Processor. A hardware block that can, for example, turn raw (Bayer) camera images into full color images (either RGB or YUV)
(ArduinoISP).
The bootloader is basically a .hex file that runs when you turn on the board (similar to the BIOSBasic Input/Output System that runs on your computer). The bootloader first checks to see if the computer is trying to upload a program and if so then transfers the program into the ICIntegrated Circuits memory and runs the program. If the computer is not trying to upload code, it runs the code that's already stored in memory.
Pinout
The Arduino Nano has pins for Power, Digital I/OInput/Output (including PWMPulse-Width Modulation and serial communication), Analog Inputs, and ICSPIn Circuit Serial Programming. Many of the I/O pins are multi-functional that are configured in software to be digital, analog, or communication pins.
- Power Pins:
- The Vin pin is where you can directly connect an input power supply line into the board. The 3.3V pin and 5V pins provide output power to external devices when the board is supplied power over USB.
- Digital I/O Pins:
- There are 20 digital I/O pins named D0 - D19.
- Analog Pins:
- There are 7 analog input pins named A0 - A7.
- Communication Pins:
-
Serial communications pins for UART, I2C, and SPI are:
- UART: (RX0, TX0)
- I2C: (SDA, SCL)
- SPI: (MOSI, MISO, SS, SCK)
- Port Names:
- The ATmega328P has 3 ports (B, C, and D) that can be accessed directly for lower-level and faster manipulation of the I/O pins. Port B consists of the pin labeled PB0 - PB5, Port C are pins PC0 - PC5, and Port D are pins PD0 - PD7.
Power
Input Power
There are 3 ways to power the Arduino Nano Board:
- USB Mini-B connector with 5V DC (500mA max)
- Vin Pin with a voltage range of 6V to 12V 2A DC (no reverse polarity protection)
- 5V Pin with an externally regulated 5V DC source (no reverse polarity protection)
- USB Port:
- The USBUniversal Serial Bus port is a USBUniversal Serial Bus 2.0 Mini-B connector that can supply a regulated 5V±5% to power the board. The USBUniversal Serial Bus port has a thermal PTCPositive Temperature Coefficient polyfuse (MF-FSMF050) with a shut-off limit of 500mA. Any connected devices that draw more than this will trip the polyfuse and open the circuit to protect the device (computer) the USB is connected to. The polyfuse is self-resettable and will reset when the current drops below 500mA.
- Vin Pin:
- The Vin pin is where you can directly connect a power supply line into the board. The input voltage range of 5V to 12V DC goes directly to the 5V regulator's input and there is no reverse polarity protection so caution must be taken when connecting the positive and negative terminals of the power supply (positive pole must be connected to the Vin socket and the negative one to the GND).
- 5V Pin:
- The 5V pin is another place where you can directly connect a power supply line into the board. It is directly connected to the regulator's output. Since it bypasses the internal regulator, an external stable 5V source is needed. Furthermore, there is no form of protection on the 5V pin, since its downstream of the protection diode and PTCPositive Temperature Coefficient fuse.
Output Power
There are two pins available to power external devices from the Arduino Nano board.
- 3.3V Pin
- 5V Pin
- 3.3V Pin:
- This pin outputs a regulated +3.3V from the FT232RL chip and can source a maximum current of 50mA.
- 5V Pin:
-
This pin outputs a regulated +5.0V from the LM1117IMPX-5.0 regulator. The amount
of current the pin can source depends on the power source of the Nano board minus the current consumption of
the onboard components (typically less than 50mA) and any connected devices.
If powering the Nano board from the USB port, then its current is limited to 100mA for a passive hub and 500mA for a normal USB port. If powering the Nano from Vin, the LM1117IMPX-5.0 regulator spec has a maximum rating of 800mA, but its current rating drops quickly with increasing input voltage and thermal dissipation, which is going to bring it down to around the 400mA to 500mA range.
Digital I/O
There are 20 pins total that can function as 0V or 5V digital I/O pins with the capability of being programmed as either input or output using the Arduino Library pinMode(), digitalRead(), and digitalWrite() functions. All of these digital pins are capable of sourcing or sinking 40mA of current. They also have an additional feature of setting an internal pull-up resistor of 20KΩ to 50KΩ in software.
- Pins D0 - D12:
- The pins labeled D0 through D12 are dedicated digital logic pins.
- Pin D13:
- Digital pin D13 is harder to use as a digital input than the other digital pins because it has an LEDLight Emitting Diode and resistor attached to it that's soldered to the board on most boards. If you enable its internal pull-up resistor, it will hang at around 1.7V instead of the expected 5V because the onboard LED and series resistor pull the voltage level down, meaning it always returns LOW. If you must use pin D13 as a digital input, set its pinMode() to INPUT and use an external pull-down resistor.
- Pins D14 - D19:
- The six pins D14 through D19, although analog pins (A0 - A5), can be configured as digital pins. The pin names can be either D14 - D19 or A0 - A5 in the Arduino code. For example, you can set the mode to read pin D14 by using pinMode(D14, INPUT) and digitalRead(D14) or by referring to the pin name A0 using pinMode(A0, INPUT) and digitalRead(A0).
- PWM Pins:
- Six of the Digital I/O pins (D3, D5, D6, D9, D10, and D11) that have a ~ in front of their names in the figure above are capable of Pulse-Width Modulation (PWMPulse-Width Modulation). They are used to generate pulses with a specified duty cycle to control the brightness of LEDLight Emitting Diodes, control motors, and can provide limited analog-like output. The Arduino Library analogWrite(pin, value) function takes arguments for the pin number to write to and an integer value to set the duty cycle between 0 (always off) and 255 (always on).
- External Interrupt Pins:
- There are two external interrupts on pins D2 and D33 that can be set to trigger on the event of RISING or FALLING or LOW levels. These interrupts can stop the normal flow of the program you have running and run a different process. The ATmega328P has 2x 8-bit Timers, 1x 16-bit Timer, and 1x Watchdog Timer (WDTWatchdog Timer) that are used to detect and/or capture external timing events or generate timing events to control external devices.
Analog Inputs
The Arduino Nano has 7 analog pins (A0, A1, A2, A3, A4, A5, and A6) that can read between 0V and 5V analog signals into a 10-bit ADCAnalog-to-Digital Converter (ADC, A/D, or A-to-D) in the ATmega328P MCUMicrocontroller Unit. This converter scales an analog signal in a range of 0 to 1023, with a resolution between readings of 5 volts per 1024 units (4.9mV per unit). The Arduino Library analogRead() function takes about 100 microseconds to read an analog input, with a maximum reading rate of about 10,000 times a second.
Communication
The Arduino Nano board has standard communication I/OInput/Output for UARTUniversal Asynchronous Receiver-Transmitter, I2CInter-Integrated Circuit. Also referred to as IIC or I2C., and SPISerial Peripheral Interface. The pin locations are shown in the figure below.
UART
The digital pins (D0, D1) also function as UART hardware serial pins (RX0, TX1), respectively. There is only one hardware UART serial port on the Arduino Nano board where the pins (RX0, TX1) are physically connected to the FT232RL chip for USB communication, so you cannot use the (RX0, TX1) pins if you are already using the USB to send/receive data to a computer or other device. However, other digital pins can be used to emulate UART (a technique known as Bit Banging). There are libraries available, like the Arduino SoftwareSerial Library, that make this emulation more convenient to interact with serial interfaces.
More details on how UART works can be found in the UART Communication article below.
I2C
The 2 digital pins for I2C communication are SDASerial Data Line (A4/D18) and SCLSerial Clock (SCL) is the output clock signal line from the master device. Also referred to as SCK, SCLK, or CLK. (A5/D19). I2C operates on a synchronous bus for half-duplex communication over a short distance. I2C uses a multi-master/multi-slave configuration that gives the Arduino Nano the capability of controlling a network of devices (e.g., sensors, LCDLiquid Crystal Display, memory modules, etc.) with just two data pins and software such as the Wire Library that comes with the Arduino IDE.
More details on how I2C works can be found in I2C Communication article below.
SPI
The 4 digital pins for SPI communication are MOSIMaster Out Slave In (MOSI) is the SPI data output line from the master device (D11), MISOMaster In Slave Out (MISO) is the SPI data output line from the slave device (D12), SSSlave Select (SS) is the SPI output line from the master device to indicate that data is being sent. Also referred to as Chip Select (CS). (D10), and SCKSerial Clock line (D13). SPI provides full-duplex synchronous serial communication at high speeds over short distances used for interfacing the Arduino Nano with peripheral devices such as sensors, RTCReal-Time Clocks, LCDLiquid Crystal Displays, external memory modules, and wireless transceiver modules.
One benefit of SPI is data can be transferred in a continuous stream without interruption at higher speeds compared to UART and I2C where data is sent in packets that are limited to a specific number of bits. SPI also offers full-duplex communication where data can be sent and received at the same time, in contrast to UART and I2C that are half-duplex where data can be only sent or received in one direction at a time.
More details on how SPI works can be found in SPI Communication article below.
Accessories
The Arduino Nano board comes with straight male pin headers that fit onto a breadboard. However, if you are not using a breadboard, the pins on the Nano are not as easy to plug in connectors like the Arduino Uno R3. Expansion boards make the pins more accessible and the ones with screw terminals make the connections more secure.
The Arduino Nano Screw Terminal Adapter (ASX00037) has the following features:
- Double row 2x15 sockets (2.54 pitch) on each side of the Nano
- 16 screw terminal connections (3.5mm pitch for 16AWG to 30 AWG wire) on each side of the Nano
- Prototyping area 9x8 grid (2.54mm pitch) in case you need to add some extra components
Conclusion
The Arduino Nano board specs, layout, and power were shown to help you become more familiar with the board and its capabilities. This board was designed to make it convenient to mount on a breadboard or include in a project with its small form factor.
However, it's not without its limitations compared to other microcontroller boards, with its low 8-bit 16MHz processor, small RAM memory (2048 bytes), UART and USB cannot be used at the same time, and only one processing core.
Products
Options for purchasing the Arduino Nano board and compatible boards are given below.
Created:
05Jul2023 22:59:08 UTC
2023-07-05T22:59:08Z
Updated:
03Sep2024 23:16:57 UTC
2024-09-03T23:16:57Z
- Processor:
- 8-bit 16MHz AVRAVR microcontrollers derives its name from its developers and stands for, Alf-Egil Bogen and Vegard Wollan RISC microcontroller, and is also known as Advanced Virtual RISC. (max speed 20MHz)
- Memory:
- 32KB Flash, 1KB EEPROMElectrically Erasable Programmable Read-Only Memory, and 2048 bytes SRAMStatic Random Access Memory
- Interface:
- 14x Digital I/OInput/Output with 6x PWMPulse-Width Modulation, 8x 10-bit ADCAnalog-to-Digital Converter (ADC, A/D, or A-to-D), 1x UARTUniversal Asynchronous Receiver-Transmitter,1x I2CInter-Integrated Circuit. Also referred to as IIC or I2C., and 1x SPISerial Peripheral Interface
- Boards:
-
- Arduino Nano
- Compatible Boards: MakerFocus, Lafvin, Elegoo, Jameco, DFRobot
Options for purchasing microcontroller boards based on the ATmega328P MCUMicrocontroller Unit are given below.
Created:
11Dec2022 19:49:54 UTC
2022-12-11T19:49:54Z
Updated:
04Sep2024 02:03:04 UTC
2024-09-04T02:03:04Z
- Processor:
- 8-bit 16MHz AVRAVR microcontrollers derives its name from its developers and stands for, Alf-Egil Bogen and Vegard Wollan RISC microcontroller, and is also known as Advanced Virtual RISC. ATmega
- Memory:
- 32KB Flash, 1KB EEPROMElectrically Erasable Programmable Read-Only Memory, and 2048 bytes SRAMStatic Random Access Memory
- Interface:
- Up to 23x Digital I/OInput/Output with 6x PWMPulse-Width Modulation, 8 channel 10-bit ADCAnalog-to-Digital Converter (ADC, A/D, or A-to-D), and UARTUniversal Asynchronous Receiver-Transmitter/I2CInter-Integrated Circuit. Also referred to as IIC or I2C./SPISerial Peripheral Interface
- Boards:
-
- Arduino Uno R3, Nano, Pro Mini
- SparkFun RedBoard, Pro Mini
- Adafruit Pro Trinket, Metro, Metro Mini
(0) Comments
Sign in to leave a comment
Sign In