Arduino Nano

From Wikipedia, the free encyclopedia
Arduino Nano
Arduino Nano with ATmega328P MCU
Developerarduino.cc
ManufacturerMany
TypeSingle-board microcontroller
AvailabilityNano webpage
Operating systemNone
CPUMicrochip AVR (8-bit)
at 16 MHz
Memory2 KB SRAM
Storage32 KB Flash
1 KB EEPROM

The Arduino Nano is an open-source breadboard-friendly microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2008. It offers the same connectivity and specs of the Arduino Uno board in a smaller form factor.[1]

The Arduino Nano is equipped with 30 male I/O headers, in a DIP-30-like configuration, which can be programmed using the Arduino Software integrated development environment (IDE), which is common to all Arduino boards and running both online and offline. The board can be powered through a type-B mini-USB cable or from a 9 V battery.[2]

History[edit]

In 2008, the Arduino Nano was released.

In 2019, Arduino released the Arduino Nano Every, a pin-equivalent evolution of the Nano. It features a ATmega4809 microcontroller (MCU) with three times the RAM.[3]

Technical specifications[edit]

Communication[edit]

The Arduino Nano has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328 provides UART TTL serial (5V) communication, which is available on digital pins 0 (RX) and 1 (TX).

An FTDI FT232RL on the board channels this serial communication over USB and the FTDI drivers (included with the Arduino firmware) provide a virtual com port to software on the computer. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board flash when data is being transmitted via the FTDI chip and the USB connection to the computer (but not for serial communication on pins 0 and 1). A SoftwareSerial library allows for serial communication on any of the Nano's digital pins. The ATmega328 also supports I2C and SPI communication. The Arduino software includes the Wire library to simplify use of the I2C bus.[4]

Automatic (software) reset[edit]

Rather than requiring a physical press of the reset button before an upload, the Arduino Nano is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the FT232RL is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip.[4]

This setup has other implications. When the Nano is connected to a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Nano. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened.[4]

Arduino board comparison[edit]

The following table compares official Arduino boards, and has a similar layout as a table in the Arduino Uno article. The table is split with dark bars into three high-level microcontroller groups: 8-bit AVR cores, 32-bit ARM Cortex-M cores, and 32-bit ESP32 microcontrollers. Though 3rd-party boards have similar board names it doesn't automatically mean they are 100% identical to official Arduino boards. 3rd-party boards often have a different voltage regulator / different USB-to-UART chip / different color solder mask, and some have a different USB connector or additional features, too.

Board
Name
& Part#
Board
Size
Group
Board
Commun-
ication
MCU
Part#
& Pins
MCU
I/O
Voltage
MCU
Core
MCU
Clock
MCU
Flash
MCU
SRAM
MCU
EEPROM
MCU
USART
& UART
MCU
SPI
MCU
I²C
MCU
Other Bus
Peripherals
MCU Timers
32/24/16/8
/WD/RT/RC
MCU
ADC
& DAC
MCU
Engines
Nano,[6]
A000005[7]
Nano USB-Mini-B ATmega328P,[8]
32 pin
5V
(1.8-5.5V)
8bit AVR 16 MHz* 32 KB 2 KB 1 KB 1, 0 1 1 None 0, 0, 1, 2,
WD
10bit,
None
None
Nano Every,[9]
ABX00028[10]
Nano USB-Micro-B ATmega4809,[11]
48 pin
5V
(1.8-5.5V)
8bit AVR 20 MHz 48 KB 6 KB 0.25 KB 4*, 0 1 1 None 0, 0, 5, 0,
WD, RT
10bit,
None
None
Nano 33 IoT,[12]
ABX00027[13]
Nano USB-Micro-B,
WiFi,
Bluetooth
ATSAMD21G18,[14]
48 pin
3.3V
(1.62-3.63V)
32bit ARM
Cortex-M0+
48 MHz 256 KB 32 KB None 6*, 0 None None USB-FS,
I²S*
0, 4, 5, 0,
WD, RC,
24bit SysTick
12bit,
10bit
DMA x12,
CRC32,
Touch
Nano RP2040
Connect
,[15]
ABX00052[16]
Nano USB-Micro-B,
WiFi,
Bluetooth
RP2040,[17]
56 pin
3.3V
(1.62-3.63V)
32bit ARM
Cortex-M0+
(dual core)
133 MHz
both
cores
None
+ bootrom
+ 16 MB (ext)
264 KB None 0, 2* 2* 2* USB-FS,
8pin Prog I/O
4, 0, 8, 0,
WD, RC,
24bit SysTick
12bit,
None
DMA x2
Nano ESP32,[18]
ABX00092[19]
Nano USB-C,
WiFi,
Bluetooth
NORA-W106-10B[20]
82 pad Module,
containing
ESP32-S3 IC[21]
3.3V
(3.0-3.6V)
32bit
Xtensa LX7
(dual core)
(FPU)
240 MHz
both
cores
None
+ bootrom
+ 16 MB (ext)
512 KB SRAM
+ 16 KB SRAM
+ 8 MB PSRAM
None
+ 224 byte
OTP eFuse
0, 3* 4* 2* USB-FS,
CAN-A/B*,
I²S*, SD*
0, 0, 0, 0,
WD, 54bit x4,
52bit System
12bit x2,
None
DMA x10,
Crypto, Touch,
LCD*, Camera*,
WiFi, Bluetooth,
CoProcessor x2
Arduino Nano Every board with ATmega4809 MCU
Arduino Nano 33 IoT board with ATSAMD21G18 MCU
Nano RP2040 Connect board with RP2040 MCU
Table notes
  • Board Size Group column - Simplified board dimension size grouping: Nano means similar size as Arduino Nano board. This table has a similar layout as a table in the Arduino Uno article.
  • MCU Part# / Pins column - MCU means microcontroller. All MCU information in this table was sourced from official datasheets in this column. The pin count is useful to determine the quantity of internal MCU features that are available. All MCU hardware features may not be available at the Nano header pins because the MCU IC package has more pins than the 30 header pins on the Nano board (*).
  • MCU I/O Voltage column - Microcontrollers on official Arduino boards are powered at a fixed voltage of either 3.3 or 5 volts. The voltage rating of the microcontroller is stated inside parenthesis, though Arduino boards don't support this full range.
  • MCU Clock column - MHz means 106 Hertz. The ATmega328P MCU is rated for a maximum of 20 MHz, but the Nano board operates at 16 MHz.
  • MCU memory columns - KB means 1024 bytes, MB means 10242 bytes.
  • MCU SRAM column - SRAM size doesn't include caches or peripheral buffers.
  • MCU USART/UART column - USARTs are software configurable to be a: UART / SPI / other peripherals (varies across MCUs).
  • MCU Other Bus Peripherals column - For USB bus, "FS" means Full Speed (12Mbps max), "HS" means High Speed (480Mbps max). For CAN bus, "A" means CAN 2.0A, "B" means CAN 2.0B, "FD" means CAN-FD. The RP2040 (Nano RP2040 Connect board) has a programmable I/O controller that can emulate various buses. Some buses require additional external circuitry to operate.
  • MCU Timers column - The numbers in this column are the total number of each timer bit width, for example, the ATmega328P has one 16-bit timer and two 8-bit timers. "WD" means Watchdog timer, "RT" means Real Time Counter/Timer, "RC" means Real Time Clock (sec/min/hr). The 24-bit SysTick timer(s) inside the ARM cores aren't included in the 24-bit total in this column. PWM features are not documented in this table.

See also[edit]

References[edit]

  1. ^ "Getting Started with the Arduino Nano". Arduino.
  2. ^ "Arduino Nano". Arduino Official Store. Archived from the original on 2020-12-08. Retrieved 2020-11-25.
  3. ^ "Deep dive with Dario: Get to know the Arduino Nano Every". Arduino Blog. 31 May 2019. Retrieved 2020-11-25.
  4. ^ a b c d "Arduino Nano". arduino.cc. Archived from the original on 2020-11-30. Retrieved 2020-11-25.
  5. ^ Aqeel, Adnan (2018-06-25). "Introduction to Arduino Nano". The Engineering Projects. Retrieved 2021-12-08.
  6. ^ "Board; Nano; Docs". Arduino. Archived from the original on May 17, 2023.
  7. ^ "Board; Nano; Store". Arduino.
  8. ^ "MCU; ATmega328P; Docs". Microchip. Archived from the original on March 27, 2023.
  9. ^ "Board; Nano Every; Docs". Arduino. Archived from the original on May 13, 2023.
  10. ^ "Board; Nano Every; Store". Arduino.
  11. ^ "MCU; ATmega4809; Docs". Microchip. Archived from the original on December 6, 2022.
  12. ^ "Board; Nano 33 IoT; Docs". Arduino. Archived from the original on May 9, 2023.
  13. ^ "Board; Nano 33 IoT; Store". Arduino.
  14. ^ "MCU; ATSAMD21G18; Docs". Microchip. Archived from the original on February 1, 2023.
  15. ^ "Board; Nano RP2040 Connect; Docs". Arduino. Archived from the original on May 13, 2023.
  16. ^ "Board; Nano RP2040 Connect; Store". Arduino.
  17. ^ "MCU; RP2040; Docs". Raspberry Pi. Archived from the original on May 13, 2023.
  18. ^ "Board; Nano ESP32; Docs". Arduino. Archived from the original on October 29, 2023.
  19. ^ "Board; Nano ESP32; Store". Arduino.
  20. ^ "MCU; NORA-W10; Docs". U-Blox. Archived from the original on October 29, 2023.
  21. ^ "MCU; ESP32-S3; Docs". Espressif. Archived from the original on October 29, 2023.

Further reading[edit]

External links[edit]

Programming Cheat Sheets