I was having a problem with my Mega 2560 where I would try to upload a file to the board and would receive the avrdude: stk500v2_ReceiveMessage(): timeout error. My googling gave me a number of things that were not necessarily simple. None of which resolved the issue.
Fortunately, I found a very simple solution that works consistently for me, so I wanted to share in case anyone else ran into this same problem and came across the same threads I did.
Remove connections to 5v, 3.3v, and ground while uploading. Reconnect after upload completes.
I hope this helps someone!