5 Most Common Arduino Nano Clone Problems and Their Solutions

Introduction: 5 Most Common Arduino Nano Clone Problems and Their Solutions

we all know that Arduino is so important for Hobbyists like you and me, who love to make our own electronics based projects, or say any project, we all want to customize our own projects according to our purpose, but buying an original (genuine) arduino isn't quite possible for everyone. Arduino being open-source, has many copies legally avialable in market to purchase like the one's found on Ebay for around 3$, which is quite reasonable, so these CLONE NANO's are associated with some problems, because of alternate parts being used to make it cheaper, so in this instructable, we will identify and solve 5 major arduino nano clone problems.

Step 1: Video Representation.

here is a video which you can follow for steps and visual representation of settings performed on computer and Nano board.

Step 2: Understanding the Problem Associated to Your Board. (index)

there are 5 main problems associated with clone nano.

1.Missing Serial Communication (CH340) drivers.

when you are unable to select the arduino port on your I.D.E., it would be possibly because of missing drivers.

2.Improper Port selected.

when you don't select proper port on which your arduino is connected to, you would find that your code in IDE isn't uploading. also it shows error " programmer isnt responding "


3.Improper Board Settings.

when you haven't selected the required settings on I.D.E., you would observe this problem of code not getting uploaded on your arduino clone.

4.Missing Bootloader.

even after applying all settings properly, when you cant upload your code, its possibly because of missing bootloader on your Atmega328p chip.

5.Static Damaged.

even after setting everything perfectly fine, with Boot-Loader installed, if you cant upload your code, that means your board has faced some serious static damage while shipping.

Step 3: Missing Serial Communication Drivers (CH340 Drivers)

the arduino nano ( genuine) version, has a FTDI's FT232Rl serial communication chip, which is replaced with similar chinese version of serial communication chip called as CH340, which isnt recognized by our drivers, beacuse windows doesnt has this CH340 drivers preinstalled.

to fix this problem,

1. got to the website

http://www.wch.cn/download/CH341SER_ZIP.html to download the drivers,

note

this is official website, but it is in chinese, you can google CH340 drivers for alternative english website for downloading the CH340 drivers.

2. Install Drivers.


depending on your Operating System on computer, select the version x32 or x64 drivers, then click install.

3.Check if Board is Discovered.

now once you have installed the CH340 drivers, check if the IDE discovers your device, means the port option will now be available to select.

.

.

.

.

once the port option is available, try to upload the blink example from the IDE>File>Example>Basic>Blink, if the code is uploaded successfully, it means that you are good to go, your arduin nano clone is set successfully.

if not, follow the steps further.

https://www.arduino.cc/en/Tutorial/Blink

Step 4: Improper Port Selected

when you select improper port on IDE, you would still be unable to upload your code on arduino, in that case, you should follow these steps.

1. press windows button.


2. open the device manager.


3.Expand ( Ports and LPT).


4.select USB-Seial CH340


when you open the USB-Serial CH340 port, the COM port number will be mentioned there.

5.open IDE


under Tools> Port> select your port number which you found out from the device manager.

6.Test Program


upload BLINK example from the basic category under examples, upload the program.

.

.

.

.

.

Note

if the sketch is successful uploaded, your board is set and ready to use, if there are errors in uploading, follow the further steps.

Step 5: Improper Board Settings.

when you do not select the proper required board settings, you wouldn't be able to upload any code onto your Arduino board, so copy these settings on your IDE.

1.Select Board.


under tools menu, board option, select the ARDUINO NANO option from the list.


2.Select Processor.

under tools menu, processor option, select the ATmega32p option from the list.

3.Select Port.

under tools menu, port option, select (your com port number) option from the list.

4.Select Programmer.


under tools menu, Programmer option, select "Arduino as ISP" option from the list.

.

.

.

now test your arduino board using the same blink example.

.

NOTE

if you still cant upload your code, it is because your ATmega328p is missing BOOT-LOADER, follow the steps further to fix it.


Step 6: Missing BOOT-LOADER

if all the above steps are not working for you, that means your Clone Nano is missing the Boot-Loader.

Bootloader is what makes this ATmega328p chip what we are familiar with as "Arduino",

sometimes the clone arduinos are just copy of hardware and they miss to load the arduino bootloader into the ATmega328p,

so you would require a few things before we bootload this nano

1. working ARDUINO UNO.

2. Male to Female jumper Wires(6).



we will use Master Slave Serial Peripheral Interfacing (S.P.I.) method to bootload the arduino board.



Step 1: Connections

make the connections on arduino uno to nano in the following manner.

nano ICSP UNO

pin 1 - D12

pin 2 - VCC

pin 3 - D13

pin 4 - D11

pin 5 - D10

pin 6 - GND

.

connection diagram and ICP Pin out attached.




Step 2: Open Arduino ISP


from the file menu, under examples, select ArduinoISP example.

Step 3: Copy Settings


copy these settings in the arduino IDE

1. under tools menu, board option, select the ARDUINO UNO option from the list.

2. under tools menu, port option, select (your com port number) option from the list.

3.under tools menu, Programmer option, select "Arduino as ISP" option from the list.

Step 4: Upload the ArduinoISP code on Master UNO


once the above mentioned settings are copied on your IDE, upload the code on your master UNO.

Step 5: Change Target Board


once the example is uploaded, Change the Board type from Aruino UNO to Arduino NANO, keeping the rest settings intact.



Step 6: Upload Bootloader.


once the board type is changed, from UNO to NANO, select the "BOOT-LOADER" option from the tools menu.

.

Note

you should see serial rx and tx L.E.D. flickering while burning the Bootloader.

once done uploading, you should be able to upload your code onto Clone NANO.

Step 7: Static Damage

Even after following all the above steps, if you are unable to get your code onto arduino that could be possibly because of Static Damage.

Electrostatic discharge (ESD) is the sudden flow of electricity between two electrically charged objects caused by contact, an electrical short, or dielectric breakdown. A buildup of static electricity can be caused by tribocharging or by electrostatic induction. The ESD occurs when differently-charged objects are brought close together or when the dielectric between them breaks down.

While shipping the circuit, there might be chance of board getting damaged, so in that case, get you can change your ATMEGA328p chip which is a SMD package,

And if you have no idea about smd soldering, check out my video about soldering which is linked in description below.

if your supplier allows replacement, you should propably avoid changing the atmega 328p chip and rather get your board replaced.

still if you don’t have any luck in setting up your arduino, do mention your error in comments section, we will try to solve it together!

Step 8: Conclusion

by following these simple yet effective ways of updating driver, setting up board properly and bootlaoding will solve most of the arduino nanos common problems.

in case of any doubts or confusion, feel free to comment down.

thank you

Be the First to Share

    Recommendations

    • Battery Powered Contest

      Battery Powered Contest
    • Plywood Challenge

      Plywood Challenge
    • Plastic Contest

      Plastic Contest

    36 Discussions

    0
    ddekaylapollard
    ddekaylapollard

    2 months ago

    Hii sir please help me out iam getting error while uploading the code

    Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

    Sketch uses 6648 bytes (21%) of program storage space. Maximum is 30720 bytes.
    Global variables use 53 bytes (2%) of dynamic memory, leaving 1995 bytes for local variables. Maximum is 2048 bytes.
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20
    An error occurred while uploading the sketch


    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    0
    pamies
    pamies

    Reply 16 days ago

    I just read this and after trying everything I read about potential solutions without any success, I found a solution for my "nanos" (several of them). I just said to the IDE that they were "Arduino Duemilanove or Diecimile" and it worked perfectly. May be you can try this...

    0
    jassin.stolarczyk
    jassin.stolarczyk

    Tip 24 days ago

    i solved this problem by downloading the driver and going to "tools" then to "processor" and changing it to ATmega328P (Old Bootloader)

    0
    Mikulik
    Mikulik

    8 weeks ago

    Lots of good suggestions, and I still recommend not changing the AVR fuses (the problem was caused by NANO from Thinary el.). Even according to the Engbedded calculator, if you do not know what you are doing (my case - with the factory settings Atmega328 does not work, but it could be returned).

    1
    jahangirali259
    jahangirali259

    Question 2 months ago

    how to solve this error. I tried your all above given solution

    (problem uploading to board
    Arduino: 1.8.13 (Windows 10), Board: "Arduino Nano, ATmega328P"
    Sketch uses 924 bytes (3%) of program storage space. Maximum is 30720 bytes.
    Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x4e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x4e
    Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#up... for suggestions.
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.)

    0
    ddekaylapollard
    ddekaylapollard

    Answer 2 months ago

    I also want this sir
    Please help me out

    0
    neetubhatt997
    neetubhatt997

    Question 3 months ago on Step 1

    After upload sketch how to upload another sketch on Arduino nano please tell me

    0
    jovm
    jovm

    Answer 2 months ago

    Hi neetubhatt997.
    You can upload the sketch, however, only the last uploaded sketch is active.

    1
    jovm
    jovm

    Question 2 months ago on Introduction

    Hi
    I'm using an arduino nano V3 clone and driver board ULN2003 to control 3 motors.
    These are connecting to the pins 2 to 13 (4 pins for each motor)
    2 motors works properly, on pins 2-3-4-5 and 10 -11-12-13.
    The motor on pins 6-7-8-9, works not properly.
    I checked the connections, boards and motors, the se are OK.
    Testing the pins 6-7-8-9 with a simple script to turn on and off a LED it seems that pin 8 does not work properly.
    This LED is always on. always power to pin 8 when the board is conneting to the power supply.
    What is the reason, is it to fix, or do I need a new board.
    Thanks for reactions.

    0
    visalreddy
    visalreddy

    3 months ago

    Hi,I can upload the blink code properly without errors and it works but when I upload another code where I use servos it uploads perfectly but doesn’t work.even i have changed the servo but doesn’t work.someone please help me

    0
    LarryF24
    LarryF24

    3 months ago

    Followed your instructions,I get error while burning boot loader. Also is there anything i need to commet out int the isp sketch or should it work as is. I am using Windows 10 with Arduino 1.8.42.0 ,using Geniune Arduino Uno to program this nano, thanks

    0
    ecc.urbi0
    ecc.urbi0

    1 year ago

    Dude I did everything that you told but still the code was not uploading. Moreover the red light of pwr is glowing so no damage to the ic and yet not working so Pls suggest me a way such that I could use it.

    0
    MissionCritical
    MissionCritical

    Reply 4 months ago

    try to disconnect the circuit before uploading the code

    0
    MissionCritical
    MissionCritical

    Reply 12 months ago

    i think your USB interface chip is either damaged or USB port, because if the Power is reaching the Board, there is no problem in usb cable, try to install drivers if it doesn't work, try different USB port

    0
    yacouba.ouattara
    yacouba.ouattara

    8 months ago on Step 8

    I have tried all of the above but this is what is coming up.



    Arduino: 1.8.11 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"
    Sketch uses 12072 bytes (39%) of program storage space. Maximum is 30720 bytes.
    Global variables use 1030 bytes (50%) of dynamic memory, leaving 1018 bytes for local variables. Maximum is 2048 bytes.
    C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b57600 -D -Uflash:w:C:\Users\YACOUB~1.OUA\AppData\Local\Temp\arduino_build_942576/MultiWii.ino.hex:i
    avrdude: Version 6.3-20190619
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch
    System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
    Using Port : COM5
    Using Programmer : arduino
    Overriding Baud Rate : 57600
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x0c
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x0c
    avrdude done. Thank you.
    Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#up... for suggestions.
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    0
    MissionCritical
    MissionCritical

    Reply 4 months ago

    try to disconnect the circuit before uploading the code

    0
    jamahan
    jamahan

    7 months ago

    I got a Nano Clone. Connecting to the USB it was dead. Connecting a 9V batt on Vin, it got alive. I found that the problem was caused by a bad soldering on pin 5 of the USB socket.

    0
    MissionCritical
    MissionCritical

    Reply 4 months ago

    thats a point i should add in my next blog, thank you

    0
    CodyC6
    CodyC6

    6 months ago

    Great Tutorial! It was the bootloader for me

    0
    MissionCritical
    MissionCritical

    Reply 4 months ago

    thats great, glad i could help