iFLine-코딩으로 뽀샤버리기

1강. iFLine Firmware 이미지 퓨징하기

Posted by INDIFROG on 2020-06-22
Words 514 and Reading Time 3 Minutes
Viewed Times

1강. iFLine Firmware 이미지 퓨징하기

iFLine에 USB 케이블 연결

제품을 처음 구매한 상태에서는 아래 그림처럼 조립이나 선이 연결되어 있지는 않습니다.
보드와 모터, 바퀴, 배터리, IR센서보드, 초음파센서 등을 조립하고 마지막으로 iFZero 보드를 소켓에 장착을 합니다.

먼저, 프로젝트를 시작하기 전에 아래 그림과 같이 iFLine에 USB 케이블을 연결합니다.

CP210x USB-UART 드라이버 설치하기

두번째는 반드시 시리얼 드라이버를 설치를 해야 합니다. iFZero 기반 제품은 시리얼toUSB 변환을 위해 실리콘랩사의 CP210x 칩셋을 사용하고 있습니다.
CP210x USB-UART 브리지 VCP(가상 COM 포트) 드라이버는 CP210x 제품과의 호스트 통신을 용이하게 하기 위해 가상 COM 포트 장치로 동작하도록 해당 PC에 설치가 필요합니다.

따라서 CP210x 칩 제조사 싸이트의 다운로드 URL에서 자신의 데스크탑 PC에 적당한 드라이버를 찾아 직접 설치를 해 주어야 합니다.

https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

Fusing

Firmware 이미지 퓨징하기

Windows 사용자

Fusing

다음과 같은 순서로 Firmware 이미지 퓨징하기 위한 절차를 진행합니다.

1. 먼저 검색창에서 PowerShell 을 실행하세요.

2. VSCODE를 설치했으므로 시스템에 C:\Users\user\.platformio\packages\tool-esptoolpy 
   폴더가 존재합니다. 

3. PS C:\Users\user> python3 
   : python3를 설치할거냐고 묻는 화면이 나옵니다. python을 설치해야 합니다.

Fusing

4. 설치가 정상적으로 완료가 되고 나서 다시 python을 입력하면 python IDLE이 실행이 됩니다.
   python IDLE를 종료하기 위해서는 exit(), Enter 키를 입력해서 명령행으로 나옵니다.

Fusing

5. PS C:\Users\user>  pip install pyserial
   : 시리얼 포트로 업로드하기 위해 pyserial을 설치합니다.

6. 이제 Firmware 이미지를 업로드할 준비가 되었습니다.

Fusing

iFLine 펌웨어 이미지 파일 : iFLine_firmware_20200801.zip

iFBalance 펌웨어 이미지 파일 : iFBalance_firmware_20200801.zip

Firmware 이미지 업로드 ( Windows )

Windows에서는 iFLine 폴더에 펌웨어 이미지 압축파일을 풀고 나서 PowerShell에서 iFLine 폴더로 이동(cd 명령어)한 후 하기 명령어를 복사해서 Enter키를 입력합니다.

  python C:\Users\user\.platformio\packages\tool-esptoolpy/esptool.py --chip auto --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x8000 ./partitions.bin 0x10000 ./firmware.bin

Firmware 이미지 업로드 ( OSX )

Mac에서는 기본으로 Python이 설치가 되어 있으므로 VSCODE가 설치가 되어 있다면 바로 하기 명령어를 수행할 수 있습니다.
iFLine 폴더에 펌웨어 이미지 압축파일을 풀고 나서 터미널에서 iFLine 폴더로 이동(cd 명령어)한 후 하기 명령어를 복사해서 Enter키를 입력합니다.

  % $HOME/.platformio/packages/tool-esptoolpy/esptool.py --chip auto --port "/dev/cu.SLAB_USBtoUART" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x10000 ./firmware.bin

위의 명령행에서 “$HOME/“는 사용자 이름의 PATH를 표시합니다.

아래는 업로드 결과입니다.

  esptool.py v3.0
  Serial port /dev/cu.SLAB_USBtoUART
  Connecting....
  Detecting chip type... ESP32
  Chip is ESP32-PICO-V3 (revision 3)
  Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
  Crystal is 40MHz
  MAC: 50:02:91:95:52:44
  Uploading stub...
  Running stub...
  Stub running...
  Changing baud rate to 921600
  Changed.
  Configuring flash size...
  Auto-detected Flash size: 4MB
  Compressed 3072 bytes to 128...
  Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 3822.6 kbit/s)...
  Hash of data verified.
  Compressed 780400 bytes to 445714...
  Wrote 780400 bytes (445714 compressed) at 0x00010000 in 8.2 seconds (effective 758.8 kbit/s)...
  Hash of data verified.

  Leaving...
  Hard resetting via RTS pin...