02 환경 설정 (venv, 플래시 도구와 펌웨어)
시작하기 전에 이 페이지를 먼저 하세요. 명령은 저장소 루트 - GitHub에서 내려받은
SR-Support폴더(zip 압축을 풀면SR-Support-main일 수 있음;firmware/와tools/가 들어 있는 폴더)를 기준으로 합니다. 모든 Python 명령은.venv가 활성화된 터미널에서 실행합니다(2.3). 사전 빌드 펌웨어 플래싱에는 PlatformIO도 컴파일도 필요 없습니다; 개발자 환경(2.5)은 코드를 수정할 때만 필요합니다.
2.1 요구 사항
- Windows, Linux 또는 macOS(아래 각 명령은 해당되는 경우 세 OS 모두에 대해 안내합니다);
- USB 데이터 케이블(충전 전용 케이블로는 보드가 인식되지 않습니다);
- ESP32-S3-DevKitC-1(8 MB 플래시).
2.2 코드와 사전 빌드 펌웨어 받기
저장소를 클론(또는 제공된 압축 파일을 해제)하고 이후 명령은 저장소 루트에서 실행하세요:
bashgit clone https://github.com/Juxi-Technology/SR-Support.git cd SR-Support(저장소는 비공개입니다 - 먼저 접근 권한을 요청하세요.)
사전 빌드 이미지는
firmware/releases/에 있습니다:파일 용도 sr_support_b_ptk_factory.bin메인 펌웨어(0x0에 플래싱; 조립 시 센터링에도 사용: 전원을 켜면 펌웨어 영점, e는 선택 사항)SHA256SUMS체크섬
2.3 가상 환경(.venv) 만들기와 활성화
모든 컴퓨터 측 Python 도구(esptool, PlatformIO, MuJoCo 도구)는 동일한 프로젝트 로컬 .venv에 설치하며, 그 .venv는 GitHub에서 내려받은 SR-Support 폴더 안에 만들어야 합니다(zip 압축을 풀면 SR-Support-main일 수 있음; 다시 말하지만 firmware/와 tools/가 들어 있는 폴더입니다).
먼저 그 폴더로 이동하세요 - 아래 명령은 그곳에서 실행됩니다:
Windows (PowerShell)
cd D:\Project\SR-Support # replace with where your SR-Support folder lives
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1- 올바른 위치에 있는지 확실하지 않나요?
dir을 실행하세요;firmware,tools,tutorial이 나열되어야 합니다; - Python 3.12가 없으면
py -3 -m venv .venv를 사용하세요(3.10 이상이면 됩니다); - PowerShell이 스크립트 실행을 거부하면 이 창에서
Set-ExecutionPolicy -Scope Process Bypass를 실행한 뒤 다시 활성화하세요; .\.venv\Scripts\Activate.ps1은 venv가 만드는 PowerShell 활성화 스크립트입니다: 앞의.\는 "현재 폴더의 스크립트를 실행하라"는 뜻이며 PowerShell에서는 필수입니다 (Activate.ps1만 입력하면 찾지 못합니다). 다른 셸은 각자의 파일을 사용합니다:- cmd.exe:
.venv\Scripts\activate.bat - Git Bash:
source .venv/Scripts/activate - venv에서 나오려면
deactivate
- cmd.exe:
Windows (cmd.exe)
cd /d D:\Project\SR-Support # cmd needs /d to change drive; plain cd D:\... stays on C:
py -3.12 -m venv .venv
.venv\Scripts\activate.bat셸 구분법: cmd 프롬프트는
C:\...>처럼, PowerShell은PS C:\...>처럼 보입니다. 이 튜토리얼은 기본으로 PowerShell을 사용합니다; cmd에서는 활성화 명령만activate.bat으로 바꾸면 나머지는 동일합니다. 관리자 권한은 필요 없습니다.활성화 파일은 셸과 일치해야 합니다: cmd는
activate.bat, PowerShell은Activate.ps1을 사용합니다. cmd에서.ps1을 실행하면 현재 창은 활성화되지 않습니다 (보통 아무 일도 일어나지 않거나 별도 창이 열립니다). 또한.venv가 먼저 존재해야 합니다(dir에.venv폴더가 나열되어야 함); 없다면 먼저py -3.12 -m venv .venv를 실행하세요.
Linux / macOS
cd ~/SR-Support # replace with where your SR-Support folder lives
python3 -m venv .venv
source .venv/bin/activate- 올바른 위치에 있는지 확실하지 않나요?
ls를 실행하세요;firmware,tools,tutorial이 나열되어야 합니다.
활성화 후 프롬프트에 **(.venv)**가 표시됩니다. 아래의 모든 명령과 이후 튜토리얼 페이지의 모든 명령은 이 활성화된 터미널에서 실행합니다; 새 창을 열면 다시 활성화하세요. 활성화하지 않으면 pip / python이 시스템 설치를 가리켜 설치나 실행이 실패합니다.
활성화가 되었는지 확인하세요:
- Windows:
where python- 첫 줄이...\SR-Support\.venv\Scripts\python.exe여야 합니다; - Linux / macOS:
which python-.../SR-Support/.venv/bin/python이어야 합니다.
cmd에서 활성화 후 화면이 지워졌나요? 기본
activate.bat은 콘솔 코드 페이지를 일시적으로 전환(chcp 65001)하며 일부 터미널은 화면을 다시 그립니다 - 새 터미널이 아닙니다. 새 프롬프트가(.venv)로 시작하고where python이.venv안을 가리키면 활성화에 성공한 것입니다. 화면 재그리기를 피하려면 PowerShell의Activate.ps1을 사용하거나(코드 페이지를 건드리지 않음) 활성화 없이.venv\Scripts\python.exe를 직접 호출하세요.
디렉터리 요구 사항(중요):
.venv는 반드시 **SR-Support폴더(저장소 루트)**에 있어야 하며, 하위 폴더에 두면 안 됩니다. 위의 생성/활성화 명령은 상대 경로를 사용하므로 반드시 그 폴더에서 실행해야 합니다 - 새 터미널을 연 뒤에는 먼저 그 폴더로 이동한 후(PowerShell:cd D:\Project\SR-Support; cmd:cd /d D:\Project\SR-Support, 경로는 본인 것 사용) 활성화하거나,C:\path\SR-Support\.venv\Scripts\Activate.ps1/source /path/SR-Support/.venv/bin/activate같은 절대 경로를 사용하세요.활성화한 뒤에는 어느 하위 폴더로
cd해도python/pip/pio가 그.venv를 가리킵니다; 하지만 튜토리얼의tools/...,firmware/...,hardware/v1/...경로는 상대 경로이므로SR-Support폴더에서 실행하세요. venv는 생성된 경로에 묶여 있습니다: 저장소를 이동하거나 이름을 바꾼 뒤에는.venv를 삭제하고 다시 만드세요.
2.4 플래시 도구 (모든 고객 - 하나 선택)
사전 빌드 이미지는 0x0에 플래싱하는 bin 하나입니다 - PlatformIO도, 툴체인 다운로드도 필요 없습니다. 터미널이 SR-Support 폴더에 있고 프롬프트에 (.venv)가 표시되는지 확인하세요.
A. Windows GUI: Espressif Flash Download Tool
- Espressif 공식 "Other Tools" 페이지를 열고 Flash Download Tools를 다운로드하세요: https://www.espressif.com/en/support/download/other-tools
- 실행한 뒤 ESP32-S3를 선택하고,
firmware/releases/sr_support_b_ptk_factory.bin을 주소0x0에 로드하고, 포트를 선택한 뒤 START를 클릭하세요.
Flash Download Tool은 Windows 전용입니다; Linux/macOS에서는 아래 esptool을 사용하세요.
B. Windows / Linux / macOS: esptool (명령줄)
pip install esptool중국에서 네트워크가 느리면 미러를 사용하세요:
pip install esptool -i https://pypi.tuna.tsinghua.edu.cn/simple플래싱(COM27은 본인의 포트; Linux /dev/ttyACM0, macOS /dev/tty.usbmodem*):
python -m esptool --chip esp32s3 -p COM27 -b 460800 write_flash 0x0 firmware/releases/sr_support_b_ptk_factory.bin연결에 실패하면 다운로드 모드로 진입하세요: BOOT을 누른 채 RST를 짧게 누르고, BOOT을 놓으세요.
2.5 PlatformIO (개발자 전용 - 소스에서 빌드)
코드를 수정하지 않는 한 이 절은 건너뛰세요. 참고: PlatformIO(VS Code PlatformIO 확장 포함)는 처음 사용할 때 espressif32 플랫폼과 Xtensa 툴체인을 다운로드합니다(PlatformIO 레지스트리와 GitHub에서 약 1 GB). 중국의 많은 네트워크에서는 느리거나 실패하며 프록시/VPN이 필요합니다; VS Code 확장도 다운로드를 피하지 못합니다.
터미널이 SR-Support 폴더에 있고 (.venv)가 활성화된 상태에서:
pip install platformioWindows에서는 tools/install_platformio.ps1을 실행할 수도 있으며, 같은 .venv에 설치합니다. 확인:
pio --version이전 튜토리얼 버전에서는 PlatformIO를 별도의
.venv-pio에 설치했지만, 이제는 단일.venv에 들어갑니다. 업그레이드 후pio를 찾지 못하면 활성화된.venv에서pip install platformio를 실행하세요(또는tools/install_platformio.ps1을 다시 실행); 예전.venv-pio는 삭제해도 됩니다.
2.6 컴퓨터 측 도구와 MuJoCo 환경 (트윈 / 영점 조정 / 로그)
플래싱에는 필요 없습니다. 화살표 키 영점 도구, MuJoCo 라이브 트윈(tools/live_twin.py), 시뮬레이션 리플레이 또는 로그 도구를 사용할 때 설치하세요. 터미널이 SR-Support 폴더에 있고 .venv가 활성화된 상태에서 의존성을 설치하세요(pyserial, numpy, MuJoCo 3.1+, gymnasium):
pip install -r tools/requirements.txtWindows에서는 tools/install_tools_env.ps1을 실행할 수도 있습니다(.venv를 생성/재사용하고 같은 패키지 세트를 설치). 중국에서 네트워크가 느리면 칭화대 미러 -i https://pypi.tuna.tsinghua.edu.cn/simple를 덧붙이세요; 첫 설치 시 수백 MB를 다운로드합니다.
점검: 환경 자체 테스트 실행(단순 import가 아니라 MuJoCo를 로드하고 스텝까지 실행)
python tools/env_check.py마지막 줄이 env check: PASS여야 하며, 출력은 다음과 비슷합니다:
[ok] mujoco 3.16.0
[ok] model hardware\v1\robot_v1.xml: nq=9 nv=8 dt=0.0002s, 200 steps stable ...보드를 연결하지 않은 경우 [--] no serial port found는 안내일 뿐이며 PASS에 영향을 주지 않습니다.
Linux에서 MuJoCo 창이 열릴 때 GLFW/OpenGL 오류가 나면 시스템 라이브러리가 없는 것입니다:
libgl1과libglew-dev를 설치하세요(예:sudo apt install libgl1 libglew-dev). Windows/macOS용 MuJoCo 휠에는 필요한 것이 포함되어 있습니다.training/b_line시뮬레이션과 리플레이도 같은 환경을 사용합니다 - 추가로 설치할 것은 없습니다.
2.7 보드 연결 및 시리얼 포트 확인
- USB-C로 연결하세요; Windows에서는 장치 관리자에서 COM 번호를 확인하고, Linux에서는 보통
/dev/ttyACM0(사용자를dialout그룹에 추가), macOS에서는 보통/dev/tty.usbmodem*입니다; - 포트를 기억하세요 - 이후 페이지의 모든
COM27이 이 값입니다; - 시리얼 모니터나
hw_monitor.py가 포트를 점유합니다; 플래싱 전에 닫으세요.
2.8 체크리스트
- [ ] 터미널이 저장소 루트에 있고 프롬프트에
(.venv)가 표시됨 (pwd/Get-Location으로 확인); - [ ]
firmware/releases/sr_support_b_ptk_factory.bin이 존재하고 검증됨 (sha256sum -c firmware/releases/SHA256SUMS); - [ ]
python -m esptool version이 동작하거나 Flash Download Tool이 열림; - [ ] 보드의 시리얼 포트가 보임;
- [ ] (개발자)
pio --version이 동작함; - [ ]
python tools/env_check.py가env check: PASS를 출력함.
필요한 항목이 모두 통과된 후에만 계속 진행하세요.

