Upload error with RedBoard Qwiic

Attempting to upload a sketch to RedBoard Qwiic (DEV-15123) seems to succeed at first but ends with error:

OS: Windows 10

IDE: Arduino 1.8.19

Using Sparkfun AVR Boards 1.1.13

Using WCH Driver 3.7.2022.1

Sketch uploads without error on Arduino Uno, but even the “blink” sketch ends with an error on upload with the RedBoard Qwiic (though the LED still blinks as expected). I originally used the WCH driver that was automatically installed by Windows, but after noticing the error, I installed updated drivers – including FTDI (figured I would need it at some point anyway).

I’ve also attempted to uninstall everything and go back through the Hook-up Guide step-by-step, but the upload error persists. Thank you for any assistance you can offer.

Verbose Upload Output:

Arduino: 1.8.19 (Windows 10), Board: "SparkFun RedBoard"

Sketch uses 18606 bytes (57%) of program storage space. Maximum is 32256 bytes.

Global variables use 714 bytes (34%) of dynamic memory, leaving 1334 bytes for local variables. Maximum is 2048 bytes.

C:\Users\DLee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\DLee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b115200 -D -Uflash:w:C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.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\DLee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"



         Using Port                    : COM5

         Using Programmer              : arduino

         Overriding Baud Rate          : 115200

         AVR Part                      : ATmega328P

         Chip Erase delay              : 9000 us

         PAGEL                         : PD7

         BS2                           : PC2

         RESET disposition             : dedicated

         RETRY pulse                   : SCK

         serial program mode           : yes

         parallel program mode         : yes

         Timeout                       : 200

         StabDelay                     : 100

         CmdexeDelay                   : 25

         SyncLoops                     : 32

         ByteDelay                     : 0

         PollIndex                     : 3

         PollValue                     : 0x53

         Memory Detail                 :



                                  Block Poll               Page                       Polled

           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack

           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------

           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff

           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff

           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00



         Programmer Type : Arduino

         Description     : Arduino

         Hardware Version: 3

         Firmware Version: 4.4

         Vtarget         : 0.3 V

         Varef           : 0.3 V

         Oscillator      : 28.800 kHz

         SCK period      : 3.3 us



avrdude: AVR device initialized and ready to accept instructions



Reading | ################################################## | 100% 0.00s



avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: reading input file "C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex"

avrdude: writing flash (18606 bytes):



Writing | #########avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

###avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

####################avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

#avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

#######avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

##avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

###avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

##### | 100% 2.91s



avrdude: 18606 bytes of flash written

avrdude: verifying flash memory against C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex:

avrdude: load data flash data from input file C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex:

avrdude: input file C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex contains 18606 bytes

avrdude: reading on-chip flash data:



Reading | 

avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0x69

avrdude: stk500_cmd(): programmer is out of sync

avr_read(): error reading address 0x0000

    read operation not supported for memory "flash"

avrdude: failed to read all of flash memory, rc=-2

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x74



avrdude done.  Thank you.



the selected serial port 

 does not exist or your board is not connected



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

Try changing the board selection from Redboard to Arduino/Genuino Uno under the Arduino list (not the sparkfun one…that’s for an earlier version)

Also try uninstalling the WCH drivers if that doesn’t work and reinstall the latest 340-C ones and see how it goes

Thanks for your quick response! Sorry I took so long (labor day weekend and all :P)

I changed the board selection back to Arduino Uno. The WCH-340 drivers installed are the latest from the manufacturer, are there some “340-C” drivers I should look for? I don’t recognize the “-C.”

Here’s the output from uploading with the Arduino Uno board selection:

Arduino: 1.8.19 (Windows 10), Board: "Arduino Uno"

Sketch uses 18606 bytes (57%) of program storage space. Maximum is 32256 bytes.

Global variables use 714 bytes (34%) of dynamic memory, leaving 1334 bytes for local variables. Maximum is 2048 bytes.

C:\Users\DLee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\DLee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b115200 -D -Uflash:w:C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.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\DLee\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"



         Using Port                    : COM5

         Using Programmer              : arduino

         Overriding Baud Rate          : 115200

         AVR Part                      : ATmega328P

         Chip Erase delay              : 9000 us

         PAGEL                         : PD7

         BS2                           : PC2

         RESET disposition             : dedicated

         RETRY pulse                   : SCK

         serial program mode           : yes

         parallel program mode         : yes

         Timeout                       : 200

         StabDelay                     : 100

         CmdexeDelay                   : 25

         SyncLoops                     : 32

         ByteDelay                     : 0

         PollIndex                     : 3

         PollValue                     : 0x53

         Memory Detail                 :



                                  Block Poll               Page                       Polled

           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack

           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------

           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff

           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff

           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00



         Programmer Type : Arduino

         Description     : Arduino



avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xfc

         Hardware Version: 3

         Firmware Version: 0.4

         Vtarget         : 0.3 V

         Varef           : 0.3 V

         Oscillator      : 28.800 kHz

         SCK period      : 3.3 us





avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xfc

avrdude: AVR device initialized and ready to accept instructions



Reading | ################################################## | 100% 0.00s



avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: reading input file "C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex"

avrdude: writing flash (18606 bytes):



Writing | ###########################################avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

#avrdude: loadaddr(): (b) protocol error, expect=0x14, resp=0xfc

###### | 100% 2.94s



avrdude: 18606 bytes of flash written

avrdude: verifying flash memory against C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex:

avrdude: load data flash data from input file C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex:

avrdude: input file C:\Users\DLee\AppData\Local\Temp\arduino_build_573535/DC2259.ino.hex contains 18606 bytes

avrdude: reading on-chip flash data:



Reading | 

avrdude: stk500_paged_load(): (a) protocol error, expect=0x10, resp=0x4c

avrdude: stk500_cmd(): programmer is out of sync

avr_read(): error reading address 0x0000

    read operation not supported for memory "flash"

avrdude: failed to read all of flash memory, rc=-2

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x73



avrdude done.  Thank you.



the selected serial port 

 does not exist or your board is not connected



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

The plot thickens…

So I went ahead and ordered two more RedBoards: DEV-13975 with the FTDI USB-to-Serial IC and DEV-18158 a fresh RedBoard Plus with the WCH-340G.

I plugged in the DEV-18158, compiled and uploaded the sketch, and drumroll no errors! This is great because I can now proceed with my project.

On the other hand, I would like to get the original DEV-15123 working again. Could the errors I saw during upload be due to a corrupted bootloader? Are the “340-C” drivers you mentioned specific to the WCH-340C? That is, do I need to install separate drivers for the WCH-340C vs WCH-340G? If so, do you know where I can find ‘known good’ 340-C drivers?

Thank you again for your help!