I'm trying to upload a sketch to upload the blink sketch to an arduino pro using a SparkFun Serial Basic Breakout (on Ubuntu 18.04).
setup
Within the arduino IDE I have the following set-up:
- Tools -> Board: Arduino Pro or Pro mini
- Tools -> Port: /dev/ttyUSB0
- Tools -> Programmer: USBasp
I have connected:
- DTR sparkfun to DTR on arduino
- RX1 sparkfun to RX1 on arduino
- TX0 sparkfun to TX0 on arduino
- VCC sparkfun to VCC on arduino
- GND sparkfun to GND on arduino
the error
The error that I get is as follows
Arduino: 1.8.13 (Linux), Board: "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
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.
/home/cmhughes/Desktop/arduino-1.8.13/hardware/tools/avr/bin/avrdude -C/home/cmhughes/Desktop/arduino-1.8.13/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/arduino_build_457079/cmh-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 "/home/cmhughes/Desktop/arduino-1.8.13/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/home/cmhughes/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/ttyUSB0
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=0x00
avrdude: stk500_recv(): programmer is not responding
...
The error message continues, and tries 10 attempts.
the question
I've tried many different things, including: changing the RX1 to TX0 connections, using a different FTDI serial adapter, trying a different USB cable, trying on Windows operating system.
What else can I try to see if I can progress this?
arduino pro
SparkFun Serial Basic Breakout - CH340C and USB-C
-
wire RX to TX. transmit to receiveJuraj– Juraj ♦07/25/2020 09:20:03Commented Jul 25, 2020 at 9:20
-
@juraj many thanks; if I've understood you, then that's on the list of things that I've tried ....cmhughes– cmhughes07/25/2020 09:40:26Commented Jul 25, 2020 at 9:40
-
it is not a troubleshooting suggestion. it is how it must beJuraj– Juraj ♦07/25/2020 09:46:48Commented Jul 25, 2020 at 9:46
-
reset the Arduino while avrdude attempts the uploadJuraj– Juraj ♦07/25/2020 09:48:32Commented Jul 25, 2020 at 9:48
-
@Juraj many thanks, that was very helpful. Using both of the things that you detailed, I have now been able to upload onto my arduino pro. If you'd like to post an answer, I'll gladly accept it. Thanks again.cmhughes– cmhughes07/25/2020 11:08:10Commented Jul 25, 2020 at 11:08
2 Answers 2
The upload procedure needs to reset the ATmega328 by use of DTR. This invokes the bootloader code in the ATmega328. If there is a problem with your DTR connection, you have to instead manually press the RESET button at the appropriate time.
So probably your connection to DTR was faulty or. less likely, there could be a fault in the onboard capacitor between the Pro-Mini's "DTR" header and the ATmega328 RESET pin
https://store.arduino.cc/arduino-pro-mini -> Documentation
Automatic (Software) Reset
Rather then requiring a physical press of the reset button before an upload, the Arduino Pro Mini is designed in a way that allows it to be reset by software running on a connected computer. One of the pins on the six-pin header is connected to the reset line of the ATmega328P via a 100 nF capacitor. This pin connects to one of the hardware flow control lines of the USB-to-serial convertor connected to the header: RTS when using an FTDI cable, DTR when using the Sparkfun breakout board. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of the reset line can be well-coordinated with the start of the upload.
Might have to do with the usb chip on that being not as widely supported as the official chip Arduinos use on their Uno’s, Mega’s, etc. the ch340C one sometimes needs drivers so look online for those drivers and download them.