LOLAN(WeMoss) missing programer, can't burn bootloader on nano

Trying to burn bootloader on nanos using my off brand arduino uno, but there is no programmer under the tools menu on the WeMoss to use. Is there a way around this or do I need to get another board? I need the bootloader.

Hi @thecarpenteir.

I'm not sure I understood correctly what you mean by this. You indicate you want to burn the bootloader on "nanos" using an "off brand arduino uno". That seems straightforward, but how does a "LOLAN(WeMoss)" come into it? You should have the board selection for the "nanos" selected in Arduino IDE, not for some mysterious "LOLAN(WeMoss)" thing.

Please provide a more detailed description to help me to understand it.

I have selected my WeMoss( the off brand arduino uno) as the programmer board to burn the target nano, but there is no programmer in the IDE tools menu of the WeMoss.
I probably will have to pull my MKR wifi 1010 out of another project to use as the programmer.

It is impossible to make any definitive conclusions because you are being so vague and imprecise, so I am forced to take a wild guess:

You selected the wrong board (either an ESP8266 or ESP32). If your board is truly a cheap Chinese Uno derivative board, you should select Tools > Board > Arduino AVR Boards > Arduino Uno from the Arduino IDE menus when you are uploading to the Uno derivative board.

However, when the time comes to select the programmer and perform "Burn Bootloader" operation, you must select the appropriate board selection for the target board , not for the board you are using as an "Arduino as ISP" programmer.


If you want to have success with Arduino and other complex technical endeavors, you're really going to need to force yourself for be more precise. There is a time to have fun being creative with Arduino, but you can only get to that point if you also are able to take a disciplined approach to the technical aspects.

You must get things 100% correct in your code. The compiler is merciless. It isn't going to say "LOL all good dude, I know you meant to write digitalRead instead of digatelRaed". The same goes for electrical circuits.

Even though humans might be able to guess that when you write "LOLAN(WeMoss)" you actual meant "LOLIN(WEMOS)", we still can't guess which of the several different board options that include "LOLIN(WEMOS)" you might be referring to, so it is also in your best interest to be very precise and descriptive when requesting assistance here on the forum.

You might think you are saving time by slamming out a quick sloppy post here riddled with errors and lacking in detail, but I assure you it is the exact opposite. If you take the time to provide all the necessary information clearly, you will often receive a solution from the helpers here in a matter of minutes. Or you can spend days or weeks in frustrating back and forth as the helpers get more and more angry while trying to squeeze the information they need out of you. The choice of how things will go is yours to make.


I think it would also be worth exploring why it is you think this:

Although it is an interesting thing to learn to do for some of us, it is very rare that you actually need to do a "Burn Bootloader" operation on an Arduino board. People often do it after they experience an upload error, but it is very rare that it would solve the cause of that error.

Sometimes the upload error is caused by a simple mistake you made (e.g., selecting the wrong board or port from the Arduino IDE menus), in which case it is much easier to just fix the mistake.

Other times the upload error is caused by the board having experienced irreversible physical damage. A "Burn Bootloader" operation can never repair physical damage.

1 Like

I know not how to upload a program to my new nano from my personal computers USB port without the new nano's bootloader. I have selected my programmer board ( "LOLIN(WeMos) D1 R1)", but there is no programmer under the 'tools' bar. If I try to skip that step and go directly to 'Burn Bootloader' I get "Error while burning the bootloader: Missing programmer" Using WeMoss 5v and gnd and pins13,12,11,with 10 to reset on nano, this last bit pointless without the "programmer" Thanks for your time.
Greg

I already explained it to you:

You need to select the appropriate board selection for the target board in the IDE, not for the programmer board.

I'm also confused about why you have "LOLIN(WeMos) D1 R1" selected when you said in your first post:

the LOLIN(WeMos) D1 R1 is the off brand uno , it IS the primary PROGAMMER board TRYING to be USED to burn the arduino as isp (which is not available on the WeMoss since there is NO PROGRAMMER under the tools menu) nano bootloader. Cannot burn nano bootloader from itself.

If that is what you really have, "off brand uno" is not an accurate description.

The real LOLIN(WeMos) D1 R1 board looks something like this:

It has the same basic board form as an Uno, but is otherwise very different because it has an ESP8266 microcontroller instead of an ATmega328P.

I already tried my best to explain this to you. I don't think I can explain it any more clearly. I recommend you carefully read my previous replies.

I do appreciate your time ptillisch, I am sorry we seem to be having a very hard time communicating. Sorry for the board lingo confusion, but I do need to burn a bootloader to my nano, was wanting to use my Wemoss, which DOES NOT have the NEEDED programmer, to connect my new nano by USB. You write "it is very rare that you actually need to do a "Burn Bootloader" operation on an Arduino board" When I connect nano to pc, I get
"avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x61
Failed uploading: uploading error: exit status 1" I am selecting right board and port
When just using 1 board (nano, again not seeing how it can burn itself) just keeps saying "burning bootloader" forever. So that is why I think I need 2 boards, progammer and the target.

I'm going to ask you to post the full verbose output from an upload attempt.


:exclamation: This procedure is not intended to solve the problem. The purpose is to gather more information.


Please do this:

  1. Select File > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
    The "Preferences" dialog will open.
  2. Uncheck the box next to Show verbose output during: compilation in the "Preferences" dialog.
  3. Check the box next to Show verbose output during: ☐ upload.
  4. Click the "OK" button.
  5. Attempt an upload, as you did before.
  6. Wait for the upload to fail.
  7. You will see a "Upload error: ..." notification at the bottom right corner of the Arduino IDE window. Click the "COPY ERROR MESSAGES" button on that notification.
  8. Open a forum reply here by clicking the "Reply" button.
  9. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code tags icon on toolbar
  10. Press Ctrl+V.
    This will paste the error output from the upload into the code block.
  11. Move the cursor outside of the code tags before you add any additional text to your reply.
  12. Click the "Reply" button to post the output.

basically. I can not upload to the nano without bootloader.
Someone said it " For the new user, a cable from their PC to the Arduino board is about as simple as it gets."

Your WeMos board is NOT ( as all Arduinos ) a programmer out of the box. To turn it into a programmer, you must first load the ArduinoISP sketch, which can be found under File->Examples.
As @ptillisch already explained, after uploading that sketch you must select your target board ( your nano, where you want to burn the bootloader ) within the tools menu. Then you can select 'Arduino as ISP' as the programmer.

Which Nano do you have? There are many very different 'Nano' boards. Usually all of them ( even clones ) come with a bootloader installed. So why do you think you must burn one?
And be aware that your LOLIN(WeMos) D1 R1 is a 3.3V board. If you connect it directly to a 5V board you my damage it.

N.B. If you have a clone of a 'classic' nano ( 328P MCU ) it may be neccessary to select 'old Bootloader' when uploading a sketch.

basically. I can not upload to the nano without bootloader When trying to upload to nano I get

FQBN: arduino:avr:nano
Using board 'nano' from platform in folder: C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core 'arduino' from platform in folder: C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6

Detecting libraries used...
"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs" "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9\sketch\Blink.ino.cpp" -o nul
Generating function prototypes...
"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs" "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9\sketch\Blink.ino.cpp" -o "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Users\the_c\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino" "-IC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs" "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9\sketch\Blink.ino.cpp" -o "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9\sketch\Blink.ino.cpp.o"
Compiling libraries...
Compiling core...
Using precompiled core: C:\Users\the_c\AppData\Local\Temp\arduino\cores\arduino_avr_nano_cpu_atmega328_ecc8f96c0b54c8a2cfe097174d2d862b\core.a
Linking everything together...
"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/Blink.ino.elf" "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9\sketch\Blink.ino.cpp.o" "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/..\..\cores\arduino_avr_nano_cpu_atmega328_ecc8f96c0b54c8a2cfe097174d2d862b\core.a" "-LC:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9" -lm
"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/Blink.ino.elf" "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/Blink.ino.eep"
"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/Blink.ino.elf" "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/Blink.ino.hex"

"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/Blink.ino.elf"
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.
"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v -V -patmega328p -carduino "-PCOM9" -b115200 -D "-Uflash:w:C:\Users\the_c\AppData\Local\Temp\arduino\sketches\E9FD5B46121000D02C62B4D9AD2127D9/Blink.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:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

     Using Port                    : COM9
     Using Programmer              : arduino
     Overriding Baud Rate          : 115200

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
and it just keeps trying to upload forever

Doing as Micro suggested to burn nano, get following error

"C:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v -patmega328p -cstk500v1 -PCOM6 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m

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:\Users\the_c\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

     Using Port                    : COM6
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x7d
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x61
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xf7
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xf5
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xd0
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x26
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xb3
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x34
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xfb
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x52

avrdude done. Thank you.

Failed chip erase: uploading error: exit status 1

As for as which nano

Mini / Type-C / Micro USB Nano 3.0 With the bootloader compatible Nano controller for arduino CH340 USB driver 16Mhz ATMEGA328P

did not understand "with bootloader compatible"

anyway does not upload a sketch as explained above
Thanks again for you guys help and Patience!
Greg

Just had to use "old bootloader"

:+1:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.