Error when running ESP8266 on arduino IDE

I have just started using the ESP8266 Wifi module and am having some issues loading the program.
error message:

Arduino: 1.8.15 (Windows 10), Board: "NodeMCU 0.9 (ESP-12 Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, All Flash Contents, 115200"

Executable segment sizes:

ICACHE : 32768           - flash instruction cache 

IROM   : 242024          - code in flash         (default or ICACHE_FLASH_ATTR) 

IRAM   : 27273   / 32768 - code in IRAM          (IRAM_ATTR, ISRs...) 

DATA   : 1556  )         - initialized variables (global, static) in RAM/HEAP 

RODATA : 1172  ) / 81920 - constants             (global, static) in RAM/HEAP 

BSS    : 25696 )         - zeroed variables      (global, static) in RAM/HEAP 

Sketch uses 272025 bytes (26%) of program storage space. Maximum is 1044464 bytes.

Global variables use 28424 bytes (34%) of dynamic memory, leaving 53496 bytes for local variables. Maximum is 81920 bytes.

esptool.py v3.0

Serial port COM8

Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):

  File "C:\Users\anggolak\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/upload.py", line 66, in <module>

    esptool.main(cmdline)

  File "C:/Users/anggolak/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 3552, in main

    esp.connect(args.before, args.connect_attempts)

  File "C:/Users/anggolak/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool\esptool.py", line 529, in connect

    raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))

esptool.FatalError: Failed to connect to ESP8266: Invalid head of packet (0x00)

esptool.FatalError: Failed to connect to ESP8266: Invalid head of packet (0x00)



_



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

wiring diagram:


esp8266

wiring connectivity:
Arduino UNO <----> ESP8266
TX0 -------------------- RX
RX0 --------------------TX
3.3V -------------------CH_PD
3.3V ------------------ VCC
GND ------------------ GND

settings tool on Arduino IDE:

I have to make and use a mobile graphical user interface for controller boards to control via smartphone via REMOTE XY and this is the list of program:

/*
   -- New project --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 3.1.8 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.11.1 or later version;
     - for iOS 1.9.1 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include <RemoteXY.h>

// RemoteXY connection settings 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 115200
#define REMOTEXY_WIFI_SSID "RemoteXY"
#define REMOTEXY_WIFI_PASSWORD "Gigs@123"
#define REMOTEXY_SERVER_PORT 6377


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =   // 36 bytes
  { 255,2,0,0,0,29,0,16,31,1,2,0,23,64,22,11,2,26,31,31,
  79,78,0,79,70,70,0,1,0,19,27,12,12,2,31,0 };
  
// this structure defines all the variables and events of your control interface 
struct {

    // input variables
  uint8_t switch_1; // =1 if switch ON and =0 if OFF 
  uint8_t button_1; // =1 if button pressed, else =0 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_SWITCH_1 13
#define PIN_BUTTON_1 12


void setup() 
{
  RemoteXY_Init (); 
  
  pinMode (PIN_SWITCH_1, OUTPUT);
  pinMode (PIN_BUTTON_1, OUTPUT);
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
  digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);
  
  // TODO you loop code
  // use the RemoteXY structure for data transfer
  // do not call delay() 


}

please correct me if i had wrong for TOOLS setting on Arduino IDE

The module you are showing in your schematic is an ESP-01 (not a nodeMCU) you should select 'generic 8266' and set the flash size to 1MB if the unit is black (PCB) or 512Kb if it's blue.

First of all the ESP-01's pins are not 5v tolerant, so you should always protect the ESP's RX pin with a voltage divider to reduce the UNO's 5v logic levels to 3.3v
While uploading you should swap the RX-TX pins on the UNO. It should be TX to TX & RX to Rx. You will be using the UNO as an uploader, so you should upload an empty sketch onto it (or blink or something else, but make sure that sketch does not use 'Serial' or pins 0 & 1)
And then to set the proper boot mode on the ESP, you have to make sure that GPIO 0 is connected to GND while it is powering up.

1 Like

Either that or this sketch belongs on the UNO (and not on the ESP), and you are meant to use the standard firmware of the ESP. In that case, the connections are OK except for the missing voltage divider of course, and you should temporarily disconnect the TX & RX lines, and upload to the UNO (and not to the ESP at all)

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.