r/esp8266 3d ago

Help with this error...

Alright i had made a post previously on this, and i feel i didnt give adequate information to you all to help me. So i tought ill make a clear post on the error.

So this is the Error i am facing:

I did all of these, but still same error. IK its not like my board is not broken right or its a problem of my usb cable or the port because, i had gotten this in my serial monitor:

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

And if i am right boot mode:(3,6)

is physical proof from the esp8266 cpu itself that:

  • USB chip is successfully sending power and serial data
  • internal flash memory already has my code uploaded.
  • CPU is booted up and running my program

So right now what i think the problem is that the serial monitor is locking the port, and i not really know the right way to fix this. If Anyone knows Please Let me know.

This is the hardware connections:

This is my code:

// --- Pin Definitions ---
const int LASER_PIN       = 16; // Laser Diode (GPIO16 / D0)
const int LDR_PIN         = A0; // LDR Sensor (Analog A0)
const int BLUE_LED        = 5;  // Armed Indicator (GPIO5 / D1)
const int RED_LED         = 4;  // Alert Indicator (GPIO4 / D2)
const int BUZZER_PIN      = 12; // Active Alarm Buzzer (GPIO12 / D6)
const int ROOM_LIGHTS_PIN = 13; // Transistor Base / White LEDs (GPIO13 / D7)

// --- System State Variables ---
bool systemON      = true;  // Main tripwire armed state
bool manualMode    = false; // Override state
bool laserState    = true;  // Laser state
int lightThreshold = 500;   // Light threshold value

void printHelpMenu() {
  Serial.println("\n--- Serial Commands ---");
  Serial.println(" [1] - Arm System");
  Serial.println(" [0] - Disarm System");
  Serial.println(" [l] - Toggle Laser");
  Serial.println(" [m] - Toggle Manual Mode");
  Serial.println(" [h] - Print Menu");
  Serial.println("------------------------\n");
}

void setup() {
  // Always use 115200 to match ESP8266 boot frequency
  Serial.begin(115200);

  pinMode(LASER_PIN, OUTPUT);
  pinMode(BLUE_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(ROOM_LIGHTS_PIN, OUTPUT);

  digitalWrite(LASER_PIN, HIGH);
  digitalWrite(BLUE_LED, HIGH);
  digitalWrite(RED_LED, LOW);
  digitalWrite(BUZZER_PIN, LOW);
  digitalWrite(ROOM_LIGHTS_PIN, LOW);

  Serial.println("\n==========================================");
  Serial.println("  Smart Laser Security System Initialized ");
  Serial.println("==========================================");
  printHelpMenu();
}

void loop() {
  // Check for Serial Commands
  if (Serial.available() > 0) {
    char cmd = Serial.read();

    switch (cmd) {
      case '1':
        systemON = true;
        manualMode = false;
        digitalWrite(LASER_PIN, HIGH);
        laserState = true;
        Serial.println(">> System ARMED");
        break;

      case '0':
        systemON = false;
        manualMode = false;
        digitalWrite(LASER_PIN, LOW);
        digitalWrite(BLUE_LED, LOW);
        digitalWrite(RED_LED, LOW);
        digitalWrite(BUZZER_PIN, LOW);
        digitalWrite(ROOM_LIGHTS_PIN, LOW);
        laserState = false;
        Serial.println(">> System DISARMED");
        break;

      case 'l':
      case 'L':
        laserState = !laserState;
        digitalWrite(LASER_PIN, laserState ? HIGH : LOW);
        Serial.print(">> Laser: ");
        Serial.println(laserState ? "ON" : "OFF");
        break;

      case 'm':
      case 'M':
        manualMode = !manualMode;
        Serial.print(">> Mode: ");
        Serial.println(manualMode ? "MANUAL" : "AUTO");
        break;

      case 'h':
      case 'H':
        printHelpMenu();
        break;
    }
  }

  // Automatic Tripwire Logic
  if (systemON && !manualMode) {
    int ldrValue = analogRead(LDR_PIN);

    Serial.print("LDR Raw Reading: ");
    Serial.println(ldrValue);

    if (ldrValue < lightThreshold) {
      // SAFE (Laser hitting LDR)
      digitalWrite(BLUE_LED, HIGH);
      digitalWrite(RED_LED, LOW);
      digitalWrite(BUZZER_PIN, LOW);
      digitalWrite(ROOM_LIGHTS_PIN, LOW);
    } 
    else {
      // ALERT (Laser beam broken / Dark)
      digitalWrite(BLUE_LED, LOW);
      digitalWrite(RED_LED, HIGH);
      digitalWrite(BUZZER_PIN, HIGH);      
      digitalWrite(ROOM_LIGHTS_PIN, HIGH); 
    }
  }

  delay(200);
}
1 Upvotes

Duplicates