No. Why? It is ArduinoISP to Arduino programming. As I mentioned, on Windows it works without any problem so I don't think it is something with HW config. It should work without capacitor.
I can use other programmer e.g. USBasp, it works for both Win and Lnx.
Are you talking about the ArduinoISP hardware device, or the ArduinoISP sketch running on an Arduino? The ArduinoISP sketch may require a capacitor on some systems but not on others, I know, it's weird.
For avrdude command line stuff, my favorite thing to do is go into preferences and check show verbose output during upload, then do something like burn a bootloader or upload a sketch Using Programmer in the IDE. Then copy the full command line which is displayed in the IDE and work with that as a basis.
I'm talking about ArduinoISP sketch running on an Arduino.
Ok, then I will try it with a capacitor but as I read response from SukkoPera, he induced me to play with the reset pulse length and the delay after, no success (hmm, I am considering some delay before the reset as I'm writing this). In addition things went worse - manual reset doesn't help. I tried several SW configurations and after hours I am little bit confused. Verbose output shows me that there is some mismatch in the received responses from the programmer after the first response. The first response seems to be always correct.
SukkoPera, dmjlambert thank you for the responses. I will provide the result of my next experiments soon.
It looks like SW problem with avrdude itself. At the beginning of communication the GET_SYNC is sent 3x and some of the responses was leaved unread and it appears later during next request. Since this moment the responses are not synchronized. The fact that it works on Win and not on Lnx leads me to conclusion that something is wrong in the part of avrdude wihich is specific for serial communication under Lnx and only for arduino protocol not for stk500v1. Maybe it is lnx distribution dependent also. ???
Actually I use avrdude on Linux every day, on a variety of platforms to program another variety of platforms and, save for the occasional capacitor I need to put on my Nano clone, it always works straight away!
Aha, did you mean 10uF cap on programmer Arduino? Yes, it works!
As I looked into avrdude source codes, arduino and stk500v1 protocols are similar except of open, close and signature read. In the arduino open function there is a reset pulse which is needed for programming via bootloader. It is missing in the stk500v1. Now it's clear for me, I think.
Stk500v1 should be used for this task, not arduino. Little bit weird for me is that both protocols work under Windows.
The addition of a capacitor between GND and RST makes no difference whatsoever - I still get the error, but ONLY on Peppermint OS, and NOT on Ubuntu Mate or Mac OSX.
Functionality of the capacitor is to skip over the reset pulse on Arduino as ISP and prevent it to fall into the bootloader.
Requirement for this Arduino as ISP is to keep communication between the target MCU and PC. Reset for the target is generated by Arduino as ISP independently at enter into program mode. As was written above, Avrdude's stk500v1 is without reset pulse at all, so the capacitor in this case has no function.
If some OS works and other no, the difference will be probably there. Maybe something with the driver. Bug? Peppermint OS seems to me rare Linux in compare with Ubuntu. I'm using Mint Mate and everything works for me as expected.
I ran into the same issue - worked fine on OpenSuse Leap 42.3 but failed under OpenSuse 15.0 when upgraded. I read other posts about using the capacitor but it appeared that I was supposed to use it on the arduino that was being programmed, not the programming arduino. Also short 10uf caps, I tried a 22uf cap on the programming ardunio and it finally solved the problem and I don't have to boot into windows. It's weird that it's related to the OS. I dual boot the same computer and it works fine under other OSes.
I do not think it is about OS. In addition, this topic states that the problem is in type of programmer used as parameter -c.
a) stk500v1 - without reset; feasible for Arduino as ISP since it doesn't reset programmer board,
b) arduino - with reset; for Arduino as ISP blocking 10uF capacitor is needed.
The reset pulse is the only difference between these.
During the time the situation has changed in that the latest versions of IDE have changed -cstk500v1 to -carduino as we discussed in another topic. So, your problem could be related to change of IDE along with OS upgrade. Just check Arduino as ISP in programmers.txt "arduinoasisp.protocol=".
Please, be so kind and confirm or refute.
Budvar10:
The reset pulse is the only difference between these.
Timing can also be different. If the Arduino-configured-as-a-programmer resets a bit fast it can start functioning as a programmer before avrdude gives up (I have a board that does that). Or, if the operating system is sluggish returning control after issuing the reset the Arduino-configured-as-a-programmer can finish the reset before avrdude gives up.
An earlier version of ArduinoISP was plagued with Linux related problems for just that reason (a busy-loop bug in the sketch exposed a timing difference between some Linux and essentially all Windows).
Yes, some slight problems and differences between Win and Lnx exists. A time ago, I did some modification in Avrdude for my needs but it is hard to remember how it works after long time. As I am study Avrdude v6.3 it has complicated construction of methods used inside, stk500v1, stk500 and stk500v2 have common part as arduino, stk500v1 and stk500. I am not able to dig deeper now because I do not have time. However, I would believe a comment inside arduino.c: "The Arduino programmer is mostly a STK500v1, just the signature bytes are read differently.".
Win and Lnx are handled differently in Avrdude - logically, but arduino.c or stk500xx is common for both.
ArduinoISP sketch is another story. There is still a part with signalling on extra LEDs which is useless IMO and slow down transfer speed. Probably nobody make an effort to add 3 extra LEDs, especially if he is not able correctly connect 6 wires (sorry to all n00bs ). Another thing, square signal output still missing in official version and it is nice to have e.g. if the breadboard chip is bricked.
I am fine with my "own version" with some additional functions.
I heard that Linux sends RTS or DTR (or whatever) signals when serial device opened. This signal tells FTDI or CH340 chip to reset the arduino.
It prevents using "ArduinoISP sketch uploaded to arduino"
I found workaround that does not require a capacitor between RESET and GND.
Before programming I open new terminal and type:
$ python
>>> f = open('/dev/ttyUSB0')
>>>
I left this terminal opened. The arduino does not reset any more.
The way I solved itw as gettting out a 10uf cap that looked like a tube and had a negtive side labeld on it. I put negative side into ground and other side into reset on the arduino uno. The pins are 4-5 slots alway from each other. After that it worked. cheers