Professional Documents
Culture Documents
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