IBM Developer Day 2018에서 배포한 IoT 뱃지는 ESP32 Devkit을 기반으로 구성되어 있습니다. 배포 당시 설치된 행사용 소프트웨어 대신 마이크로 파이썬이 포팅된 펌웨어를 설치하면 IoT 뱃지를 개발 보드로 활용할 수 있습니다. 이 튜토리얼에서는 개발보드 연결을 위한 준비 사항과 펌웨어 설치 방법에 대해 학습합니다.

학습 목표

이 튜토리얼을 마치게 되면 다음과 같은 것을 할 수 있습니다:

  • ESP32용 드라이버 설치
  • Developer Day 2018 IoT Badge과 USB 연결
  • Developer Day 2018 IoT Badge에 펌웨어 설치

사전 준비 사항

  1. IBM Developer Day 2018 IoT Badge
  2. 데이터 통신용 USB 2.0 Micro B Type 케이블 (마이크로 5핀)
  3. Developer Day 2018 펌웨어 다운로드

소요 시간

이 튜토리얼을 완료하기까지 대략 30분 정도가 소요됩니다.

단계

USB 드라이버 설치하기

USB 드라이버는 컴퓨터에 설치된 OS에 따라 다르게 제공됩니다. 아래 링크에서 자신의 운영체제에 맞는 CP210xUSB to UART Bridge VCP 드라이버를 다운로드 합니다.

https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

IoT뱃지 연결 후 포트 확인하기

데이터 전송이 가능한 USB 2.0 Micro B Type 케이블 (마이크로 5핀)을 이용해 IoT뱃지와 컴퓨터를 연결합니다.

Windows인 경우

USB로 연결된 시리얼 포트는 내 컴퓨터장치관리자에서 확인 할 수 있습니다. 실행 명령창에서 devmgmt.mschdwwiz.cpl 명령을 실행합니다.

장치관리자에서 포트(COM & LPT) 항목을 클릭해 Sillicon Labs CP210x USB to UART Bridge 에 할당된 COM 숫자 값을 확인합니다.

아래 그림에서 확인된 포트 번호는 COM5입니다. 설치되는 USB 포트별로 다른 번호가 할당될 수 있고 드라이버 설치에 따라 기기 인식 시간이 지연 될 수 있습니다.

Linux인 경우

IoT 뱃지가 컴퓨터에 연결되면 시리얼 포트가 할당되며 일반적으로 /dev/ttyUSB0 형태로 구성되므로 정상적으로 생성되었는지 확인해 봅니다.

MacOS인 경우

/dev/tty.SLAB_USBtoUART 로 생성됩니다.

Mac OS의 버젼이 OSX Mojave 인 경우

보안 강화로 인해 드라이버 설치 직후 바로 동작하지 않으므로 다음과 같은 과정으로 드라이버를 활성화 해 주어야 합니다.

  1. 우선 Mac과 IoT Badge를 데이터 통신용 USB 케이블로 연결한 후 터미널에서 아래 명령어를 실행하여 드라이버 로딩 상태를 확인합니다.

    kextstat | grep silabs

    드라이버가 정상적으로 로딩되어 있다면 com.silabs.driver.CP210xVCPDriver 가 포함된 메시지가 출력됩니다.

  2. 위 명령에서 만약 어떤 메시지도 출력되지 않는다면 시스템 환경설정을 실행하여 보안 및 개인 정보 보호 메뉴로 진입합니다.

    일반 탭 아랫부분에 차단된 드라이버에 소프트웨어에 대한 정보가 표시되며 허용 버튼을 클릭합니다.

  3. 다시 터미널로 돌아가 드라이버가 로딩되어 있는지 확인 합니다.

    kextstat | grep silabs

만약 위와 같이 한 경우에도 연결이 안되는 경우 USB를 분리후 다시 연결하거나, MacOS를 재부팅 후 다시 시도해 보시기 바랍니다.

ESPTool 설치

Windows인 경우

ESPTool 다운로드 페이지에서 Flash Download Tools (ESP8266 & ESP32)을 다운로드 받아 압축을 해제 합니다.

Linux나 MacOS인 경우

명령창에서 다음과 같이 실행하여 최신 버젼의 esptool.py를 설치합니다.

pip install esptool

펌웨어 설치하기

펌웨어 설치는 esptool을 이용합니다.

Windows인 경우

다운로드한 폴더를 열어 flash_download_tools_v3.6.5.exe를 클릭해 실행합니다.

잠시 후 나타나는 팝업창에서 ESP32 DownloadTool을 클릭합니다.

...을 눌러 펌웨어 bin 파일을 다운받은 경로를 지정해줍니다.

그리고 파일경로 옆 @ 다음 빈칸에 0x1000 값을 입력합니다.

COM 값을 설정해주기 위해 장치 관리자를 엽니다.

포트(COM & LPT)를 클릭해 Sillicon Labs CP210x USB to UART BridgeCOM 값을 확인합니다.

제 PC에서는 현재 COM값이 COM5로 나타나고 있습니다. 여러분의 PC에서는 다른 값이 나타날 수 있으니 꼭 확인하세요.

COM값을 선택해주고, BAUD 값은 921600으로 설정합니다.

맨 위의 파일경로에 체크박스를 체크해준 후 START버튼을 누릅니다.

다운로드가 완료되어 FINISH로 상태가 변경되면 IoT뱃지를 재부팅합니다.

Fail메시지가 뜰 경우, bin 파일이 저장된 경로의 폴더명 등이 한글로 되어있지 않은지 확인합니다.

Linux/MacOS의 경우

pip로 설치된 esptool.py 파일은 실행 가능한 파일이므로 터미널

Command Line Shell(Terminal Console)을 실행하고 앞서 설치한 esptool.py이 정상 동작하는지 확인합니다.

정상적으로 설치되었다면 파라메터 없이 실행 시 아래와 같이 오류 메시지를 출력합니다.

$ esptool.py
usage: esptool [-h] [--chip {auto,esp8266,esp32}] [--port PORT] [--baud BAUD]
               [--before {default_reset,no_reset,no_reset_no_sync}]
               [--after {hard_reset,soft_reset,no_reset}] [--no-stub]
               [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
               {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,version}
               ...
esptool: error: too few arguments

이제 펌웨어를 준비합니다. 앞서 펌웨어를 다운로드 한 경로로 이동하고 아래 명령으로 펌웨어를 업데이트 합니다.

이 경우 시리얼 포트가 /dev/tty.SLAB_USBtoUART로 할당되었으며 해당 디렉토리에 firmware_badge_full_2.3_20181221.bin 파일이 있는 것을 가정합니다.

esptool.py --port /dev/tty.SLAB_USBtoUART --baud 921600 write_flash --verify --flash_size=detect 0x1000 firmware_badge_full_2.3_20181221.bin

맺음말

이 튜토리얼은 Develper Day 2018 IoT 뱃지를 개발보드로 활용하고 또 어떻게 컴퓨터와 연결하는지에 대해 설명했습니다. 설치된 마이크로 파이썬을 활용하여 보다 쉽고 편리한 IoT 개발 보드로 활용해 보시기 바랍니다.