Unable to Upload Code

Hello,

I have a couple microcontrollers I am using for a university project. They can be found here: Romeo BLE - Control Board for Robot - Arduino Compatible - Bluetooth 4.0 - DFRobot

However, I have not been able to upload code to them even after scouring the internet for solutions. We also ordered a new board and the same issue is present on that one. Here's the output from the IDE:

FQBN: arduino:avr:uno
Using board 'uno' from platform in folder: C:\Users\Alex\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7
Using core 'arduino' from platform in folder: C:\Users\Alex\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7

Detecting libraries used...
C:\Users\Alex\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_UNO -DARDUINO_ARCH_AVR -IC:\Users\Alex\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\cores\arduino -IC:\Users\Alex\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\variants\standard C:\Users\Alex\AppData\Local\arduino\sketches\FC4597119EC542EDAC3E99376125A239\sketch\sketch_apr28a.ino.cpp -o nul
Generating function prototypes...
C:\Users\Alex\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_UNO -DARDUINO_ARCH_AVR -IC:\Users\Alex\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\cores\arduino -IC:\Users\Alex\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\variants\standard C:\Users\Alex\AppData\Local\arduino\sketches\FC4597119EC542EDAC3E99376125A239\sketch\sketch_apr28a.ino.cpp -o C:\Users\Alex\AppData\Local\Temp\4131128941\sketch_merged.cpp
C:\Users\Alex\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\Alex\AppData\Local\Temp\4131128941\sketch_merged.cpp

Compiling sketch...
"C:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -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_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.7\\cores\\arduino" "-IC:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.7\\variants\\standard" "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239\\sketch\\sketch_apr28a.ino.cpp" -o "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239\\sketch\\sketch_apr28a.ino.cpp.o"
Compiling libraries...
Compiling core...
Using precompiled core: C:\Users\Alex\AppData\Local\arduino\cores\arduino_avr_uno_095fb8f8ea487b3855d6aeed3a9be729\core.a
Linking everything together...
"C:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239/sketch_apr28a.ino.elf" "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239\\sketch\\sketch_apr28a.ino.cpp.o" "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239/..\\..\\cores\\arduino_avr_uno_095fb8f8ea487b3855d6aeed3a9be729\\core.a" "-LC:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239" -lm
"C:\\Users\\Alex\\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\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239/sketch_apr28a.ino.elf" "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239/sketch_apr28a.ino.eep"
"C:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239/sketch_apr28a.ino.elf" "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239/sketch_apr28a.ino.hex"
"C:\\Users\\Alex\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\Alex\\AppData\\Local\\arduino\\sketches\\FC4597119EC542EDAC3E99376125A239/sketch_apr28a.ino.elf"
Sketch uses 444 bytes (1%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
"C:\Users\Alex\AppData\Local\Arduino15\packages\arduino\tools\avrdude\8.0.0-arduino1/bin/avrdude" "-CC:\Users\Alex\AppData\Local\Arduino15\packages\arduino\tools\avrdude\8.0.0-arduino1/etc/avrdude.conf" -v -V -patmega328p -carduino "-PCOM4" -b115200 -D "-Uflash:w:C:\Users\Alex\AppData\Local\arduino\sketches\FC4597119EC542EDAC3E99376125A239/sketch_apr28a.ino.hex:i"
Avrdude version 8.0-arduino.1
Copyright see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

System wide configuration file is C:\Users\Alex\AppData\Local\Arduino15\packages\arduino\tools\avrdude\8.0.0-arduino1\etc\avrdude.conf

Using port            : COM4
Using programmer      : arduino
Setting baud rate     : 115200
Error: programmer is not responding
Warning: attempt 1 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 2 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 3 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 4 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 5 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 6 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 7 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 8 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 9 of 10: not in sync: resp=0x00
Error: programmer is not responding
Warning: attempt 10 of 10: not in sync: resp=0x00
Error: unable to open port COM4 for programmer arduino

Avrdude done.  Thank you.
Failed uploading: uploading error: exit status 1

Nothing is connected to the board, when I attempt to upload the TX/RX lights blink
I can communicate with the board just fine through the serial monitor

I have tried:
Multiple different systems with Windows and Linux
Latest version, 2.2, 1.8.19 of Arduino IDE
Multiple USB cables
Switching to different ports in device manager
Pressing reset button when uploading
Resetting board with AT commands
Probably some other stuff I'm forgetting

Any help would be apricated, I'm at my wit's end.

Have you followed the suggestions that can be found on the DFRobot forum for rectifying upload problems with this board?

Hi @reemcscree. In addition to the standard "Romeo BLE" board at the product page you linked, there are multiple other variants with similar names. For example:

Are you certain the board you are using is indeed the standard "Romeo BLE"?

I ask because the Tools > Board > Arduino AVR Boards > Arduino Uno configuration you have selected in Arduino IDE is correct for the standard "Romeo BLE", but would cause the upload to fail if you actually have a different board model connected to your computer.

@reemcscree

Judging by the error messages, you're trying to flash the board via Arduino IDE like a regular Uno. I think this won't work.
As far as I can see from the board's schematic, the board USB is connected to the Bluetooth chip, not the ATMEGA. This means the AVR controller on this board can only be flashed either via Bluetooth or via the ICSP connector with a programmer.

So after looking through the DFRobot forum as you suggested I found a support email. Turns out I needed an older version of Arduino AVR Boards. For anyone else who runs into this problem:

In the sidebar, open the boards manager (second icon). In it you should find Arduino AVR Boards. Install version 1.8.6 of this.