Estoy tratando de usar el IDE de Arduino para programar un ESP8266 (ESP-12F). Puedo cargar un programa simple que parpadea el led incorporado. Tan pronto como coloco una referencia a Serial.begin()
en cualquier parte del código, mi programa ya no funciona. Incluso el código que se ejecuta antes de que se ejecute la llamada a Serial.begin()
.
Estoy usando el siguiente código:
const int ledPin = 2;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, LOW);
delay(1000);
digitalWrite(ledPin, HIGH);
delay(2000);
// If this line is present, the led never turns on, not even the first time.
// Removing it makes the led blink, as expected.
Serial.begin(115200);
}
Estoy conectando el ESP de la siguiente manera. Probablemente no sea muy relevante ya que puedo cargar y ejecutar el código correctamente siempre que no intente usar el puerto serie. También he intentado reemplazar la conexión a RTS y DTR con botones de presión a GND, y el resultado es el mismo.
¿Qué estoy haciendo mal? ¿Cómo uso el puerto serie en el ESP8266?
PS: Sé que Serial.begin()
no debería ir dentro de loop()
. Solo lo he movido allí para que suceda después de encender el led.
Actualizar
Intentéactualizarelúltimofirmwareconlaherramientaoficial,peroesteprocesosiemprefallaconunerrorde"Jefe de paquete no válido". Parece que ocurre cuando se escribe el último paquete, porque si flasheo un archivo grande, da el error solo al 99%.
Después de estos intentos, no he podido hacer que ningún programa funcione. Incluso el simple parpadeo del led sin ninguna referencia en serie parece no hacer nada, aunque el monitor en serie muestra los mensajes de arranque de ESP.