Upload to UNO R3 connected via USBIP fails: "programmer is not responding"

Continuing the discussion from avrdude: stk500_recv(): programmer is not responding:

Hi all,
I have a very special case, but I found the same error.

Special case:

  • My Arduino UNO attached to an USB capable router running with LEDE/OpenWRT.
  • This Arduino UNO drives an RGB LED strip, count power consumption (electric, gas - soon), will do other things as well.
  • It is "burried" in the "computer cabinet", so it is inconvenient to reach directly, and needs the connected "hardware" to able to check/debug.
  • I collect energy data and drive LEDs at "high lvl" from the router (automated), so USB is used for communication as well, so
  • I had to programmatically allow/inhibit immediate Arduino reset after each device open - see details in this forum post
  • My Arduino IDE 1.8.10 runs on my Laptop (os:Ubuntu 19.04).
  • When I want to upload new sketch, I "export" Arduino UNO USB port through TCP/IP via USBIP
  • I attach my Laptop to Arduino USB (again, via USBIP)

Everything works fine, like:

  • USB monitor window (laptop sees Arduino as /dev/ttyUSB0)
  • Upload sketch (confirmed, sketch burning goes well)

BUT

Just after sketch write Arduino get a power cycle (normal behaviour) and ...
I assume IDE would like to catch the bootloader (without success) and read back the code?

At this point I get the subjected error.
However a moment later (when Arduino boots? when USBIO connection reestablished?) everything (including USB monitor window) works fine.

Because this is very likely not avrdude related AND I can use Arduino IDE same as I would program "local" Arduino, I have no time to track down the problem.

If only somebody (who knows Arduino IDE well) could confirm that I lost "only" a kind of safety net, so I will recognise harder if my code somehow will not uploaded...

Thank you very much.

Arduino: 1.8.10 (Linux), Alaplap:"Arduino Uno"

In file included from /home/mark/Arduino/RGB-LED-USB-comm/RGB-LED-USB-comm.ino:1:0:
/home/mark/Arduino/libraries/FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
 #    pragma message "FastLED version 3.003.002"
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
A vázlat 7192 bájt (22%)-ot használ a program tárhelyből. A maximum 32256 bájt.
A globális változók 672 bájt (32%)-ot használnak a dinamikus memóriából, 1376 bájtot hagyva a helyi változóknak. A maximum 2048 bájt.
/home/mark/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude -C/home/mark/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:/tmp/arduino_build_863112/RGB-LED-USB-comm.ino.hex:i 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/mark/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/home/mark/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/tmp/arduino_build_863112/RGB-LED-USB-comm.ino.hex"
avrdude: writing flash (7192 bytes):

Writing | ################################################## | 100% 1.83s

avrdude: 7192 bytes of flash written
avrdude: verifying flash memory against /tmp/arduino_build_863112/RGB-LED-USB-comm.ino.hex:
avrdude: load data flash data from input file /tmp/arduino_build_863112/RGB-LED-USB-comm.ino.hex:
avrdude: input file /tmp/arduino_build_863112/RGB-LED-USB-comm.ino.hex contains 7192 bytes
avrdude: reading on-chip flash data:

Reading | ###avrdude: stk500_recv(): programmer is not responding
#avrdude: stk500_recv(): programmer is not responding
avr_read(): error reading address 0x0000
    read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_recv(): programmer is not responding

avrdude done.  Thank you.

a kiválasztott soros port 
 nem létezik vagy az alaplap nincs csatlakoztatva

Ennek a jelentésnek több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció engedélyezésével a Fájl -> Beállítások-ban.

v_mark:
If only somebody (who knows Arduino IDE well) could confirm that I lost "only" a kind of safety net, so I will recognise harder if my code somehow will not uploaded...

It's the verification step that's failing. That's where it reads the uploaded binary back from the microcontroller's flash memory and compares it to the .hex file on your hard drive. Verification is intended to alert you if the data was somehow corrupted during the upload. After reading tens of thousands of posts on the forum over the last 7 years, I don't remember a case of the verification catching a legitimate problem, so I don't think it's a big deal if it's not working for you. You can turn it off in the Arduino IDE at File > Preferences > Verify code after upload.