Arduino IDE to Arduino Pro communications

I am totally new to the Arduino IDE / Arduino. I can not seem to get my communications set up properly.

My board is an Arduino PRO.

I have two different USBASP programmers. One generic and one V2.0 LC Technology. The drivers are libusbK USB Devices / USBasp

I also have a FTDI Programmer. The driver is FTDI 8/16/2017 2..12.28.0 on COM6

When I try to communicate using the FTDI programmer I have used the Serial Monitor on COM6 to run the Loop Back Test This works fine. I am able to send and receive characters. For this I am setup as follows: Board: "Arduino Pro or Pro Mini" Processor: "ATmega 328 (5V, 16Mhz)" Port: "COM 6" Programmer: "USBasp"

When I try to "Upload Using Programmer" I receive "Not able to upload I am using the simple "Blink" sketch and it does compile properly. IDE also reports "Could not find USB device with vid=0x16c0 pid= 0x5dc product = USBasp

When I try to run a loopback test using either of the USBASP devices it does not work. IDE reports "Board is not available" Port option is grayed out. I also can not upload using either of these.

I would ultimately like to use either of the USBASP devices to upload. I don't seem to be able to get the right setup options to use any of these?

Any assistance would be much appreciated.

Loopback test is only for use on a serial port so that's not relevant to the USBasp.

The USBasp doesn't create a COM port so the Tools > Port menu being grayed out is the expected behavior.

The problem you do need to focus on is this: "Could not find USB device with vid=0x16c0 pid= 0x5dc product = USBasp".

Thanks, I did not know that the Loop Test was not for the USBASP devices. The fact that it did work on the FTDI Programmer made me think that I should have been able to program with it??

I had come to the conclusion that the USBASP did not create a COM port.

I don't remember where I read it but some document directed me to using the libusbK USB drivers. Maybe I should uninstall those drivers and try the Windows 10 default drivers??

My understanding is that the FTDI Programmer does not need a bootloader. Does the USBASP always need a bootloader? Should I upload the bootloader every time before I try to upload with the USBASP?

I am using the "Programmer: USBASP" for my USBASP devices. Is that the right "Programmer"?

Is there any documentation that covers these different types of communication between the Arduino IDE and the board?

The libusbK drivers are the ones you want. Traditionally the libusb-win32 drivers were used but I have found those don't work with the recent versions of the Arduino IDE (actually Arduino AVR Boards). If you want to try the other driver I'm sure it wouldn't hurt. I have used a program named Zadig to install either driver and it makes it very easy, and is actually recommended by the creator of the USBasp. I can provide more information on that if you like.

ArduToys: The fact that it did work on the FTDI Programmer made me think that I should have been able to program with it??

The problem you're having is with the computer/AVRDUDE recognizing the USBasp, it's unrelated to anything happening on your Arduino board, so the ability to use the FTDI is irrelevant.

ArduToys: My understanding is that the FTDI Programmer does not need a bootloader.

The FTDI DOES need a bootloader. When you upload using an FTDI you're sending the program via serial communication. You need some firmware running on the microcontroller on your Arduino board to handle that communication and then write the code to the flash memory.

ArduToys: Does the USBASP always need a bootloader?

No, when you upload using an ISP programmer such as USBasp the process writing the code to flash is handled solely by the microcontroller hardware and the programmer so no bootloader is required to help with that process.

ArduToys: Should I upload the bootloader every time before I try to upload with the USBASP?

When you do a Tools > Burn Bootloader the fuses on the microcontroller are set according to the Arduino IDE's hardware definitions for the board you currently have selected in the Tools > Board menu, then the bootloader is flashed to the board. So if you need to set fuses it can be useful to do a Burn Bootloader, even if you don't need the bootloader. When you do an Upload Using Programmer the bootloader is erased so, other than for setting fuses, there is no benefit to doing a Burn Bootloader before Upload Using Programmer. However, you should be aware that when you do an Upload Using Programmer the bootloader is erased so if you try to do a standard Upload using your FTDI after that it will fail. You would first need to do a Burn Bootloader using your USBasp before you could use the FTDI to upload again.

ArduToys: I am using the "Programmer: USBASP" for my USBASP devices. Is that the right "Programmer"?

Yes

Thanks. You have clarified many issues for me. I will try and incorporate some of this in the next day or two.

Is there anyplace I can read more about this communication between the IDE and board?

Bear in mind too that if you program with the FTDI programmer it will overwrite any bootloader , so the USB port on your Arduino will no longer work until you revload a bootloader .