Serial communication failure when using power supply

Just thinking out loud... are you using interrupts in your sketch? Apparently (not sure whether this info is still current) there is a BADISR routine that handles interrupts having no handlers of their own. When this routine is invoked it resets the Arduino. If you wish to check whether this is your case you can define an ISR(BADISR_vect) routine and make it do some logging.