/** @defgroup boards_arduino-nano Arduino Nano @ingroup boards @brief Support for the Arduino Nano board ## Overview The Arduino Nano is the cheapest member of the Arduino family. It is based on Atmel's AVR architecture and sports an ATmega328p MCU. It is like many Arduinos extensible by using shields. ### MCU | MCU | ATmega328p | |:------------- |:--------------------------------------------- | | Family | AVR/ATmega | | Vendor | Atmel | | RAM | 2 KiB | | Flash | 32 KiB (2 KiB reserved for the bootloader) | | Frequency | 16 MHz | | Timers | 3 (2x 8bit, 1x 16bit) | | ADCs | 6 analog input pins | | UARTs | 1 | | SPIs | 1 | | I2Cs | 1 (called TWI) | | Vcc | 5.0V | | MCU Datasheet | [ATmega328p datasheet](http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf) | | Board Manual | [Board Manual](https://www.arduino.cc/en/uploads/Main/ArduinoNanoManual23.pdf) | ## Flashing the Device Flashing RIOT on the Arduino Nano is quite straight forward, just connect your Arduino Nano via the USB connector to your host computer and type: `make BOARD=arduino-nano flash` This should take care of everything! We use the open `avrdude` tool to write the new code into the ATmega328p's flash ## Using Optiboot You can use the [Optiboot](https://github.com/Optiboot/optiboot) bootloader instead of the stock bootloader for faster programming. Optiboot also is smaller (512 byte instead of 2 KiB), so that 1.5 KiB more program memory is available for RIOT. Refer to the project page for instructions on how to build an flash the bootloader. Don't forgot to also update the fuse settings to set the bootloader size to 256 words (512 bytes). Compile and flash with `make BOARD=arduino-nano BOOTLOADER=optiboot flash` or use `export ARDUINO_NANO_BOOTLOADER=optiboot` in order to not have to specify the bootloader during compilation and flashing. ## Issues ### RIOT Stuck in Reboot Loop If RIOT is stuck in a reboot loop e.g. after restarting the device with the `reboot` shell command, this is likely caused by an [issue with the stock bootloader](https://forum.arduino.cc/index.php?topic=150419.0) that can be solved by using Optiboot as bootloader instead (see above). ## Caution Don't expect having a working network stack due to very limited resources. */