Annoying avrdude: stk500_getsync error

OK, here is the complete log of the failed upload. From what I read, this problem seems to be a wide spread problem cross all platforms. Mac, Linux and Windows. One can easily dismiss it on the user error, such as the incorrect port etc. But in my case, I use OS X 10.11.3 I know I use the correct port. The fact that I could upload successfully many times without issue, than out of the blue this error occurs, base of the above clues, tell me that there is something fundamentally wrong with the Arduino, perhaps the firmware? Perhaps the IDE? (I was using IDE 1.6.5, but I just upgraded to !.6.7 and still the same error!) That's what I intend to find out, get to the root of the problem and fix it once and for all.

Error log:
Arduino: 1.6.5 (Mac OS X), Board: "Arduino Nano, ATmega328"

Sketch uses 4,078 bytes (13%) of program storage space. Maximum is 30,720 bytes.
Global variables use 244 bytes (11%) of dynamic memory, leaving 1,804 bytes for local variables. Maximum is 2,048 bytes.
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.wchusbserial1d1320 -b57600 -D -Uflash:w:/var/folders/j3/ykps353n77q369zwjsxpf6sm0000gn/T/build2427596596682328549.tmp/Lucy-sideBalznceTest.cpp.hex:i

avrdude: Version 6.0.1, compiled on Apr 14 2015 at 16:30:25
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/Users/dick/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/cu.wchusbserial1d1320
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.