KO S3 HUD - ajouatom/openpilot GitHub Wiki
CARROT S3 Wi-Fi HUD ์ค์น ์ค๋ช ์
์ผ๋ฐ ์ฌ์ฉ์๋ NAS ์ค์น ํ์ด์ง๋ฅผ ์ฌ์ธ์. PC Chrome/Edge์์ ๋ณด๋๋ฅผ ์ ํํ๊ณ ์ค์นํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ ํ๊ฒฝ์ ํ์ ์์ต๋๋ค. ํ์จ์ดยท์ค๋ช ์ ZIP ยท ๊ฒ์ฆ๊ฐ
์ค๋น๋ฌผ๊ณผ ์ง์ ๋ฒ์
| ์ค๋น๋ฌผ | ํ์ธํ ๋ด์ฉ |
|---|---|
| ESP32-S3 N16R8 | Flash 16MB, Octal PSRAM 8MB, UART/USB ๋ USB-C ํฌํธ๊ฐ ์๋ DevKitC-1 ํํ |
| ์ํ ๋ | ๋ณด๋ ๋์ ์ํ ๋๊ฐ ๋ถ์ ์ ํ ๊ถ์ฅ. ์ธ์ฅ ์ํ ๋ํ์ ๋ณ๋ ์ํ ๋ ํ์ํ๋ฉฐ ์ด๋ฒ ๊ฒ์ฆ ๋์ ์๋ |
| USB ํ๋ฉด | TURZX 9.2์ธ์น 1920ร462, USB ID 1cbe:0092 |
| ์ ์ํ USB ํ๋ธ | ๋ณธ์ฒด ์ฐ๊ฒฐ์ฉ ์ผ์ด๋ธ + USB ๋ฐ์ดํฐ ํฌํธ + ์ธ๋ถ ์ ์ ์ ๋ ฅ. ๋ชจ๋ ํ๋ธ์ ํธํ์ฑ์ ๋ณด์ฅํ์ง ์์ |
| ์ ์ยท์ผ์ด๋ธ | ํ๋ฉด/ํ๋ธ ์๊ตฌ ์ ๋ ฅ์ ์ถฉ์กฑํ๋ USB ์ ์, ๋ฐ์ดํฐ ์ง์ USB ์ผ์ด๋ธ |
ESP32, S2, C3, N8R2, PSRAM ์๋ ๋ณด๋๋ ์ด ํ์จ์ด ๋์์ด ์๋๋๋ค. HDMI ๋๋ USB-C DP Alt Mode ๋ชจ๋ํฐ๋ก ์์ ์ ํธ๋ฅผ ๋ด๋ณด๋ด๋ ์ฅ์น๊ฐ ์๋๋๋ค.
์ฐ๊ฒฐ
PC ๋๋ C4 โโ S3 UART ํฌํธ (BOOT ๋ฒํผ ์ชฝ): ์ค์นยท์ต์ด ๋ฑ๋ก
S3 USB ํฌํธ (RESET ๋ฒํผ ์ชฝ)
โ
ํ๋ธ ๋ณธ์ฒด ์ฐ๊ฒฐ์ฉ ์ผ์ด๋ธ
โ
์ ์ํ ํ๋ธ โโ USB ํ๋ฉด (๋ฐ์ดํฐ ํฌํธ)
โ
USB ์ ์ ์
๋ ฅ
๋ณด๋์ ์ข์ฐ๋ณด๋ค UART / USB ์ธ์๋ฅผ ํ์ธํ์ธ์. ์ํ ๋ณด๋๋ USB ํฌํธ์์
ํ๋ฉด์ฉ ์ ์์ ๊ณต๊ธํ์ง ๋ชปํด ์ ์ํ ํ๋ธ๊ฐ ํ์ํ์ต๋๋ค. ์ ์์ ๋ฐ์ ํ๋ฉด์ด
์ ์กฐ์ฌ ๋ก๊ณ ๋ฅผ ๋ณด์ฌ๋ USB ๋ฐ์ดํฐ ํต์ ์ด ๋๋ค๋ ๋ป์ ์๋๋๋ค.
๋ฑ๋ก ์ ๋๊ธฐ ํ๋ฉด์ ์๋ฑ๋ ์ ์์ผ๋ฉฐ, ์ค์ ๋ชจ๋๋ฅผ ์ด๋ฉด ์ค์ ์๋ด๊ฐ ๋์ต๋๋ค.
1. ํ์จ์ด ์ค์น ๋๋ ์ ๋ฐ์ดํธ
- S3 UART ํฌํธ๋ฅผ ๋ฐ์ดํฐ ์ผ์ด๋ธ๋ก PC์ ์ฐ๊ฒฐํฉ๋๋ค.
- PC Chrome/Edge์์ NAS ์ค์น ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
- ์ ๋ณด๋๋ ์ฒ์ ์ค์น, ๊ธฐ์กด CARROT ๋ณด๋๋ ์ ๋ฐ์ดํธ๋ฅผ ์ ํํฉ๋๋ค.
- ๋ณด๋ ํ์ธ๋์ ์ ํํ๊ณ ์ค์น ๋ฒํผ์ ๋๋ฌ CP210x / USB Serial ํฌํธ๋ฅผ ๊ณ ๋ฆ ๋๋ค.
- ์๋ฃ ๋ฉ์์ง๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. S3๊ฐ ์ฌ์์ํฉ๋๋ค.
์ ๋ฐ์ดํธ๋ ๊ธฐ์กด ํํฐ์ ์ ๊ฒ์ฌํ ๋ค ์ฑ๋ง ๊ต์ฒดํฉ๋๋ค. ์ฒ์ ์ค์น๋ ์ ์ฒด ์ง์ฐ๊ธฐ๋ฅผ ํ์ง ์์ต๋๋ค. ์ค์น ์ ํ ๋ฑ๋ก ์ ์ฅ ์์ญ์ ๋น๊ตํด Wi-Fiยท๋ฑ๋ก ์ ๋ณด ๋ณด์กด์ ํ์ธํฉ๋๋ค. ์ฒ์ ์ค์น๋ ๋ณด๋์ ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ CARROT์ผ๋ก ๊ต์ฒดํฉ๋๋ค.
ํฌํธ๊ฐ ์์ผ๋ฉด ๋ฐ์ดํฐ ์ผ์ด๋ธ/UART ํฌํธ๋ฅผ ํ์ธํ๊ณ , ํ์ ์ Silicon Labs CP210x ๋๋ผ์ด๋ฒ๋ฅผ ์ค์นํฉ๋๋ค. ๋ค๋ฅธ UART ์นฉ ๋ณด๋๋ ํด๋น ์นฉ์ ๋๋ผ์ด๋ฒ๊ฐ ํ์ํฉ๋๋ค. ์๋ ์ฐ๊ฒฐ์ ์คํจํ๋ฉด BOOT๋ฅผ ๋๋ฅธ ์ฑ RESET์ ํ ๋ฒ ๋๋ฅด๊ณ ๋ ๋ฒํผ์ ๋ ๋ค ์ฌ์๋ํ์ธ์. ๋ค๋ฅธ ์๋ฆฌ์ผ ๋ชจ๋ํฐ๋ ๋ซ์ ๋์ธ์. ์คํจ ์ ๊ฐ์ ์ค์น๋ฅผ ๋ค์ ์คํํ ์ ์์ต๋๋ค.
2-A. C4 USB๋ก ๋ฑ๋ก (๊ถ์ฅ)
C4์ ์ต์ carrot-nav/carrot-wip๊ฐ ์ค์น๋ผ ์์ด์ผ ํฉ๋๋ค. C4๋ฅผ ์ฌ์ฉํ 2.4GHz Wi-Fi/ํฐ ํซ์คํ์ ์ฐ๊ฒฐํ ๋ค S3์ UART ํฌํธ๋ฅผ C4์ ์ฐ๊ฒฐํ์ธ์. C4 ์น ํฐ๋ฏธ๋ ๋๋ SSH ํฐ๋ฏธ๋์์ ์คํํฉ๋๋ค. ์๋์ ๊บผ๋ ๋ฑ๋กํ ์ ์์ต๋๋ค.
cd /data/openpilot
python3 tools/esp32s3_display/provision.py --auto
ํ์ฌ Wi-Fi ์ด๋ฆ๊ณผ ์ํธ๋ฅผ S3์ ์ ์ฅํ๊ณ C4 ๋ฑ๋ก๊น์ง ๋ง์นฉ๋๋ค. ์ง์ UART๊ฐ ํ ๊ฐ์ผ
๋๋ง ์๋ ์ ํํ๋ฉฐ S3 ์๋ต์ ํ์ธํ ๋ค ์ ์ฅํฉ๋๋ค. ์ฌ๋ฌ ํฌํธ๊ฐ ์์ผ๋ฉด ์ค์ S3๋ฅผ
ํ์ธํด --auto ๋์ --port /dev/ttyUSB0์ฒ๋ผ ์ง์ ํ์ธ์.
Wi-Fi ์ํธ๋ฅผ ์ฝ์ ๊ถํ์ด ์์ผ๋ฉด sudo -E๋ก ์คํํ๊ฑฐ๋ --ssid๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ผ์ด๋ธ์ ๊ฝ๋ ๊ฒ๋ง์ผ๋ก ๋ฑ๋ก๋์ง๋ ์์ต๋๋ค.
2-B. ํฐ์ผ๋ก ์ค์
- ์ฒซ ์ค์น ๋๋ ๋ถํ ํ BOOT 3์ด๋ก ์ค์ ํ๋ฉด์ ์ฝ๋๋ค. ์ ์์ ๋ฃ์ ๋ BOOT๋ฅผ ๋๋ฅด๊ณ ์์ผ๋ฉด ๋ค์ด๋ก๋ ๋ชจ๋๊ฐ ๋๋ฏ๋ก ๋ถํ ์ด ๋๋ ๋ค ๋๋ฅด์ธ์.
- ํฐ์์ Wi-Fi CARROT-HUD, ์ํธ 12345678์ ์ ์ํฉ๋๋ค.
- **http://192.168.4.1**์ ์ฝ๋๋ค. ์๊ฐ ์ด๊ณผ ์ โ์ธํฐ๋ท ์์ด ์ฐ๊ฒฐ ์ ์งโ๋ฅผ ์ ํํ๊ณ
๋ชจ๋ฐ์ผ ๋ฐ์ดํฐ๋ฅผ ์ ๊น ๋๋๋ค.
setup closed๋ฉด BOOT 3์ด๋ก ๋ค์ ์ฝ๋๋ค. - ์ฐจ์์ ์ฌ์ฉํ 2.4GHz Wi-Fi ์ด๋ฆยท์ํธ๋ฅผ ์ ๋ ฅํ๊ณ Wi-Fi ์ ์ฅ์ ๋๋ฆ ๋๋ค. ์ค์ ์ ์ฝ 15์ด ๋ค ๋ซํ๋๋ค. ๋ฏธ์ ์ฅ ์ค์ ์ฐฝ์ 10๋ถ ํ ๋ซํ๋๋ค.
- ์ฒซ C4 ๋ฑ๋ก์ด๋ฉด ์ฒ์ C4 ์ฐ๊ฒฐ: ๋ฑ๋ก ํ์ผ ๋ฐ๊ธฐ๋ฅผ ๋๋ฆ ๋๋ค. ๋งค๋ฒ ๋ค๋ฅธ ์ด๋ฆ์ JSON์ด ๋ค์ด๋ก๋๋ฉ๋๋ค. Wi-Fi๋ง ๋ฐ๊พธ๋ ๊ฒฝ์ฐ์๋ ๋ค์ด๋ก๋๊ฐ ํ์ ์์ต๋๋ค.
- JSON์ WinSCP/SFTP ๋ฑ์ผ๋ก C4์
/data/carrot-s3.json์ ๋ณต์ฌํ๊ณ ์๋๋ฅผ ์คํํฉ๋๋ค. ํ์ผ ์ ์ก์ด ์ด๋ ต๋ค๋ฉด USB ๋ฑ๋ก(2-A)์ ์ ํํ์ธ์.
cd /data/openpilot
python3 tools/esp32s3_display/provision.py --import-pairing /data/carrot-s3.json
๋ฑ๋ก ํ์ผ์ ํด๋น ํ๋ฉด์ ์ ๊ทผํ ์ ์๋ ํค์ ๋๋ค. ๊ณต๊ฐํ๊ฑฐ๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ณด๋ด์ง ๋ง์ธ์. ํซ์คํ ํฐ์ด Wi-Fi ์ ์์ ๋์์ ๋ชป ํ๋ฉด ๋ค๋ฅธ ํฐ์ผ๋ก ์ค์ ํ ํซ์คํ์ ์ผญ๋๋ค. ์์ดํฐ ํซ์คํ์ ํธํ์ฑ ์ต๋ํ, ์๋๋ก์ด๋๋ 2.4GHz๋ฅผ ์ ํํ์ธ์.
3. ์ฌ์ฉ
- C4 ์ค์ ์์ ์ธ๋ถ HUD (ClusterHud) โ 9.2์ธ์น๋ฅผ ์ ํํฉ๋๋ค.
- C4์ S3๋ฅผ ๊ฐ์ Wi-Fi/ํซ์คํ์ ์ฐ๊ฒฐํฉ๋๋ค. ๊ธฐ๊ธฐ ๊ฐ ํต์ ์ ์ฐจ๋จํ๋ ๊ฒ์คํธ๋ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐจ๋์์๋ PCยทUSB ํ ๋๋ง์ด ํ์ ์์ต๋๋ค.
- ์๋ ON์์ ํ์ํ๊ณ OFF์์ ์๋ฑํฉ๋๋ค. ๋๊ธฐ ์ค ํ๋ฉด ์ํ์
ClusterHudDebug๋ฅผ ์ฌ์ฉํ๊ณ ์ํ ํ 0์ผ๋ก ๋๋๋ฆฝ๋๋ค.
๋ฐ๊ธฐยท๋ฐฉํฅยท๋ฏธ๋ฌยท์นด๋ฉ๋ผ๋ ๊ธฐ์กด HUD ์ค์ ์ ์ฌ์ฉํฉ๋๋ค. Wi-Fi๋ ๊ธฐ๋ณธ ์ต๋ 15fps, eGPU ์ฌ์ฉ ์ค ์ต๋ 10fps์ ๋๋ค. ์ค์ ์๋๋ ํ๋ฉด ๋ด์ฉ๊ณผ ๋ฌด์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ ๊ดํ ํจ๋ FPS ๋ณด์ฅ์ด ์๋๋๋ค. ์ง์ USB ์ฐ๊ฒฐ์ ๊ธฐ์กด 5fps ์ ์ฑ ์ ๋ณ๋์ ๋๋ค.
๋ณด๋ LED๋ก ์ํ ํ์ธ (ํ์จ์ด 1.1.1 ์ด์)
์ ์ LED์ ๋ณ๋๋ก ๋ณด๋ ๊ฐ์ด๋ฐ RGB LED๋ฅผ ์ฝํ๊ฒ ์ผญ๋๋ค.
| RGB LED | ์ํ |
|---|---|
| ํ๋์ ์ ๋ฉธ | ์ฒ์ Wi-Fi์ ์ฐ๊ฒฐํ๋ ์ค |
| ๋นจ๊ฐ์ ์ ๋ฉธ | Wi-Fi ์ฐ๊ฒฐ ๋๋ IP๋ฅผ ์์ด ์ฌ์ฐ๊ฒฐ ๋๊ธฐ ์ค |
| ์ด๋ก์ ๊ณ์ ์ผ์ง | Wi-Fi์์ IP๋ฅผ ๋ฐ์๊ณ USB ํ๋ฉด ์ฐ๊ฒฐ์ด ํ์ธ๋จ |
| ์ด๋ก์์ด ์งง๊ฒ ๊บผ์ก๋ค ์ผ์ง | ์ต๊ทผ 2์ด ์์ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ USB๋ก ์ ์ ์ ์กํจ |
| ๋นจ๊ฐ์ ๋ ๋ฒ์ฉ ์ ๋ฉธ | Wi-Fi IP๋ ์์ง๋ง USB ํ๋ฉด์ด ์๊ฑฐ๋ USB ํต์ ์ค๋ฅ |
| ๋ณด๋ผ์ ์ ๋ฉธ | ํฐ ์ค์ ๋ชจ๋๊ฐ ์ด๋ ค ์์ |
์ด๋ก์๋ง์ผ๋ก C4 ์ฐ๊ฒฐ์ด๋ ์ธํฐ๋ท ํต์ ๊น์ง ๋ณด์ฅํ์ง๋ ์์ต๋๋ค. ์ค์ ๋ชจ๋๊ฐ ์ด๋ ค ์์ผ๋ฉด ๋ณด๋ผ์ ํ์๊ฐ ์ฐ์ ํฉ๋๋ค. ์๋ OFF๋ก ํ๋ฉด์ด ๊บผ์ ธ๋ S3 ์ ์์ด ์์ผ๋ฉด LED๋ ์ํ๋ฅผ ๊ณ์ ํ์ํฉ๋๋ค. RGB LED ํ์ด GPIO38์ธ ์ผ๋ถ ๋ณด๋์์๋ ๊ธฐ๋ณธ GPIO48 ๋น๋์ LED๊ฐ ์ผ์ง์ง ์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์๋ README์ ๋น๋ ์ค์ ์ ํ์ธํ์ธ์.
๋ค์์ ๋ฐ๊ฟ ๋
- SSID/์ํธ: BOOT 3์ด โ ํฐ์์ ์ ์ฅ, ๋๋ ์ Wi-Fi์ ์ฐ๊ฒฐ๋ C4์์ USB ๋ฑ๋ก ๋ช ๋ น ์ฌ์คํ. ๊ฐ์ ๋ณด๋์ ๋ฑ๋ก ํค๋ ์ ์ง๋์ด ๋ค์ JSON์ ์ฎ๊ธธ ํ์๊ฐ ์์ต๋๋ค.
- ํ์จ์ด: NAS ์ค์น ํ์ด์ง์ ์ ๋ฐ์ดํธ. ์ผ๋ฐ์ ์ธ C4 ํ๋ฉด ๋ณ๊ฒฝ๋ง๋ค ๋ค์ ์ค์นํ ํ์๋ ์์ง๋ง S3 ์์ฒด ๋ฒ๊ทธ ์์ ์ ์ฌ์ค์น๊ฐ ํ์ํ ์ ์์ต๋๋ค. OTA๋ ์์ต๋๋ค.
- ์ง์ USB๋ก ๋ณต๊ท: C4 ๋ฑ๋ก ํ์ผ
/data/carrot/cluster_wifi.json์ ๋ณ๋ ์์น๋ก ์ฎ๊ธฐ๊ณ HUD๋ฅผ ์ฌ์์ํฉ๋๋ค. ๋์ค์ ๋ณต์ํ๋ ค๋ฉด ๋ฑ๋ก ํ์ผ์ ๋ณด๊ดํ์ธ์.
ํ๋ฉด์ด ์ ๋์ค๊ฑฐ๋ ๊บผ์ง์ง ์์ ๋
- ์ ์กฐ์ฌ ๋ก๊ณ ๋ง ๋ณด์ด๋ฉด ํ๋ธ ๋ณธ์ฒด ์ผ์ด๋ธ์ด S3์ USB์ ์ฐ๊ฒฐ๋๋์ง ํ์ธํฉ๋๋ค. ์ ์์ด ๋ค์ด์ค๋ ๊ฒ๊ณผ ๋ฐ์ดํฐ ์ฐ๊ฒฐ์ ๋ค๋ฆ ๋๋ค. ๋ค๋ฅธ ํ๋ธ๋ก ๋น๊ตํ ์ ์์ต๋๋ค.
- ์ค์ Wi-Fi๋ ๋ณด์ด๋๋ฐ ์ค์ ํ๋ฉด์ด ์ ๋ณด์ด๋ฉด ํ๋ฉด/ํ๋ธ ์ฐ๊ฒฐ๋ถํฐ ํ์ธํฉ๋๋ค.
- ๋๊ธฐ ์ค ๊บผ์ง์ ์ ์์ ๋๋ค. ์๋ ON์์๋ ์ ๋ณด์ด๋ฉด C4 ๋ฑ๋ก๊ณผ ๋์ผ ๋คํธ์ํฌ๋ฅผ ํ์ธํฉ๋๋ค.
- ์ง์ฐ์ด ํฌ๋ฉด ์ํ ๋๋ฅผ ๊ธ์ยทํ๋ธ์์ ๋จ์ด๋จ๋ฆฌ๊ณ ๋ค๋ฅธ 2.4GHz ํซ์คํ๊ณผ ๋น๊ตํฉ๋๋ค.
- ์๋ OFF์ธ๋ฐ ๊ณ์ ์ผ์ง๋ฉด Debug 0, C4 ์ต์ ์ฝ๋, S3 1.1.0 ์ด์์ ํ์ธํฉ๋๋ค. 1.1.0์ ์๋ฑ ๋ช ๋ น ์๋ต์ ํ์ธํ๊ณ ์คํจ ์ ์ฌ์๋ํฉ๋๋ค. ํต์ ์ด ๋๊ฒจ๋ ๋ง์ง๋ง ์ ์ ์์ ์ฝ 2์ด ํ ์์ฒด ์๋ฑํ๋ฉฐ USB ํ์์์์ด ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ๋๊ธฐ ์ค 30์ด๋ง๋ค ์๋ฑ์ ์ฌํ์ธํฉ๋๋ค. ์ค์ ์๋ด ์ค์๋ ์ผ์ ธ ์์ต๋๋ค.
์๋ฑ์ ๋ฐฑ๋ผ์ดํธ ๋๊ธฐ์ด๋ฉฐ USB ์ ์ ์ฐจ๋จ์ ์๋๋๋ค.
๊ณ ๊ธ ์ฌ์ฉ์: ํ์ผ๋ก ์ค์น
ZIP์๋ bootloader.bin, partition-table.bin, carrot-s3.bin, release.json,
SHA256SUMS.txt, ์ค๋ช
์, ๊ฒ์ฆ๋ ๋น๋ ์ค์ ์ด ์์ต๋๋ค. esptool 4.11 ์ฌ์ฉ ์:
python -m esptool --chip esp32s3 --port COM14 --baud 460800 write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB 0x0 bootloader.bin 0x8000 partition-table.bin 0x10000 carrot-s3.bin
COM14๋ ์์์ด๋ฉฐ ์ค์ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค. ๊ธฐ์กด CARROT ์ฑ๋ง ์
๋ฐ์ดํธํ ๋๋
๋ง์ง๋ง 0x10000 carrot-s3.bin๋ง ๊ธฐ๋กํฉ๋๋ค. erase_flash๋ ์คํํ์ง ๋ง์ธ์.
0x9000โ0xEFFF์ NVS์๋ ๊ฐ์ธ Wi-Fi/๋ฑ๋ก ์ ๋ณด๊ฐ ์์ต๋๋ค. ๋ฐฐํฌ ZIP์๋ ์ด ์์ญ์ด๋
๊ฐ์ธ ์ค์ ์ด ํฌํจ๋์ง ์์ต๋๋ค. ESP-IDF 5.4.0 ์์ค ๋น๋๋ ๊ฐ๋ฐ์ README๋ฅผ ์ฐธ๊ณ ํ์ธ์.