You are on page 1of 4

25/7/2016 ArduinoArduinoBoardNano

ArduinoArduinoBoardNano

Overview

NOTE:thisproductiscurrentlyretiredandthedocumentationwillnotbekeptuptodate

TheArduinoNanoisasmall,complete,andbreadboardfriendlyboardbasedontheATmega328(Arduino
Nano3.x)orATmega168(ArduinoNano2.x).IthasmoreorlessthesamefunctionalityoftheArduino
Duemilanove,butinadifferentpackage.ItlacksonlyaDCpowerjack,andworkswithaMiniBUSBcable
insteadofastandardone.TheNanowasdesignedandisbeingproducedbyGravitech.

Getinspired
DiscoversomeArduinoNanoprojectsfeaturedfromArduinoProjectHub,ourtutorialplatform:

SchematicandDesign

ArduinoNano3.0(ATmega328):schematic,Eaglefiles.

ArduinoNano2.3(ATmega168):manual(pdf),Eaglefiles.Note:sincethefreeversionofEagledoesnot
handlemorethan2layers,andthisversionoftheNanois4layers,itispublishedhereunrouted,souserscan
openanduseitinthefreeversionofEagle.

Specifications:

Microcontroller AtmelATmega168orATmega328

OperatingVoltage(logic
5V
level)

InputVoltage
712V
(recommended)

InputVoltage(limits) 620V

DigitalI/OPins 14(ofwhich6providePWMoutput)

AnalogInputPins 8

DCCurrentperI/OPin 40mA

16KB(ATmega168)or32KB(ATmega328)ofwhich2KBusedby
FlashMemory
bootloader

https://www.arduino.cc/en/Main/ArduinoBoardNano 1/4
25/7/2016 ArduinoArduinoBoardNano

SRAM 1KB(ATmega168)or2KB(ATmega328)

EEPROM 512bytes(ATmega168)or1KB(ATmega328)

ClockSpeed 16MHz

Dimensions 0.73"x1.70"

Length 45mm

Width 18mm

Weigth 5g

Power:

TheArduinoNanocanbepoweredviatheMiniBUSBconnection,620Vunregulatedexternalpowersupply
(pin30),or5Vregulatedexternalpowersupply(pin27).Thepowersourceisautomaticallyselectedtothe
highestvoltagesource.

Memory

TheATmega168has16KBofflashmemoryforstoringcode(ofwhich2KBisusedforthebootloader)the
ATmega328has32KB,(alsowith2KBusedforthebootloader).TheATmega168has1KBofSRAMand512
bytesofEEPROM(whichcanbereadandwrittenwiththeEEPROMlibrary)theATmega328has2KBof
SRAMand1KBofEEPROM.

InputandOutput

Eachofthe14digitalpinsontheNanocanbeusedasaninputoroutput,usingpinMode(),digitalWrite(),and
digitalRead()functions.Theyoperateat5volts.Eachpincanprovideorreceiveamaximumof40mAandhas
aninternalpullupresistor(disconnectedbydefault)of2050kOhms.Inaddition,somepinshavespecialized
functions:

Serial:0(RX)and1(TX).Usedtoreceive(RX)andtransmit(TX)TTLserialdata.Thesepinsare
connectedtothecorrespondingpinsoftheFTDIUSBtoTTLSerialchip.
ExternalInterrupts:2and3.Thesepinscanbeconfiguredtotriggeraninterruptonalowvalue,arisingor
fallingedge,orachangeinvalue.SeetheattachInterrupt()functionfordetails.
PWM:3,5,6,9,10,and11.Provide8bitPWMoutputwiththeanalogWrite()function.
SPI:10(SS),11(MOSI),12(MISO),13(SCK).ThesepinssupportSPIcommunication,which,although
providedbytheunderlyinghardware,isnotcurrentlyincludedintheArduinolanguage.
LED:13.ThereisabuiltinLEDconnectedtodigitalpin13.WhenthepinisHIGHvalue,theLEDison,
whenthepinisLOW,it'soff.

TheNanohas8analoginputs,eachofwhichprovide10bitsofresolution(i.e.1024differentvalues).Bydefault
theymeasurefromgroundto5volts,thoughisitpossibletochangetheupperendoftheirrangeusingthe

https://www.arduino.cc/en/Main/ArduinoBoardNano 2/4
25/7/2016 ArduinoArduinoBoardNano

analogReference()function.Analogpins6and7cannotbeusedasdigitalpins.Additionally,somepinshave
specializedfunctionality:

I2C:A4(SDA)andA5(SCL).SupportI2C(TWI)communicationusingtheWirelibrary(documentationon
theWiringwebsite).

Thereareacoupleofotherpinsontheboard:

AREF.Referencevoltagefortheanaloginputs.UsedwithanalogReference().
Reset.BringthislineLOWtoresetthemicrocontroller.Typicallyusedtoaddaresetbuttontoshieldswhich
blocktheoneontheboard.

Communication

TheArduinoNanohasanumberoffacilitiesforcommunicatingwithacomputer,anotherArduino,orother
microcontrollers.TheATmega168andATmega328provideUARTTTL(5V)serialcommunication,whichis
availableondigitalpins0(RX)and1(TX).AnFTDIFT232RLontheboardchannelsthisserialcommunication
overUSBandtheFTDIdrivers(includedwiththeArduinosoftware)provideavirtualcomporttosoftwareon
thecomputer.TheArduinosoftwareincludesaserialmonitorwhichallowssimpletextualdatatobesenttoand
fromtheArduinoboard.TheRXandTXLEDsontheboardwillflashwhendataisbeingtransmittedviathe
FTDIchipandUSBconnectiontothecomputer(butnotforserialcommunicationonpins0and1).

ASoftwareSeriallibraryallowsforserialcommunicationonanyoftheNano'sdigitalpins.

TheATmega168andATmega328alsosupportI2C(TWI)andSPIcommunication.TheArduinosoftware
includesaWirelibrarytosimplifyuseoftheI2Cbusseethedocumentationfordetails.TousetheSPI
communication,pleaseseetheATmega168orATmega328datasheet.

Programming

TheArduinoNanocanbeprogrammedwiththeArduinosoftware( download).Select"ArduinoDiecimila,
Duemilanove,orNanow/ATmega168"or"ArduinoDuemilanoveorNanow/ATmega328"fromtheTools>
Boardmenu(accordingtothemicrocontrolleronyourboard).Fordetails,seethereferenceandtutorials.

TheATmega168orATmega328ontheArduinoNanocomespreburnedwithabootloaderthatallowsyouto
uploadnewcodetoitwithouttheuseofanexternalhardwareprogrammer.Itcommunicatesusingtheoriginal
STK500protocol(reference,Cheaderfiles).

YoucanalsobypassthebootloaderandprogramthemicrocontrollerthroughtheICSP(InCircuitSerial
Programming)headerusingArduinoISPorsimilarseetheseinstructionsfordetails.

Automatic(Software)Reset

Ratherthanrequiringaphysicalpressoftheresetbuttonbeforeanupload,theArduinoNanoisdesignedina
waythatallowsittoberesetbysoftwarerunningonaconnectedcomputer.Oneofthehardwareflowcontrol
lines(DTR)oftheFT232RLisconnectedtotheresetlineoftheATmega168orATmega328viaa100

https://www.arduino.cc/en/Main/ArduinoBoardNano 3/4
25/7/2016 ArduinoArduinoBoardNano

nanofaradcapacitor.Whenthislineisasserted(takenlow),theresetlinedropslongenoughtoresetthechip.
TheArduinosoftwareusesthiscapabilitytoallowyoutouploadcodebysimplypressingtheuploadbuttonin
theArduinoenvironment.Thismeansthatthebootloadercanhaveashortertimeout,astheloweringofDTR
canbewellcoordinatedwiththestartoftheupload.

Thissetuphasotherimplications.WhentheNanoisconnectedtoeitheracomputerrunningMacOSXor
Linux,itresetseachtimeaconnectionismadetoitfromsoftware(viaUSB).Forthefollowinghalfsecondor
so,thebootloaderisrunningontheNano.Whileitisprogrammedtoignoremalformeddata(i.e.anything
besidesanuploadofnewcode),itwillinterceptthefirstfewbytesofdatasenttotheboardafteraconnectionis
opened.Ifasketchrunningontheboardreceivesonetimeconfigurationorotherdatawhenitfirststarts,make
surethatthesoftwarewithwhichitcommunicateswaitsasecondafteropeningtheconnectionandbefore
sendingthisdata.

https://www.arduino.cc/en/Main/ArduinoBoardNano 4/4

You might also like