Releases: GNBD/ats-mini-dualboot
Release list
ats-mini dualboot (v4.1.0 DES)
ats-mini dualboot (v4.1.0 DES) — Boot Manager (테마)
원클릭 웹 플래셔 (설치 없이): https://gnbd.github.io/ats-mini-dualboot/install.html
SI4732 (ESP32-S3 N16R8)용 부트 매니저(리커버리)입니다. 전원을 켜면 이 리커버리가 먼저 뜨고, app0 / app1 중 하나를 골라 부팅합니다.
테스트가 필요합니다. 아직 실사용 검증이 충분하지 않습니다. 크래시, 부팅 실패, 데이터 손실 등의 문제가 발생할 수 있으므로 사용 전에 반드시 백업을 권장합니다.
문제가 발생하면 재현 방법(어떤 메뉴에서 어떤 동작을 했는지, 기기 상태, 가능하면 시리얼 로그)을 함께 적어 Issues 에 자유롭게 남겨주세요. 큰 도움이 됩니다.
소스: ats-mini-dualboot/ats-mini-recovery-theme/ats-mini-recovery-theme.ino / 버전: 4.1.0
| 빌드 | 값 |
|---|---|
| FQBN | esp32:esp32:esp32s3 + CDCOnBoot=cdc, USBMode=hwcdc, FlashMode=qio, FlashSize=16M, PSRAM=opi, PartitionScheme=custom |
| 리커버리 이미지 | ats-mini-recovery-4.1.0.bin — 1,251,312 B |
| MD5 | 76A21DE895530215AFD118E4A7E4F374 |
| 업로드 주소 | 0x860000 |
이번 버전에서 할 수 있는 것
- 두 슬롯(app0/app1)의 용량을 서로 조절(리사이즈) — 한쪽을 키우면 다른 쪽이 그만큼 줄어듭니다(각 1.0~6.0MB, 0.5MB 단위).
Partition → Resize. 두 슬롯이 모두 비어 있을 때만 됩니다. - 슬롯별 설정 백업/복원 (실험적 · 일부 펌웨어 미지원) — app0과 app1은 서로 다른 저장소를 씁니다. 각 슬롯의 설정을
.nvs파일로 내보내기(Export) 하고 다시 불러오기(Import) 합니다.Settings → Backup. (앱이 설정을 다른 곳에 저장하면 복원이 모든 설정을 되돌리지 못할 수 있습니다.) - LittleFS 파일 관리 — 내장메모리의 파일 목록과 남은 용량을 보고, 파일 이름을 바꾸거나 삭제합니다.
Settings → LittleFS. - 파티션 점검/복구 —
Partition → Info에서 파티션별 주소·용량·사용량을 확인하고,Repair로 파티션 테이블을 정본으로 복구합니다. - 웹 UI 정리 + 계정 보호 — 상단 탭(Status / Firmware / Files / Network / System), 업로드·플래싱 진행 모달, 웹 계정(ID/PW)으로 접속 보호.
Settings → Network. - 부팅 방식 선택 —
Boot App0/Boot App1에서Default(길게 누른 뒤 떼면 부팅) 또는Hold mode.
참고(DES): app0은 ENV0 저장소, app1은 ENV1 저장소를 사용해 두 앱의 설정이 섞이지 않습니다.
리커버리(부트 매니저) 플래싱 방법
리커버리는 flash의 정해진 주소에 씁니다. 이미 있는 건 그대로 두고, 바꿀 것만 쓰면 됩니다.
| 파일 | 주소 | 설명 |
|---|---|---|
ats-mini-bootloader-v4.bin |
0x0 |
recovery-first 커스텀 부트로더 |
ats-mini-partitions-v4.bin |
0x8000 |
파티션 테이블 (Table A) |
ats-mini-recovery-4.1.0.bin |
0x860000 |
부트 매니저 본체 |
부트 매니저만 새 버전으로 교체 (v4.0.0 → v4.1.0, 설정·앱 슬롯 유지):
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 --before default-reset --after hard-reset write-flash 0x860000 ats-mini-recovery-4.1.0.bin
처음 설치 / 전체 초기화 (부트로더부터 전부 한 번에):
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 write-flash 0x0 ats-mini-bootloader-v4.bin 0x8000 ats-mini-partitions-v4.bin 0x860000 ats-mini-recovery-4.1.0.bin
COM7은 실제 포트로 바꾸세요 (Windows: 장치 관리자 → 포트).- 앱 펌웨어(app0/app1) 는 리커버리를 켠 뒤 웹 업로더로 올리거나, esptool로
app0=0x10000/app1=0x390000에 씁니다. - 파티션 테이블이 바뀌지 않는 업데이트는
0x860000한 줄만 쓰면 됩니다.
자세한 내용은 저장소의 ats-mini-recovery-theme/README.md 를 참고하세요.
ats-mini dualboot (v4.0.0 DES)
ats-mini dualboot (v4.0.0 Dual Environment System) — Boot Manager Theme
One-click install(no installation required): https://gnbd.github.io/ats-mini-dualboot/install.html
SI4732 (ESP32-S3 N16R8)용 부트 매니저(리커버리) 테마 버전입니다.
전원을 켜면 부트 매니저가 먼저 실행되며, app0 또는 app1 중 하나를 선택하여 부팅할 수 있습니다.
소스: ats-mini-dualboot/ats-mini-recovery-theme/ats-mini-recovery-theme.ino
버전: RECOVERY_VERSION 4.0.0
| 빌드 | 값 |
|---|---|
| FQBN | esp32:esp32:esp32s3 + CDCOnBoot=cdc, USBMode=hwcdc, FlashMode=qio, FlashSize=16M, PSRAM=opi, PartitionScheme=custom |
| 이미지 | ats-mini-recovery-4.0.0.bin — 1,228,560 B |
| MD5 | 0BB79C1F2949B2C3C7C5ED1A318E8A3B |
| 업로드 주소 | 0x860000 |
⚠️ 꼭 읽어주세요
- 테스트가 필요합니다. 아직 실사용 검증이 충분하지 않습니다. 크래시, 부팅 실패, 데이터 손실 등의 문제가 발생할 수 있으므로 사용 전에 반드시 백업을 권장합니다.
- 기존 사용자도 최신 릴리스로 업데이트하거나 다시 설치하는 것을 권장합니다.
- 기존 버전(v3.x 이하)과 호환되지 않습니다. 파티션 테이블과 설정 영역이 변경되었습니다.
- 이 버전을 설치하면 기존 설정이 초기화될 수 있습니다. 기존 Wi-Fi 등의 설정은 자동으로 이전되지 않습니다.
app0과app1은 서로 독립된 펌웨어 저장 영역과 설정 영역을 사용합니다.app0→ENV0app1→ENV1
- 두 슬롯은 서로 다른 물리적 저장 영역을 사용하므로 한 슬롯의 설정이 다른 슬롯에 섞이지 않습니다. 단, 두 영역은 동일한 ESP32의 플래시 칩 내부에 존재합니다.
app0과app1에는 **앱 전용 OTA 이미지(바이너리)**만 넣을 수 있습니다.- 부트로더와 파티션 테이블이 포함된 merged 이미지 또는 전체 Flash 덤프를 앱 슬롯에 넣지 마세요.
- 16MB Flash + 8MB PSRAM(N16R8) 기기 전용입니다. N8R2 등 다른 Flash 크기의 기기에는 사용하지 마세요.
파티션 구성 (v4.0.0 DES)
nvs부터 recovery까지의 주요 영역은 v3.x와 동일한 주소를 사용하며, 이후 영역이 새롭게 구성되었습니다.
| 파티션 | Offset | 크기 | 비고 |
|---|---|---|---|
| nvs | 0x009000 |
20K | v3.x 동일 |
| otadata | 0x00E000 |
8K | v3.x 동일 |
| app0 | 0x010000 |
3.5M | 앱 슬롯 0 |
| app1 | 0x390000 |
3.5M | 앱 슬롯 1 |
| ffat | 0x710000 |
1.3M | FAT |
| recovery | 0x860000 |
1.625M | 부트 매니저 |
| littlefs | 0xA00000 |
5.58M | 기존 6MB에서 축소 |
| rec_settings | 0xF95000 |
32K | 리커버리 전용 NVS |
| settings (ENV0) | 0xF9D000 |
128K | app0 전용 설정 |
| settings (ENV1) | 0xFBD000 |
128K | app1 전용 설정 |
| coredump | 0xFDF000 |
128K | Core Dump |
| Table B | 0xFFF000 |
4K | 파티션 테이블 백업 영역 |
Table B는 파티션 레이아웃에 포함된 백업 영역이며, 일반적인 설치 과정에서 사용자가 별도로 플래시할 필요는 없습니다.
슬롯별 저장 영역
각 앱 슬롯은 독립적으로 동작하도록 구성되어 있습니다.
app0
├─ Firmware: 0x010000 ~ 0x38FFFF
└─ Settings: ENV0 @ 0xF9D000
app1
├─ Firmware: 0x390000 ~ 0x70FFFF
└─ Settings: ENV1 @ 0xFBD000
따라서 app0에서 저장한 설정은 app1에 영향을 주지 않으며, 반대로 app1의 설정도 app0에 영향을 주지 않습니다.
각 슬롯을 처음 사용하는 경우에는 해당 슬롯에서 Wi-Fi 등의 설정을 별도로 입력해야 합니다.
릴리스 파일
최신 릴리스에는 다음 파일이 포함됩니다.
| 파일 | 주소 | 용도 |
|---|---|---|
ats-mini-bootloader-v4.bin |
0x000000 |
부트로더 |
ats-mini-partitions-v4.bin |
0x008000 |
파티션 테이블 |
ats-mini-recovery-4.0.0.bin |
0x860000 |
부트 매니저 / 리커버리 |
플래싱
1. 원본 Flash 백업 — 권장
업데이트 또는 초기 설치 전에 현재 Flash 전체를 백업하는 것을 권장합니다.
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 921600 read-flash 0x0 ALL original-flash.binCOM7은 자신의 장치에 맞는 포트로 변경하세요.
2. 부트 매니저만 업데이트
현재 파티션과 앱 슬롯, 설정을 유지하면서 부트 매니저만 교체하려면:
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 --before default-reset --after hard-reset write-flash 0x860000 ats-mini-recovery-4.0.0.bin이 방법은 기존 app0, app1 및 설정 영역을 건드리지 않습니다.
3. 처음 설치 / 전체 초기화
새로운 v4.0.0 환경으로 처음 설치하거나 전체 플래시를 다시 구성하는 경우:
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 write-flash 0x000000 ats-mini-bootloader-v4.bin 0x008000 ats-mini-partitions-v4.bin 0x860000 ats-mini-recovery-4.0.0.bin이 과정에서는 부트로더, 파티션 테이블, 리커버리를 설치합니다.
기존 앱 펌웨어 및 사용자 데이터까지 완전히 초기화해야 하는 경우에는 Flash 전체를 별도로 지우는 과정이 필요할 수 있습니다.
4. v3.2.1 → v4.0.0 업그레이드
v3.2.1에서 v4.0.0으로 업데이트하는 경우:
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 --before default-reset --after hard-reset write-flash 0x008000 ats-mini-partitions-v4.bin 0x860000 ats-mini-recovery-4.0.0.bin이 과정에서 v4.0.0 파티션 테이블과 새로운 리커버리를 적용합니다.
업데이트 후 첫 부팅 시 기존 littlefs 형식을 감지하면 리커버리가 자동으로 처리합니다.
화면에 다음과 같은 메시지가 표시될 수 있습니다.
LITTLEFS / Old format found
이 과정에는 약 20초 정도가 걸릴 수 있습니다.
5. LittleFS를 미리 초기화하는 경우
필요한 경우 littlefs 영역을 직접 지울 수 있습니다.
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 erase-region 0xA00000 0x595000이 작업은 LittleFS에 저장된 데이터를 삭제합니다. 필요한 데이터가 있다면 먼저 백업하세요.
주의사항
- 이 버전은 아직 개발 및 테스트가 진행 중입니다.
- 문제가 발생할 경우 부팅 실패 또는 데이터 손실이 발생할 수 있습니다.
- 반드시 원본 Flash 백업을 먼저 만들어 두는 것을 권장합니다.
app0과app1에는 앱 전용 바이너리만 업로드하세요.- merged firmware, bootloader, partition table 또는 전체 Flash 이미지를 앱 슬롯에 업로드하지 마세요.
- 다른 Flash 용량을 사용하는 기기에서는 파티션 주소가 다를 수 있으므로 사용하지 마세요.
- 기존 v3.x 설정은 v4.0.0에서 그대로 사용할 수 없을 수 있습니다.
자세한 내용은 ats-mini-recovery-theme/README.md를 참고하세요.
ats-mini dualboot (v3.2.1)
ats-mini dualboot (v3.2.1) — Boot Manager theme
SI4732 (ESP32-S3 N16R8) 용 부트 매니저(리커버리)의 테마 UI 버전입니다.
v3.0.0 / v3.1.0 위에서 UI 구조를 타일 셸로 다시 만들고, PSRAM 스프라이트로
깜빡임을 없앴습니다.
소스: ats-mini-dualboot/ats-mini-recovery-theme/ats-mini-recovery-theme.ino
버전: RECOVERY_VERSION 3.2.1
| 빌드 | 값 |
|---|---|
| FQBN | esp32:esp32:esp32s3 + CDCOnBoot=cdc, USBMode=hwcdc, FlashMode=qio, FlashSize=16M, PSRAM=opi, PartitionScheme=custom |
| 이미지 | ats-mini-recovery-3.2.1.bin — 1,222,464 B |
| MD5 | 21849473EB274732D7840CEBDD077EF4 |
| 플래시 주소 | 0x860000 |
호환성
- v3.0.0 / v3.1.x 와 호환 — 파티션 테이블·부트로더가 동일. 리커버리 이미지만
교체하면 됩니다 (0x860000). 설정(NVS/settings)과 앱 슬롯은 유지됩니다. - v2.0.1 이하와 비호환 — 파티션 배치가 다르므로 전체 복구 플래시가 필요합니다.
- 16MB 전용 — N8R2 등 다른 flash 크기에 올리면 부팅되지 않습니다 (lite 사용).
변경사항
UI 구조 (타일 셸)
- 모든 선택 화면을 타일 그리드로 재구성: 메인 메뉴, Settings, WiFi, 부팅 모드,
펌웨어 대상·소스 선택, Erase. (WiFi 스캔 목록·파일 목록·URL 선택은 행 레이아웃 유지) - 공통 UiKit: 24px 헤더(제목 + 슬롯 칩 + 네트워크 아이콘 + 배터리 전압)와
하단 힌트 바를 모든 화면에 표시. - 순수 검정 배경 + 세이지 그린 액센트. 남색 계열 표면색은 무채색 차콜로 교체.
- 스플래시: 제목 크기 유지, "hold encoder" 안내 자리에 프로젝트 URL 표시.
- About: QR / 라이브러리 / 라이선스 / 도움말 / 파티션 페이지 (9개 항목 2열 배치).
조작 규약
- 회전=이동, 길게=선택/열기, 클릭=뒤로. (기존 Back 행 제거)
- 길게 누르면 0.3초 도달 즉시 실행 (손을 떼지 않아도 진입), 같은 눌림은 1회만 소비.
- 메인 메뉴에서 클릭은 무시.
- Erase: 클릭=체크 토글, 길게=삭제 (아무것도 안 골랐으면 뒤로).
- Boot App0/App1 의 Yes/No 확인 제거 — 길게 누르면 즉시 실행.
- Yes/No 팝업은 버튼만 다시 그려 깜빡임 제거, 포커스는 초록, 길게=확인·클릭=취소.
- Settings 순서: WiFi / Brightness / About. 밝기는
settings파티션에 저장.
깜빡임 제거 (PSRAM 스프라이트)
- 모든 화면을 오프스크린 스프라이트(PSRAM)에 그린 뒤 LCD로 한 번에 전송.
- 화면 전환 시 검게 번쩍이던 현상 제거.
버그 수정
- 긴 URL 마퀴가 갱신되지 않던 문제, 선택 행 텍스트가 박스 밖으로 새던 문제 수정.
- 스프라이트 전환 후 push 가 빠져 화면이 비어 있던 5곳 수정
(Hold mode 진행 화면, 다운로드 초기 화면, URL 미설정 안내, 다운로드 실패 안내 2곳).
플래싱 가이드
준비 — 원본 백업 (권장)
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 921600 read-flash 0x0 ALL original-flash.bin
어디에 무엇을 올리나
파일마다 정해진 주소가 있습니다. 부트 매니저만 바꾸려면 0x860000 한 줄만,
처음 설치하거나 초기화하려면 아래 표를 전부 올리면 됩니다.
| 파일 | 주소 | 설명 |
|---|---|---|
ats-mini-bootloader.bin |
0x0 |
recovery-first 커스텀 부트로더 |
ats-mini-partitions.bin |
0x8000 |
파티션 테이블 |
boot_app0.bin |
0xe000 |
otadata 초기화 (부팅 슬롯 초기값) |
app0.bin |
0x10000 |
앱 슬롯 0 (앱 슬롯 1은 0x390000) |
ats-mini-recovery-3.2.1.bin |
0x860000 |
부트 매니저 (이 릴리즈) |
전부 한 번에 올리기:
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 write-flash 0x0 ats-mini-bootloader.bin 0x8000 ats-mini-partitions.bin 0xe000 boot_app0.bin 0x10000 app0.bin 0x860000 ats-mini-recovery-3.2.1.bin
부트 매니저만 바꾸기 (v3.0.0 / v3.1.x 에서 업그레이드 — 설정·앱 슬롯 유지):
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 --before default-reset --after hard-reset write-flash 0x860000 ats-mini-recovery-3.2.1.bin
flash-recovery.ps1 를 쓰면 포트·리셋을 자동으로 처리합니다:
.\flash-recovery.ps1 -Offset 0x860000 -Image .\ats-mini-recovery-3.2.1.bin -Port COM7부트 매니저 자신은 실행 중인 슬롯을 덮어쓸 수 없으므로, 새 부트 매니저는 위처럼
0x860000 에 올립니다.
앱 올리기 (app0 / app1)
앱(라디오 펌웨어)은 app0 또는 app1 에 넣습니다. 어느 슬롯에 넣든 부트 매니저에서
그 슬롯을 Boot 하면 됩니다.
- 부트 매니저에서 — Firmware Update → 대상 슬롯(App0/App1) → 소스(Local files /
Network) → 파일 선택 → 플래시. - 웹서버에서 — WiFi 연결 후
http://<IP>/에서.bin업로드 → 슬롯 지정 → Flash. - esptool 로 —
app0은0x10000,app1은0x390000:
uvx --from esptool esptool.py --chip esp32s3 --port COM7 --baud 460800 write-flash 0x10000 app0.bin
슬롯당 최대 3.5MB, ESP32-S3 앱 이미지(첫 바이트 0xE9)여야 합니다. 통합(merged)
이미지를 넣어도 앱 부분만 추출해 씁니다.
⚠️ 미완성 (work in progress) — 아직 완성되지 않았고, 버그나 예상치 못한 문제가
발생할 수 있습니다. 크래시, 부팅 실패, 데이터 손실 가능성이 있으니 주의해서
사용하세요. (The firmware is not finished; bugs or unexpected problems may occur —
crashes, boot failures, or data loss. Use it with caution.)
ats-mini dualboot (v3.1.0)
ats-mini dualboot (v3.1.0)
ATS Mini dual-boot (ESP32-S3 N16R8) 부트 매니저 릴리스입니다.
⚠️ The firmware may not be fully stable, and there may still be undiscovered bugs. Please use it with caution.
Please use a translator if needed.
⚠️ app0 에서 OTA 하면 app1 이 제거될 수 있음
app0 펌웨어(메인 앱) 안에서 OTA 를 하면 app1 슬롯이 덮어써져 제거될 수
있습니다.
3.0.0 사용자: 리커버리만 올리면 됩니다
파티션 테이블이 v3.0.0과 동일하므로 0x860000에 리커버리만 올리면 됩니다.
설정과 앱슬롯은 건드리지 않습니다. 부트로더·파티션 테이블 변경이 없어
전체 복구 플래시도 필요 없습니다.
.\flash-recovery.ps1 -Image .\ats-mini-recovery-3.1.0.binv2.0.1 이하에서는 기존과 같이 전체 복구 플래시(bootloader +
partitions + boot_app0 + app0 + recovery)가 필요합니다.
포함 파일
| 파일 | 주소 | 비고 |
|---|---|---|
ats-mini-bootloader.bin |
0x0 |
변경 없음 |
ats-mini-partitions.bin |
0x8000 |
변경 없음 |
ats-mini-recovery-3.1.0.bin |
0x860000 |
1,200,496 / 1,703,936 B |
직접 이미지를 업로드 할 경우 OTA 이미지만 지원합니다. Merge(통합펌웨어) 는 사용불가.
변경사항
- 웹 서버 백그라운드 실행
- 웹에서 WiFi 스캔·연결
- 파티션별 사용량 표시
- 플래시 진행바
- 플래시 후 새 앱 자동 부팅
- 파일 다운로드
- LCD 메뉴 정리,
Boot Manager표기
라이선스
- 리커버리 이미지(
.bin)는 GPL-3.0 —Rotary(GPL-3.0)를 포함합니다. ats-mini-bootloader.bin은 Apache-2.0 (ESP-IDF v5.5.5 파생).- OTA로 올리는 이미지도 이 릴리스와 동일한 조건입니다 (OTA는 별도 라이선스가 아닙니다).
- 구성요소별 라이선스와 제3자 고지: https://github.com/GNBD/ats-mini-dualboot/blob/main/NOTICE
- 라이선스 전문: https://github.com/GNBD/ats-mini-dualboot/tree/main/LICENSES
- 소스 저장소: https://github.com/GNBD/ats-mini-dualboot
⚠️ 소스 누락 안내
이 릴리스의 .bin은 저장소 히스토리 재작성 이전 커밋에서 빌드했고, 해당 리비전의 소스는 현재 공개 저장소에 남아 있지 않습니다(소스 누락).
현재 ats-mini-recovery-beta/ 코드는 이 릴리스의 후속 버전이며, 이전 리비전 보관본이 확인되면 이 본문에 위치를 추가 안내하겠습니다.
ats-mini dualboot (v3.0.0)
ats-mini dualboot (v3.0.0)
ATS Mini dual-boot (ESP32-S3 N16R8) 부트 매니저 릴리스입니다.
⚠️ app0 에서 OTA 하면 app1 이 제거될 수 있음
app0 펌웨어(메인 앱) 안에서 OTA 를 하면 app1 슬롯이 덮어써져 제거될 수
있습니다.
⚠️ 이전 버전과 호환되지 않습니다 (중요)
v3.0.0 은 v2.0.1 이하와 파티션 레이아웃이 완전히 다릅니다.
| 파티션 | v2.0.1 이하 | v3.0.0 |
|---|---|---|
| app0 | 0x010000 2.0M |
0x010000 3.5M |
| app1 | 0x210000 2.0M |
0x390000 3.5M |
| ffat | (없음) | 0x710000 1.3M |
| recovery | 0x610000 1.0M |
0x860000 1.7M |
| littlefs | 0x810000 7.75M |
0xA00000 5.8M |
- 이전 릴리즈(v2.0.1 이하) 위에 이 릴리즈를 파일 일부만 덮어쓰면 동작하지
않습니다. (특히 recovery 위치가0x610000→0x860000로 바뀜) - 올릴 때는 반드시 전체 복구 플래시(bootloader + partitions + boot_app0 +
app0 + recovery)로 하세요. - v2.0.1 이하로 되돌릴 때도 그 버전의 전체 세트로 다시 플래시해야 하며,
설정(nvs/settings/littlefs)이 초기화되고 앱 슬롯(app0/app1)도
지워집니다.
포함 파일
| 파일 | 주소 | 설명 |
|---|---|---|
ats-mini-bootloader.bin |
0x0 |
커스텀 부트로더 (recovery 우선 부팅) |
ats-mini-partitions.bin |
0x8000 |
파티션 테이블 (ffat 포함) |
ats-mini-recovery-3.0.0.bin |
0x860000 |
부트 매니저 v3.0.0 (hwcdc) |
ats-mini-recovery-3.0.0.bin 변경사항
- Boot App0/App1 → 모드 선택 서브메뉴
Default boot: 기존과 동일하게 바로 앱으로 부팅Hold mode: 버튼을 누르고 있으라는 안내 화면 후 앱 부팅PRESS NOW→ 누르고 있는 동안 진행바 +KEEP HOLDING안내- 안내/진행 중에는 버튼 입력을 아예 읽지 않으므로
길게 눌러도 재부팅되지 않고 리커버리에 다시 진입하지 않습니다 - 화면이 켜질 때까지 인코더 홀드를 유지해야 합니다
- 화면 정리
- Flash Help: 파티션 테이블을 런타임에 조회(
esp_partition_find)해
주소+이름을 2열로 표시 — 파티션 구성이 바뀌어도 자동 반영
- Flash Help: 파티션 테이블을 런타임에 조회(
- v3.0.0
라이선스
- 리커버리 이미지(
.bin)는 GPL-3.0 —Rotary(GPL-3.0)를 포함합니다. ats-mini-bootloader.bin은 Apache-2.0 (ESP-IDF v5.5.5 파생).- OTA로 올리는 이미지도 이 릴리스와 동일한 조건입니다 (OTA는 별도 라이선스가 아닙니다).
- 구성요소별 라이선스와 제3자 고지: https://github.com/GNBD/ats-mini-dualboot/blob/main/NOTICE
- 라이선스 전문: https://github.com/GNBD/ats-mini-dualboot/tree/main/LICENSES
- 소스 저장소: https://github.com/GNBD/ats-mini-dualboot
⚠️ 소스 누락 안내
이 릴리스의 .bin은 저장소 히스토리 재작성 이전 커밋에서 빌드했고, 해당 리비전의 소스는 현재 공개 저장소에 남아 있지 않습니다(소스 누락).
현재 ats-mini-recovery-beta/ 코드는 이 릴리스의 후속 버전이며, 이전 리비전 보관본이 확인되면 이 본문에 위치를 추가 안내하겠습니다.
Boot Manager Lite v1.0.0 no test
Boot Manager Lite v1.0.0 QSPI
테스트 안됨 — 정상 작동하지 않을 수 있습니다.
ESP32-S3 N8R2 실기기에서 아직 테스트하지 않았습니다. 아래 "검증 현황"은 전부
미검증 항목입니다.이 세트가 N8R2에서 그대로 작동한다고 보장할 수 없습니다.
부팅이 안 될 수 있고, 부팅되더라도 메인 앱이 PSRAM/파일시스템 문제로 멈추거나
일부 기능이 정상 동작하지 않을 수 있습니다. 그대로 쓰기 전에 반드시 실제 기기에서
확인하고, 문제가 있으면 원래 펌웨어로 복구하세요.
⚠️ 내부에서 업데이트할 수 없습니다 — 외부에서 전부 올려야 합니다
Boot Manager Lite는 웹·OTA가 제거되어 있어 기기 내부에서 펌웨어를 업데이트할 수 없습니다.
N8R2 세트는 또한 내부 앱 갱신 경로를 보장하지 않으므로(미검증 상태), 앱을 포함한 펌웨어 전체를
외부(Windows PC + esptool)에서 직접 플래시해야 합니다. 일부만 올리면 부팅 순서나 파티션이 어긋납니다.
수동 플래시라면 아래 5개를 전부 플래시해야 합니다 (하나라도 누락 시 부팅 불가):
| offset | 파일 | 설명 |
|---|---|---|
0x000000 |
ats-mini-recovery-lite-1.0.0-bootloader.bin |
커스텀 부트로더 (8MB, recovery-first) |
0x008000 |
ats-mini-recovery-lite-1.0.0-partitions-8MB.bin |
8MB 파티션 테이블 |
0x00E000 |
boot_app0.bin |
OTA 데이터 부트로더 |
0x010000 |
ats-mini-app0.ota.bin |
메인 앱 app0 (QSPI/8MB, 자산 미포함 — 별도 보유) |
0x0290000 |
ats-mini-app1.ota.bin (선택) |
메인 앱 app1 슬롯 — 선택, 예비 슬롯 |
0x0660000 |
ats-mini-recovery-lite-1.0.0.bin |
리커버리 (Boot Manager Lite) |
부분 갱신(예: 메인 앱만 덮어쓰기)은 지원하지 않습니다.
파티션 (8MB, N8R2 전용 — 16MB 테이블과 절대 혼용 금지)
nvs 0x9000 / otadata 0xE000 / app0 0x10000 / app1 0x290000 / ffat 0x510000 / recovery 0x660000 / littlefs 0x6D0000 / settings 0x7C0000 / coredump 0x7D0000
→ 0x800000 정확히 종료.
검증 현황
전부 미검증입니다 (N8R2 실기기 부재):
- N8R2 하드웨어(8MB flash, QSPI 2MB PSRAM)에서의 전체 동작
- 메인 앱의 PSRAM/littlefs 동작
참고: N8R2에 OPI 빌드를 올리면 메인 앱이 PSRAM not detected에서 정지합니다.
반드시 이 세트의 QSPI 이미지를 사용하세요.
라이선스
- 펌웨어 바이너리는 GPL-3.0 (Rotary GPL-3.0 링크 결합물) — 해당 태그의 소스를 함께 제공하세요.
- 소스: https://github.com/GNBD/ats-mini-dualboot