Bootloader confusion Can't program on serial port > first time post!

Hi I was given a pile of generic 328 "Deek Robot" boards.
See this link for details if you'd like:

http://arduino-board.com/boards/dr-pro-mini

I do not have the SparkFun version but a cheap knock-off version.
They were free.. I'm pretty happy as they have a 16MHz crystal clock and not just a simple
Built in RC timer pretty cool!

Here's where I'm a bit confused..
They come with a convenient "FTDI" ready serial port on the board witg proper spacing and pin alignment for an FTDI serial board.

However are not programmable via this serial port, I just get timeouts.
It's apparent I don't have a working (or working as expected) bootloader.

I am able to program the board with the in circkut programming using a USBASP board
no problems.

Two more odd things I do not understand.
Board appears to have come with the "blink" program already loaded on it.
That itself is no confusion..
However if I try to use Arduino software to "burn bootloader" to the board...

It burns something... (I don't know what) not a working bootloader..
The blink program comes back at this point!! I don;t know how but it does.
As if it is already on the chip or something..
Unless the bootloader has "blink" built in or something.
It's blinking once every second and still will not accept any uploads on the FTDI serial port.
I tried with and without DTR and hitting the reset switch.

Also I don;t think it matters but whenever I upload wit hte USBASP I get.

"avrdude: warning: cannot set sck period. please check for usbasp firmware update."

Whether programming sketches or trying to burn the bootloader.

I'm confused as heck but at the end of the day have boards I can use, just can't use the serial programming port.

After "burning bootloader" ping 13 LED flashes once every second.
It's a shorter flash length than when uploading the stock "Blink" script..
So maybe it also blinks the LED for some reason..

That's wonderful.

But still unable to upload anything over the serial port (FTDI).

My FTDI and driver work fine on other test boards.

I have the exact same boards.
They work just fine with an FTDI programmer.
You can also program them with another arduino (as ISP) through the RX and TX pins.

How are you connecting the FTDI programmer to the board?
Post pics for clarity.

Pics to follow if you think it will help:

Arduino Board <--------> FTDI Board

DTR <---------->DTR
TXD <---------->RXD
RXD <---------->TXD
VCC <---------->5V
GND <---------> CTS
GND <---------> GND

Note: Arduino board does have the desired capacitor between DTR and
reset pin on ATM as expected.

Also tried another FTDI board and prolific board.

Also tried another identical Arduino board
my buddy bought 15 of them. I have two.

Also tried my two serial boards on windows XP on and older machine other than WIn7/64
that I started out on.

No response...
If I hook up another 328P board (quadcopter flight controller) with the same FTDI board it programs just fine.
So my board and driver are working :slight_smile:

What does the time out message say?
Copy and paste exact message .

How are you making the physical connections?

n8lbv:
Note: Arduino board does have the desired capacitor between DTR and
reset pin on ATM as expected.

ATM?

Yes pics.

Physical connections are made as shown in my diagram above.
FTDI board has serial header that lines up properly with serial header on Arduino board.
All is at 5V Arduino board is powered at 5V from FTDI board.
5V checks good on FTDI and on Arduino.

FTDI is on COM7 (Arduino latest software in windows7 64bit).

Attempt to upload "blink" script after successful compile:

See TX light on FTDI board flash 3 times quickly nothing happens after that.

Wait about 2 minutes get error.

Exact error is:

lobal variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x32
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x32

What I called a "timeout".

Pics to follow soon sorry don't have yet.

Pics:


FWIW physical connection means - what joins the 2 components - from the pic I see it is a plug and socket connection.

One trick I sometimes use, to press the reset button while the sketch is compiling.
Timing could be an issue, but a fool-proof way is hold the reset on the pro mini down while compiling and as soon as compiling finishes i.e. the writing turns from white to orange, release the reset.

That usually gets the upload done.

I am assuming you have the right board and com selected.

Yep tried all the usual dances,with the reset button. Been through this before particularly when using serial boards without DTR and a cap.

definitely the right com port pretty sure the right board.. I'll specify that setting soon as I can.

Watch the LEDs on the serial adapter and on the board while uploading.

When it starts uploading, you should see a change in the blinking of the LED on the board, like it just got reset.

Any pro mini which you have uploaded a program to via ISP will not be programming over FTDI until you burn bootloader again (ISP programming erases bootloader)

There is a batch of bad blue pro mini clones that look like that (also several good versions) - IIRC, the bad ones are Dwsy_Robot on the back. If you put multimeter in continuity mode, and clip one side of multimeter to DTR, then poke around at both sides of each capcitor, you should find one capacitor that DTR is connected to one side of - if it's connected to two capacitors, you have the one with the misplaced cap - one of the two caps is connected between DTR and AVCC instead of GND and AVCC. I fixed my board by flipping that cap over, so it went from the AVCC side to an adjacent pad that happened to be ground.

Try with CTS connected to Ground and with/without DTR.
Try with/without pressing reset switch.

Once you get a procedure to work, make sure you write down the steps.

Bottom line is this setup should work :

  • Don't connect CTS or DTR.
  • Use reset switch.

Check correct board and port selected.

Tip : It may be easier to use Dupont cables for the physical connection if not making some conections.

CTS is an input to the USB/Serial module, safest thing you can do is tie low so the module can detect that it is Clear To Send.

cts is and has been grounded. I can try lifting dtr and cts simply by bending the header pins out. also the cap problem mentioned.. then try the manual resets again.. and yes am well aware of losing the boot loader each time it's isp programmed. and keep burning back the bootloader. Good mention and thanks!

Burned bootloader back on.
Tried lifting both CTS and DTR pins and every possible combination of hitting the reset timing.
Also the same as mentioned here.
Also tired same with CTS grounded.

Same thing you see 3 very quick flashes on FTDI serial board TX LED as soon as you click upload.

Nothing ever on RX..
Nothing at all further after that.
And then you get the timeout message about 2 full minutes later.

Also my "bootloader" does a quick flash on pin 13 LED every second.
Same thing the board was doing new out of the package.
It's a shorter duration flash than the example blink script does so I can tell them apart.
But it appears to be part of the bootloader.

I'm still exactly where I started can't program over the serial port and very confused.

I sure would like to know WHY.

FWIW my boards are not identical to yours, but they are also Deek Robot and according to my notes, for programming I had to connect TX to TX and RX to RX.
Bear in mind these are clones, and pins are sometimes mislabelled.

I could certainly try that now that I've tried about everything else :slight_smile:

You could also try uploading without your serial converter.

I would suggest trying :

  1. With an Arduino as ISP
  2. Direct TX/RX with an Arduino.

I assume u know how, but if not, I can post instructions.

I used to upload to my Pro Minis with both above methods before I got a serial programmer.

If that does not work, I would start to wonder if the boards are faulty.

Yep already know that and that is one of the first things I tried before posting here.
Trying to get a handle on why the bootloader/serial is not working :slight_smile: