개발/ESP32, ESP8266

[ESP32 에러] Failed to connect to ESP32: Timed out waiting for packet header

어중E 2022. 7. 31. 15:32

[ESP32 에러] Failed to connect to ESP32: Timed out waiting for packet header

ESP32 개발 키트를 사용하여 기본 테스트 코드를 업로드를 할 때 이 에러를 만났습니다. 아두이노 IDE를 사용해 업로드할 때 발생한 에러로 원인은 ESP32가 어디에 연결되어 있는지 찾지 못한 것이고, 정해진 시간을 넘겨 버렸을 때 Timed out이라는 에러로 표시됩니다. EPS32를 못 찾는 경우는 몇 가지가 있습니다. 아래에서 알아봅니다.

 

1.연결된 장치를 못 찾는 경우

1

USB에 연결을 했더라도 장치를 찾지 못하는 경우가 있습니다. 시작-장치 관리자에서 포트(COM & LPT) 항목에서 포트가 연결되어 있는지 확인합니다. EPS32 개발 키트는 종류가 여럿 있기 때문에 통신칩으로 사용하는 드라이버가 설치가 되지 않았으면, 인식을 못 할 수 있습니다. 기본적으로 설치하지 않아도 인식되는 개발 키트도 있지만, CH340을 사용하는 개발 키트도 있기 모델에 맞게 드라이버를 설치합니다.

 

2.포트는 확인했지만 해당 포트를 다른 프로그램이 자동으로 연결한 경우

시리얼 통신으로 연결되는 포트의 경우에는 특정 프로그램이 USB 삽입과 동시에 자동으로 연결시켜서 아두이노 IDE가 업로드를 못하게 할 수도 있습니다. 이런 경우에는 아두이노 IDE 프로그램말고 다른 프로그램을 꺼주고 다시 시도를 해봅니다. 

 

3.업로드 할때 EPS32 개발 키드가 자동으로 업로드/플래시 모드로 되지 않는 경우

이 글을 보시는 분의 대부분이 여기에 해당될 것으로 생각됩니다. 특정 ESP32 개발 키트에는 자동으로 업로드/플래시 모드가 되지 않습니다. 그래서 직접 해당 모드를 만들어 줘야합니다. 방법은 간단합니다. 어지간한 개발 키트에는 2개의 버튼이 있습니다. EN 버튼과 BOOT 버튼이 있습니다.

빨간 표시가 EN 버튼이고, 파란 표시가 BOOT 버튼입니다. BOOT 버튼을 누른채로 ,EN 버튼을 한번 눌렀다 떼면, 모드가 변경됩니다. 따라서 아두이노 IDE에서 업로드 버튼을 누르고, 개발 키트에서 BOOT 버튼을 누른채로 EN 버튼을 한 번 눌렀다 떼주면 업로드가 진행이 됩니다. 이때 BOOT 버튼은 업로드가 끝날 때 까지 누르고 있어야 합니다.

 

출처 https://randomnerdtutorials.com/solved-failed-to-connect-to-esp32-timed-out-waiting-for-packet-header/

계속 누르고 있는게 번거로우실 때에는 그림과 같이 EN 핀과 GND 사이에 10uF 캐패시터를 부착해주면 버튼을 따로 누르지 않아도 업로드가 가능합니다.

 

마무리

아두이노 IDE 에서 Time out, Failed to connect 와 같은 에러 문구가 발생한다면, 장치 관리자, 다른 프로그램 실행 여부, 강제 업로드 모드로 전환하는 방법들을 확인해주세요.