Arduino Nano ESP32

Arduino Nano ESP32 보드를 ESP-IDF로 동작시켜 봅시다

장병남 2024. 6. 19. 02:12

Arduino Nano ESP32 Board

 
Arduino에서 공식지원 첫 번째 ESP32 보드인 Nano ESP32 보드입니다. 
보드에 대한 정보는 아래 사이트를 참고하시기 바랍니다.
https://store-usa.arduino.cc/products/nano-esp32?selectedStore=us

 

Arduino® Nano ESP32

Introducing the Nano ESP32, a powerful addition to the Arduino ecosystem that brings the popular ESP32-S3 to the world of Arduino and MicroPython programming. Whether you're a beginner stepping into the world of IoT or MicroPython, or an advanced user look

store-usa.arduino.cc

 
Nano ESP32 보드 ESP-IDF 샘플 프로젝트는 아래 오픈소스를 참고 했습니다. 
https://github.com/igrr/arduino-nano-esp32

 

GitHub - igrr/arduino-nano-esp32: Arduino Nano ESP32 Board Support Package for ESP-IDF

Arduino Nano ESP32 Board Support Package for ESP-IDF - igrr/arduino-nano-esp32

github.com

 
먼저, 프로젝트를 클론해서 로컬로 가져옵니다. (window에서는 Git Bash로 터미널을 열어서 원하는 위치에 클론 합니다.)

git clone (using ubuntu 22.04)

 
Visual Studio Code를 실행하고 File → Open Folder를 실행합니다. ESP-IDF 개발환경이 준비되어 있지 않으면 링크 내용을 참고해서 설치합니다. https://codezoo.tistory.com/79

 
프로젝트를 클론 한 위치로 이동해서 examples → blink를 선택하고 Open 합니다.

 
 
아래와 같은 화면을 확인할 수 있습니다. 

 
EXPLORER 화면이 보이지 않으면 View → Explorer을 실행 합니다.

 
빌드 설정하기 앞서 좌측의 sdkconfig.defaults 파일 내용을 확인합니다. 마우스로 클릭하면 우측 편집기에 내용이 출력됩니다. 

Target은 esp32s3이고, Flash Memory는 Quad SPI 인터페이스의 16MB, Octa SPI 인터페이스 PSRAM 8MB를 지원합니다. 외부 32kHz의 RTC 클럭을 지원하고 USB Serial JTAG를 사용합니다. 위 내용은 sdk가 구성될 때 적용되는 옵션이고 이후 Nano ESp32 보드와 ESP-IDF로 다른 프로젝트를 빌드할 때도 default 옵션으로 적용해야 하는 내용입니다. 
다른 프로젝트에 어떻게 적용하는지는 다음 프로젝트를 진행할 때 설명하겠습니다. 
 
내용 확인이 마무리되었으면 빌드 설정을 진행하겠습니다. 
아래 버튼으로 순서대로 진행하시면 됩니다. 
 
1. USB포트 설정

포트 클릭 후 활성화 된 USB포트를 선택합니다. 

 
2. 보드 설정

1) esp32 클릭 후 경로를 선택 합니다.

 
2) esp32s3 보드를 선택합니다.

 
3) OpenOCD 설정 파일 경로를 설정합니다. ESP-PROG를 선택합니다.

 
4) 현재 경로를 지정합니다.

 
5) SDK를 구성합니다.

 
위에서 확인한 sdkconfig.defaults 내용들이 잘 적용되어 있는지 확인해 보겠습니다. 
[PSRAM 설정]

 
[Flash 설정]

 
[RTC 설정]

 
[JTAG 설정]

 
sdkconfig.defaults 내용이 모두 잘 적용된 것을 확인했습니다. 이제 우측 상단의 Save 버튼을 누릅니다.

 
이제 빌드 후 Nano ESP32 보드에 업로드하겠습니다.
[빌드]

 
[업로드 장치 설정]

UART를 선택합니다.

 
[펌웨어 업로드]

 
아래와 같은 메시지를 출력 후 실패 합니다.

 
 
펌웨어 업로드가 실패하는 이유는 현재  Nano ESP32 보드에 Arduino Bootloader가 설치되어 있기 때문입니다.
이제 복구모드를 이용해서  ESP-IDF 펌웨어를 업로드하겠습니다.
 
아래 내용을 참고했습니다.
https://support.arduino.cc/hc/en-us/articles/9810414060188-Reset-the-Arduino-bootloader-on-the-Nano-ESP32
 

[ 부트로더 복구모드 ]

1) GND와 B1 핀 사이에 점퍼 케이블을 연결합니다 . RGB LED가 녹색으로 켜집니다.

 


2) GND 와 B1 핀이 단락 된 동안 보드 상단의 흰색 RST 버튼을 눌러 보드를 펌웨어 다운로드 모드로 재설정합니다.

3) 점퍼 케이블을 제거합니다. RGB LED는 보라색이나 노란색으로 켜져 있어야 합니다.

 
이 상태에서 다시 펌웨어 업로드를 시도하겠습니다. 아래 번개 아이콘을 클릭합니다.

펌웨어 업로드가 정상적으로 마무리된 것을 확인할 수 있습니다. 
Nano ESP32 보드 리셋버튼을 누릅니다.
 
blink example이 아래 영상처럼 잘 동작하는 것을 확인할 수 있습니다.

"이렇게 한번 동작시킨 이후에는 ESP-IDF에서 부트로더 복구모드 없이 펌웨어 업로드가 가능합니다." 

마지막으로
ESP-IDF로 개발했던 Nano ESP32 보드를 Arduino IDE에서 동작할 수 있게 복구하는 과정은 아래와 같습니다. 

0. [ 부트로더 복구모드 ]로 Nano ESP32 보드 하드웨어를 설정합니다.

1. Arduino IDE를 실행하고 Tools → Board → Arduino ESP32 Boards → Arduino Nano ESP32를 선택합니다. 

2. Tools → Programmer → Esptool을 선택합니다.

3. Tools → Port → (활성화된 USB포트)를 선택합니다.

 
4. Sketch → Upload Using Programmer로 아두이노 부트로더를 업로드합니다.

 
5. 업로드가 완료되면 USB 케이블을 뽑았다가 다시 연결합니다. 

 
6. Tools → Port를 확인하면 아래와 같이 /dev/USB포트(Arduino Nano ESP32)로 연결된 것을 확인할 수 있습니다.

 
7. Blink 예제를 업로드합니다. 

 
8. 업로드 후 왼쪽 상단의 주황색 LED가 깜빡거리는 것을 확인할 수 있습니다. 

 

 

Arduino Nano ESP32 with headers

ABX00083 / ESP32-S3 와이파이 블루투스 콤보 칩셋 기반의 IoT, 마이크로 파이썬 특화 아두이노 나노 / u-blox NORA-W106(ESP32-S3) 칩셋 / USB-C 커넥터 / 입력 전압 : 6 - 21V / I/O 전압 : 3.3V / 아두이노 IoT 클라우드

www.devicemart.co.kr