Arduino 1.6.7 + UsbASP + ProMini = Fail :(

HI comunity

I have installed drivers for usbasp. In device manager I see device work properly. But in arduino I dont see it as available board/programmer. I mean I dont see like COM5 - UsbAsp. And I dont know if I should see it ?

Then I select sketch board pro mini 3.3v. Upload using programmer. Avrdude say done thank you. But Arduino start uploading... and nothing happen. even after 20 min still uploading.

whats wrong ?

connect it like
SCK -> 13 pin
MISO -> 12 pin
MOSI -> 11 pin
RST -> RST
VCC -> VCC
GNS -> GND

avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

what need to do in this case ?

khazama and dudepro says
Device signature = 0x1e940b but should be 1e9406

Fuses OK (E:00, H:DD, L:C6)

why arduino doesnt see signature?

update lib and now arduino can see but

avrdude: Device signature = 0x1e940b
avrdude: Expected signature for ATmega168 is 1E 94 06
Wrong microcontroller found.

what can I do?
is needed to upload bootloader?

alexblade:
update lib and now arduino can see but

avrdude: Device signature = 0x1e940b
avrdude: Expected signature for ATmega168 is 1E 94 06
Wrong microcontroller found.

what can I do?
is needed to upload bootloader?

That means you have the ATmega168P, not the ATmega168. You can do this:

MiniCore's "ATmega168" board definition supports all variants of the ATmega168. It's set for the ATmega168P by default so the signature of the board definition will now match the signature of your microcontroller.

alexblade:
is needed to upload bootloader?

Yes. The reason is that the configuration fuses on your ATmega168P were previously set to boot from a 2 kB boot section, where the bootloader would normally be. However, if you're doing Upload Using Programmer, the bootloader is erased and you're just losing 2 of the 16 kB of precious program memory on the chip for no reason. When you do a Burn Bootloader, it sets the configuration fuses on the microcontroller according to the definition of the currently selected board in addition to flashing the bootloader to the chip. By setting the Tools > Bootloader menu to No bootloader, the configuration fuses will be set to not reserve any boot section, and thus you can use the full 16 kB of flash memory for your program.

alexblade:
Arduino 1.6.7

It's in no way related to your problem, but why are you using such an outdated version of the Arduino IDE?

pert:
It's in no way related to your problem, but why are you using such an outdated version of the Arduino IDE?

its working :slight_smile: do not touch that already working
but exist another reason 1.6.10+ do not work with my usbasp

thank you for you reply

and I fix my problem with signature in the following mode:
just update board.txt
find pro mini 168 and add 'P' at the end where name, etc.. its working now :slight_smile:

alexblade:
1.6.10+ do not work with my usbasp

I know exactly what causes that and the solution. So if you ever want to join the rest of the world in 2019, let me know. By the way, that issue isn't really about the IDE version, it's about the Arduino AVR Boards version. If you updated your Arduino AVR Boards in Arduino IDE 1.6.7, the same issue will occur. Because each IDE version comes with the newest version of Arduino AVR Boards at that time bundled, it might appear that a particular Arduino AVR Boards version is associated with each Arduino IDE version. However, Boards Manager allows you to install any Arduino AVR Boards version with any IDE version, so that isn't really the case.

alexblade:
I fix my problem with signature in the following mode:
just update board.txt
find pro mini 168 and add 'P' at the end where name, etc.. its working now :slight_smile:

That will work, though you miss out on freeing up that 2 kB of program memory. You'll also need to redo the change any time you update to a new version of Arduino AVR Boards. Since you don't like updating, I guess that won't be a frequent occurrence.

pert:
If you updated your Arduino AVR Boards in Arduino IDE 1.6.7, the same issue will occur.

exactly :slight_smile: I just do not mention this, there are no board.txt anymore. in last version board.h as I understand. and I made rollover back , its working as expected. But if you how in 2019 to be with the rest world with my usbasp tell me pls

"though you miss out on freeing up that 2 kB " why? if settings the same? description already was in IDE, just board is absent from list
part parent “m168”
id = “m168p”;
desc = “ATmega168P”;
signature = 0x1e 0x94 0x0b;

alexblade:
there are no board.txt anymore. in last version board.h as I understand.

That's incorrect. boards.txt is still used, just like always.

alexblade:
But if you how in 2019 to be with the rest world with my usbasp tell me pls

Arduino updated their AVRDUDE tool used for uploading and burn bootloader in Arduino AVR Boards 1.6.12 (which was released with Arduino IDE 1.6.10). For some reason, the new versions of Arduino's AVRDUDE are no longer compatible with the libusb-win32 driver that always worked before, and even continues to work with the official AVRDUDE. Luckily, the solution is simply to change to using the libusbK driver:

  • Download Zadig: http://zadig.akeo.ie/. Note that Zadig is recommended on the official USBasp page: http://www.fischl.de/usbasp/.
  • Plug in your USBasp
  • Start Zadig
  • From the dropdown menu, select USBasp. If it doesn't show up on the menu, then select Options > List all devices and check again.
  • Click the up or down arrows next to the Driver selection box on the right side until you see libusbK.
  • Click the "Replace Driver" button.
  • After it finishes you can close Zadig.

Reference:

alexblade:
"though you miss out on freeing up that 2 kB " why? if settings the same?

Because the settings aren't the same between your modified Pro Mini board definition and the MiniCore "No bootloader" board definition. You need to set the configuration fuses to not reserve a boot section and update the upload.maximum_size size property accordingly. You can do that by modifying the Pro Mini board definition further if you like, but why go through all that when it's already done in MiniCore?

pert:
Luckily, the solution is simply to change to using the libusbK driver:

I have update libusb withh this tool :slight_smile: when I said above that now arduino is see my pro mini. ok now will try to change driver to see if it helps :slight_smile: thank you
BUT after when I change driver. will work other programmator like SINAPROG, KHAZMA, EXTREME DUDE with my USBASP?

You need to set the configuration fuses to not reserve a boot section and update the upload.maximum_size size property accordingly. You can do that by modifying the Pro Mini board definition further if you like, but why go through all that when it's already done in MiniCore?

what is minicore?

let me pls explain again (its hard since im not native speaker)
I donot change anything. Description already was in Arduino. But only name of board is not added by default to common list. I dont know why. board m168p is based on m168. just signature is different, all other is the same - I mean RAM ROM EEPROM etc. according to settings/description in Arduino configuration files (and by datasheet) So. I just added board m168p to list in the board.txt. thats it :slight_smile:

alexblade:
after when I change driver. will work other programmator like SINAPROG, KHAZMA, EXTREME DUDE with my USBASP?

I'm not familiar with those so I can't say for sure, but my guess is that anything that worked with the libusb-win32 driver will also work with the libusbK driver.

alexblade:
what is minicore?

MiniCore is a 3rd party hardware package that adds new boards to the Arduino IDE's Tools > Board menu. These boards allow any common configuration of the ATmega328/P/PB, ATmega168/P/PB, ATmega88, ATmega48, and ATmega8. After you select one of the MiniCore boards from the Tools > Board menu, you'll find some new menus under the Tools menu. These allow you to pick all sorts of configuration options. That makes it much more flexible than the board definitions like the "Arduino Pro or Pro Mini", which only offer a few options to match commercially available boards.

Please visit the MiniCore repository and read the documentation there. I think that will answer all your questions:

alexblade:
I just added board m168p to list in the board.txt. thats it :slight_smile:

Good for you. If you're satisfied with that approach, stick to it and get on with having some fun with Arduino!

thank you very much!
interesting library

You're welcome. I'm glad if I was able to be of assistance. Enjoy!
Per