Skip to content

TMA‐1 설정 도구 가이드

LUFT-AQUILA edited this page Oct 31, 2023 · 43 revisions

TMA-1 데이터로거의 기능을 활성화/비활성화하여 펌웨어를 빌드하고 장비에 업로드하는 GUI 도구입니다.

펌웨어 작업 중에는 GUI가 응답없음 상태가 됩니다. 콘솔 출력 메시지를 보면서 기다리면 돌아옵니다.

0. Prerequisites

TMA-1 설정 도구는 최초 1회에 한하여 약 1.2GB를 인터넷에서 다운로드하며, 최소 5.5GB의 저장 공간이 필요합니다.

1. Install

보안 경고는 모노리스 실행 파일이 pyinstaller로 패키징된 파이썬 스크립트이기 때문에 발생합니다. (관련 이슈)

  • 인스톨러는 릴리즈 페이지의 monolith-<version>.zip 을 다운받아 C:/monolith 에 압축을 푸는 작업을 수행하며, 관리자 권한은 C:/ 경로에 새 디렉터리를 생성하는데 사용됩니다.
  • 모노리스가 C:/monolith에 설치되는 것은 경로가 길면 ESP32 펌웨어 빌드가 실패하기 때문입니다. (Windows Command-line string limitation)
  1. 다운로드 페이지에서 최신 monolith 설치 파일(monolith-installer-<version>.exe)을 다운로드합니다.
  2. 설치 파일을 다운로드하거나 실행하면 다음과 같은 보안 경고가 표시됩니다.
    • Chrome SafeBrowsing


      우측의 버튼을 클릭한 다음 계속 다운로드를 누릅니다.

    • Windows Defender SmartScreen

      추가 정보를 클릭한 다음 실행 을 누릅니다.

    • 기타 백신 프로그램
      다운로드한 설치 파일을 백신에서 실행 허용합니다.

  3. 설치 파일을 실행하고 잠시 기다리면 C:/monolith 경로에 모노리스가 설치됩니다.
  4. Installation complete! 메시지가 출력되면 인스톨러를 닫습니다.

2. Run

  1. 파일 탐색기를 열어 C:/monolith/builder 경로로 이동합니다.
  2. main.exe 파일을 실행해 TMA-1 설정 도구를 실행합니다.

3. STM32

TMA-1의 주요 기능은 모두 STM32F4 개발보드가 담당합니다. 보드에 펌웨어를 업로드해야 정상적으로 작동합니다.

Options

TMA‐1 기능 및 사용 가이드를 참고하여 사용할 기능을 활성화합니다.

  • Datalogging

    • Output
      • SD Card
        Micro SD 카드에 로그를 저장합니다. 기본 기능으로 비활성화할 수 없습니다.
      • Telemetry
        무선 실시간 모니터링 기능을 활성화합니다.
      • Serial
        LTX 핀에서 115200bps 3.3V UART로 로그를 출력합니다. 사용하지 않는다면 비활성화해야 성능이 향상됩니다.
    • Sensors
      각 측정 기능의 활성화 여부를 선택합니다. 입력 전압과 CPU 온도 모니터링은 기본 기능으로 비활성화할 수 없습니다.
  • Upload

    • Debug Mode
      TMA-1의 디버그 메시지를 DEBUG UART 포트로 출력합니다.
      활성화 시 데이터로깅 성능을 심각하게 저해하므로 작동 확인 시에만 사용해야 합니다.
      Debug Mode를 비활성화해도 DEBUG UART 포트를 통한 RTC 동기화 기능은 정상적으로 작동합니다.

    • Release Build
      빌드 시 릴리즈 옵션(-O2)으로 컴파일합니다. 비활성화하면 -g -gdwarf-2 옵션으로 빌드합니다.
      STLink 런타임 디버깅을 사용할 것이 아니라면 항상 활성화된 상태로 둡니다.

펌웨어 업로드

STLink는 이 제품을 사용합니다. 다른 것도 무방합니다.

먼저 STLink를 컴퓨터에 연결하기 전에 STLink Driver를 설치합니다.

STM32F4 개발보드와 STLink의 SWDIO, SWCLK, GND를 서로 연결하고, STLink를 컴퓨터와 연결합니다.

image

image

장비에 전원을 공급하고 FLASH TMA-1 버튼을 누르면 자동으로 펌웨어를 빌드하고 장비에 업로드합니다.

작업이 실패했다면 콘솔에 출력되는 메시지를 복사하여 Discussions에 Q&A로 올리면 됩니다.

RTC 동기화

TMA-1의 RTC 시계를 수동으로 컴퓨터와 동기화합니다.

  1. TMA-1의 DEBUG UART 핀 헤더를 UART to USB 컨버터를 통해 연결합니다.
  2. TMA-1의 TX 핀은 컨버터의 RX에, TMA-1의 RX는 컨버터의 TX에 연결합니다.
  3. Sync RTC 버튼을 누르고, UART to USB 컨버터의 COM 포트를 선택하면 동기화가 진행됩니다.
  • 동기화에 여러 번 실패한다면 TMA-1 전원을 껐다 켠 후 재시도합니다.
  • 텔레메트리 기능을 사용한다면 서버와 연결할 때 자동으로 시간을 동기화하므로 수동 RTC 동기화를 진행할 필요가 없습니다.

4. ESP32

텔레메트리 기능을 사용하려면 ESP32에도 펌웨어를 업로드해야 합니다.

Options

ESP32가 연결할 Wi-Fi Hotspot과 텔레메트리 채널 등을 설정합니다.

ESP32는 차량에 탑승하는 드라이버의 스마트폰 핫스팟 네트워크와 연결하여 인터넷에 접속합니다.

  • Wi-Fi Hotspot SSID
    ESP32가 연결할 Wi-Fi 핫스팟 네트워크의 이름입니다.
  • Wi-Fi Hotspot Password
    핫스팟 네트워크의 비밀번호입니다.
  • Channel Name
    서버 사용자 등록 시 설정한 채널 이름입니다.
  • Channel key
    서버 사용자 등록 시 설정한 passkey입니다.
  • Server Name
    사용할 TMA-2 텔레메트리 서버 주소입니다.
    별도로 구축하지 않았다면 기본값인 monolith.luftaquila.io로 둡니다.
  • COM Port
    펌웨어 업로드 시 사용할 시리얼 포트입니다.
    공란으로 두면 자동으로 CP2102 UART 칩셋을 찾아 업로드를 시도합니다.
    업로드가 잘 되지 않는다면 장치 관리자에서 정확한 시리얼 포트를 찾아 포트 이름을 입력합니다.

펌웨어 업로드

ESP32의 C타입 USB 단자와 컴퓨터를 연결하고 Flash ESP32 버튼을 누르기만 하면 모든 과정을 자동으로 진행합니다.

단, ESP32는 프로그램 업로드 시 DOWNLOAD_BOOT 모드로 진입해야 합니다. 여기에는 두 가지 방법이 있습니다.

KakaoTalk_20231020_154304966

1. 10uF capacitor

ESP32를 TMA-1 보드에 장착하고, 보드에 C1 10uF 커패시터를 장착했다면 자동으로 ESP32가 업로드 모드로 진입합니다.

ESP32를 TMA-1 보드에서 분리한 상태로 펌웨어를 업로드하려면 2번 방법을 사용해야 합니다.

2. EN

ESP32 개발보드에는 EN 버튼이 있습니다. Flash ESP32 버튼을 누르고 조금 기다리면 콘솔에 다음과 같은 메시지가 표시됩니다.

INFO: flashing TMA-1 ESP32 binary...
esptool.py v4.5.1
Serial port COM #

이 때, ESP32의 EN 버튼을 누르면 펌웨어 업로드가 진행됩니다.

Writing at 0x########... (## %) 메시지가 표시될 때까지 버튼을 계속 누르고 있다가, 메시지가 표시되면 뗍니다.


5. Uninstall

  1. C:/monolith 디렉터리를 삭제합니다.