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. ํŽŒ์›จ์–ด ์„ค์น˜ ๋˜๋Š” ์—…๋ฐ์ดํŠธ

  1. S3 UART ํฌํŠธ๋ฅผ ๋ฐ์ดํ„ฐ ์ผ€์ด๋ธ”๋กœ PC์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  2. PC Chrome/Edge์—์„œ NAS ์„ค์น˜ ํŽ˜์ด์ง€๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
  3. ์ƒˆ ๋ณด๋“œ๋Š” ์ฒ˜์Œ ์„ค์น˜, ๊ธฐ์กด CARROT ๋ณด๋“œ๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ณด๋“œ ํ™•์ธ๋ž€์„ ์„ ํƒํ•˜๊ณ  ์„ค์น˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ CP210x / USB Serial ํฌํŠธ๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค.
  5. ์™„๋ฃŒ ๋ฉ”์‹œ์ง€๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. 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. ํฐ์œผ๋กœ ์„ค์ •

  1. ์ฒซ ์„ค์น˜ ๋˜๋Š” ๋ถ€ํŒ… ํ›„ BOOT 3์ดˆ๋กœ ์„ค์ • ํ™”๋ฉด์„ ์—ฝ๋‹ˆ๋‹ค. ์ „์›์„ ๋„ฃ์„ ๋•Œ BOOT๋ฅผ ๋ˆ„๋ฅด๊ณ  ์žˆ์œผ๋ฉด ๋‹ค์šด๋กœ๋“œ ๋ชจ๋“œ๊ฐ€ ๋˜๋ฏ€๋กœ ๋ถ€ํŒ…์ด ๋๋‚œ ๋’ค ๋ˆ„๋ฅด์„ธ์š”.
  2. ํฐ์—์„œ Wi-Fi CARROT-HUD, ์•”ํ˜ธ 12345678์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.
  3. **http://192.168.4.1**์„ ์—ฝ๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ ์‹œ โ€œ์ธํ„ฐ๋„ท ์—†์ด ์—ฐ๊ฒฐ ์œ ์ง€โ€๋ฅผ ์„ ํƒํ•˜๊ณ  ๋ชจ๋ฐ”์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ž ๊น ๋•๋‹ˆ๋‹ค. setup closed๋ฉด BOOT 3์ดˆ๋กœ ๋‹ค์‹œ ์—ฝ๋‹ˆ๋‹ค.
  4. ์ฐจ์—์„œ ์‚ฌ์šฉํ•  2.4GHz Wi-Fi ์ด๋ฆ„ยท์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Wi-Fi ์ €์žฅ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ์„ค์ •์€ ์•ฝ 15์ดˆ ๋’ค ๋‹ซํž™๋‹ˆ๋‹ค. ๋ฏธ์ €์žฅ ์„ค์ • ์ฐฝ์€ 10๋ถ„ ํ›„ ๋‹ซํž™๋‹ˆ๋‹ค.
  5. ์ฒซ C4 ๋“ฑ๋ก์ด๋ฉด ์ฒ˜์Œ C4 ์—ฐ๊ฒฐ: ๋“ฑ๋ก ํŒŒ์ผ ๋ฐ›๊ธฐ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ๋งค๋ฒˆ ๋‹ค๋ฅธ ์ด๋ฆ„์˜ JSON์ด ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. Wi-Fi๋งŒ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
  6. 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. ์‚ฌ์šฉ

  1. C4 ์„ค์ •์—์„œ ์™ธ๋ถ€ HUD (ClusterHud) โ†’ 9.2์ธ์น˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. C4์™€ S3๋ฅผ ๊ฐ™์€ Wi-Fi/ํ•ซ์ŠคํŒŸ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ธฐ ๊ฐ„ ํ†ต์‹ ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒŒ์ŠคํŠธ๋ง์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฐจ๋Ÿ‰์—์„œ๋Š” PCยทUSB ํ…Œ๋”๋ง์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
  3. ์‹œ๋™ 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๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.