I'm using avrdude via PlatformIO on a Raspberry Pi 3 to flash Marlin 3D printer firmware onto a Makerbase MKS Gen L board. It is supposed to be Arduino Mega compatible. Connection is via USB cable.
I can upload the firmware fine, once. If I then try do it again it will timeout as the output attached.
I can usually resolve it by unplugging/replugging the board or reboot Pi.
Building .pioenvs/megaatmega2560/firmware.hex
Looking for upload port...
Auto-detected: /dev/ttyUSB0
Uploading .pioenvs/megaatmega2560/firmware.hex
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout