0

I used Arduino UNO as ISP to change the fuse setting of Arduino Pro Mini. Using avrdude cmd, I successfully changed it to 8MHz setting. Due to curiosity, I decided to try changing it to 128kHz. But that ends up me being unable to further program it. The Pro Mini still works but just cant change fuse through avrdude cmd, burn bootloader and upload. Does 128kHz really leave atmega328p like that?

On one computer, the below error appears.

avrdude: stk500_recv(): programmer is not responding

On another computer, the below error appears

avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check
Wrong microcontroller found. Did you select the right board from the Tools > Board menu?

There are actually more errors because I trial and error different ways to solve it, i.e Nick Rammon's Atmega_Board_Programmer, cmd command with varying parameters (baud rate, programmer), inserting capacitor on UNO. But I dont remember every one of them because the not in sync:resp=0x.. differs from time to time

There is one method which I have not try, high voltage programming mode. I would try it out if it was detachable but atmega328p on Pro Mini is SMD. Is it possible to high voltage program on Pro Mini? Ultimately I am stuck.

Ignoring what I have done, I would once again like to try out every method you guys recommend. Hopefully everything can be step by step and the thing I want to know most is the setting of 'Board', 'Processor' and 'Programmer' in Tools.

I would give my best response possible to you guys who is willing to help me out. Thank you

0

At that clock rate each programming clock cycle must be at least 3 system clock cycles, which means that the programmer either must use a much slower SPI rate, 42kHz or less, or it must provide an external pulse train to clock the device manually. Modify the ArduinoISP sketch to either use a slower clock or to provide an external clock to the target.

  • ArduinoISP sketch to slower clock: changing #define BAUDRATE 19200 to #define BAUDRATE 1200? Is it possible to provide external clock to Arduino Pro Mini? If so, how should I connect it? – iHateUni Oct 29 '17 at 15:33
  • No clue. But that sounds like the speed it communicates with the host, not the target. – Ignacio Vazquez-Abrams Oct 29 '17 at 15:34
  • I have just used this code and upload to UNO with setting: Arduino/Genuino UNO,AVRISP mkII. Then I unplugged UNO from laptop, connected Pro Mini to UNO with capacitor connected, plugged to laptop and change setting to: Arduino Pro or Pro Mini,ATmega328 (5V, 16MHz),Arduino as ISP. Then I press Burn bootloader. This error occur: avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. – iHateUni Oct 29 '17 at 15:53
  • i love you. from your tip, i found the code that slows down communication with target which i thought baudrate was the one. – iHateUni Oct 29 '17 at 16:16
0

Thanks to Ignacio, I found an answer. If anyone ever burn the fuse to 128kHz, got stuck there and wish to revert back to normal speed, download this sketch. Note that I am using Arduino UNO as ISP and Arduino Pro Mini as the target board

If you read the comment in the sketch carefully, you will see How to proceed:. The below is what I did.

  1. Remove any pin connection on Arduino UNO
  2. Plug Arduino UNO to PC
  3. Open the downloaded sketch and uncomment #define LOW_SPEED
  4. On Arduino IDE Tools menu, make sure settings are: Board: Arduino/Genuino UNO, Programmer: AVRISP mkII and upload the code
  5. After uploading, unplug Arduino UNO from PC
  6. Connect Pro Mini to UNO, making sure there is capacitor between reset and ground pin on UNO
  7. Plug Arduino UNO to PC
  8. Open CMD and type avrdude -P com5 -b 19200 -c avrisp -p m328p -U lfuse:w:0xFF:m -U hfuse:w:0xDA:m -U efuse:w:0x05:m. Change com5 to your UNO com port. The fuse are default Pro Mini setting.
  9. You should see avrdude: safemode: Fuses OK <E:05, H:DA, L:FF>. Unplug UNO from PC
  10. Remove pin connection on Arduino UNO
  11. Plug Arduino UNO to PC
  12. Now comment #define LOW_SPEED and upload the code.
  13. After uploading, unplug Arduino UNO from PC
  14. Connect Pro Mini to UNO like before and plug to PC
  15. On Arduino IDE Tools menu, make sure settings are: Board: Arduino Pro or Pro Mini, Atmega328 (5V, 16MHz),Programmer: Arduino as ISP
  16. Burn Bootloader and it is complete

Apologies for lengthy and repetitive steps. Many solutions skip many steps which leaves me in doubt. So I do not want that to happen to other people. Though I won't go into the details of setting up avrdude CMD in step 8.

  • Accept your own answer to close this question. – user31481 Nov 28 '17 at 19:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.