El tema del bootloader no lo tengo del todo claro, pero por si las dudas, prueba este código:
#include <avr/wdt.h> // Incluir la librería que contiene el watchdog (wdt.h)
byte segundos = 0;
void setup()
{
wdt_disable(); // Desactivar el watchdog mientras se configura
Serial.begin(9600);
wdt_enable(WDTO_8S); // Configurar a ocho segundos
wdt_reset(); // Actualizar el watchdog para que no produzca un reinicio
}
void loop()
{
Serial.println(segundos);
segundos++;
delay(1000);
}
En teoría debería contar desde cero hasta 7 u 8. Si sobrepasa el 9 o el programa se paralizó, entonces sí es cosa de bootloader.
PD: código tomado de este ejemplo.