arduino is a big sensible!!!

a friend reported a stuck upload problem, took me hours to find the responsible command line

void setup()
{
    Serial.begin(38400);
    Serial.println("ARDUINO IS BAD!!! ");   // arduino will not allow you to upload this command
//    Serial.println("ARDUINO IS GOOD!! ");   // that is possible
}

void loop()
{
}

Some versions of the Arduino Mega bootloader use "!!!" as a command to go into monitor mode. Unfortunately it will do that even when in the middle of an upload. Perhaps a fresh bootloader would eliminate that problem.

we are using one Arduino MEGA 2560 R3 (china copy ( i only know from price )) and one Arduino MEGA 2560 R3 (original) ( both show same )

is there a way to check on the firmware / bootloader revision installed? and i found some code under arduino-1.0.4\hardware\arduino\bootloaders\ what is the one for our boards and there also i miss a revision info?

The bootloader for the Arduino Mega 2560 is

hardware/arduino/bootloaders/stk500v2/stk500boot.c

I have Arduino 1.0.1 and the monitor code is there:

...
//*	Jul  8,	2010	<MLS> Adding monitor code
...
#if defined(_MEGA_BOARD_) || defined(_BOARD_AMBER128_) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
	#define		ENABLE_MONITOR
	static void	RunMonitor(void);
#endif
...

//*****************************************************************************
int main(void)
{
...
			#ifdef ENABLE_MONITOR
				if (c == '!')
				{
					exPointCntr++;
					if (exPointCntr == 3)
					{
						RunMonitor();
						exPointCntr		=	0;	//	reset back to zero so we dont get in an endless loop
						isLeave			=	1;
						msgParseState	=	99;	//*	we dont want it do anything
						break;
					}
				}
				else
				{
					exPointCntr	=	0;
				}
			#endif
...

thanks a lot. b.r. KLL