CrossPoint 한국어 · 현재 버전 v2.0.0-ko.1

릴리즈 노트

CrossPoint Reader 한국어 펌웨어 버전별 변경사항

v1.5.0-ko.2

1.5.0-ko.22026년 8월 19일
GitHub

요약

OTA 펌웨어 다운로드가 http_perform:ESP_ERR_HTTP_CONNECT로 실패하던 문제를 수정했습니다. 다운로드 경로를 wolfSSL 기반 HttpDownloader로 옮겼습니다.

upstream 변경 사항

없음 (한국어 포크 단독 릴리스).

한국어 버전 변경 사항

수정

  • OTA 다운로드 연결 실패 수정: 설정 → 시스템 → 업데이트에서 새 버전은 조회되지만 다운로드 단계에서 http_perform:ESP_ERR_HTTP_CONNECT로 중단되던 문제를 수정했습니다.
    • 업데이트 확인은 HttpDownloader(wolfSSL), 다운로드는 자체 esp_http_client(mbedTLS)로 서로 다른 TLS 스택을 쓰고 있었습니다. 이 패키지에 포함된 mbedTLS는 TLS 1.3이 빈 스텁으로 컴파일돼 있어(freeink-sdk SecureClient.h) 릴리스 CDN에 연결하지 못합니다.
    • 다운로드도 HttpDownloader::fetchUrl로 통일했습니다. GitHub → CDN 리다이렉트 처리가 내장돼 있습니다.
    • SD로 내려받은 뒤 firmware_flash::flashFromSdPath로 기록하는 2단계 구조는 그대로입니다. X4의 efuse-blk-rev 오탐을 피하기 위한 것입니다.
-DFREEINK_NET_WOLFSSL=1은 1.5.0 병합에서 처음 들어왔습니다. 그 이전(1.3.0-ko.1)에는 확인·다운로드가 모두 mbedTLS라 증상이 없었습니다.

부수 효과

esp_http_client와 mbedTLS 인증서 번들 의존이 빠지면서 firmware.bin이 191,152 B 줄었습니다.
firmware.bin6.25 MB 한도 대비
1.5.0-ko.16,041,152 B512,448 B 여유
1.5.0-ko.25,850,000 B703,600 B 여유

기술 세부

  • OtaUpdater::installUpdate에서 esp_http_client_config_t + download_event_handler + DownloadCtx를 제거하고 HttpDownloader::fetchUrl(url, DataCallback)로 대체했습니다. 콜백이 false를 반환하면 전송이 중단되므로 SD 쓰기 실패 시 즉시 빠져나옵니다.
  • 진행률은 콜백 안에서 누적 바이트로 갱신합니다. Content-Length 헤더 대신 checkForUpdate가 가져온 릴리스 자산 크기(otaSize)를 기준으로 쓰며, 잘린 다운로드 검사(short_body)도 그대로 동작합니다.
  • 이벤트 핸들러 전용이던 OtaUpdater::setLastError와 esp_http_client.h / esp_crt_bundle.h 의존을 제거했습니다.

업데이트 방법

이 버전은 OTA 다운로드 자체를 고치는 것이라, 1.5.0-ko.1에서 OTA가 실패했다면 SD 카드로 설치해야 합니다.

v1.5.0-ko.1

1.5.0-ko.12026년 8월 18일
GitHub

요약

1.5.0-ko.0 의 OTA 불가 문제를 고친 긴급 수정입니다. 기능 변경은 없고, UI 글꼴(Pretendard)의 한글 수록 범위를 줄여 펌웨어를 순정 OTA 파티션 안에 다시 넣었습니다.
[!IMPORTANT] 1.5.0-ko.0 을 쓰고 계시면 이 버전으로 업데이트해 주세요. 1.5.0-ko.0 은 firmware.bin 이 6.87 MB 로 순정 CrossPoint OTA 파티션(6.25 MB)을 넘겨서, 전체 플래시를 거치지 않은 기기에서는 OTA 와 SD 카드 업데이트가 모두 TOO_LARGE 로 거부됩니다.

문제의 원인

OTA 와 SD 카드 업데이트는 app 파티션만 기록하고 파티션 테이블은 건드리지 않습니다. 그래서 순정 CrossPoint 에서 OTA 로 한국어 펌웨어에 올라온 기기는 지금도 순정 6.25 MB 테이블을 그대로 갖고 있습니다.
app0 / app1 크기
순정 CrossPoint0x640000 = 6,553,600 B
한국어 포크 (partitions.csv)0x6A0000 = 6,946,816 B
1.3.0-ko.1 까지는 firmware.bin 이 6.46 MB 라 양쪽 모두에 들어갔습니다. 1.5.0-ko.0 은 6.87 MB 로 커져서 순정 테이블 기기에서만 거부되었고, USB 가 막힌 기기는 전체 플래시라는 우회로조차 없었습니다.
파티션 테이블 자체는 1.5.0 병합에서 바뀌지 않았습니다 (partitions.csv 는 1.2.0-ko.15 이후 동일).

변경 사항

수정

  • UI 글꼴 한글 범위 축소: Pretendard 10pt 가 한글 음절 11,172자를 모두 담아 1,070 KB 를 쓰고 있었습니다. KS X 1001 완성형 2,350자로 제한해 828 KB 를 회수했습니다.
firmware.bin순정 6.25 MB 대비
1.5.0-ko.06,869,392 B315,792 B 초과
1.5.0-ko.16,041,152 B512,448 B 여유
본문 글꼴 KoPub 바탕은 한 바이트도 바뀌지 않았습니다 (한자 4,620자 포함 그대로). 읽기 화면 렌더링과 섹션 캐시는 영향이 없습니다.

알려진 제약

KS X 1001 은 현대 한국어 표기를 사실상 전부 덮지만, 빠지는 8,822자(뷁·똠 같은 옛한글·의성어 조합)는 UI 에서 표시되지 않습니다. 메뉴 레이블에는 나오지 않지만 책 제목이나 파일명에는 나올 수 있습니다.
전체 한글이 필요하시면 이 릴리즈에 첨부된 .epdfont 를 SD 카드에 넣고 설정 > 화면 > 시스템 글꼴에서 선택하세요.
파일크기
pretendard_10_regular.epdfont1.06 MB
pretendard_10_bold.epdfont1.10 MB
SD 카드의 /fonts 또는 /.fonts 에 복사하면 목록에 나타납니다.

내부

  • 한국어 내장 글꼴 재생성 스크립트 lib/EpdFont/scripts/convert-korean-builtin-fonts.sh 추가. 기존 헤더는 임시 명령으로 만들어져 재현이 불가능했습니다. KoPub 을 이 스크립트로 다시 생성해도 글리프 데이터가 바이트 단위로 동일함을 확인했습니다.
  • KS X 1001 구간 생성기 lib/EpdFont/scripts/ks_x_1001_intervals.py 추가.
  • docs/firmware-size-budget.md 갱신 — 남은 여유 512 KB, 다음 감축 후보 정리.

1.5.0 기능은?

1.5.0-ko.0 의 모든 기능이 그대로 있습니다 — 점진적 섹션 색인, 오프라인 사전, 책갈피, 다음 책 추천, 선택 팝업, Wi-Fi 자동 재연결, KOReader 동기화 확장, OPDS 다중 서버. 자세한 내용은 1.5.0-ko.0 릴리즈 노트를 참고하세요.
섹션 캐시 버전은 v40 그대로입니다. 1.5.0-ko.0 에서 이미 재색인했다면 다시 하지 않습니다.

v1.5.0-ko.0

1.5.0-ko.02026년 8월 17일
GitHub

요약

upstream v1.5.0 을 병합한 한국어 버전입니다. 큰 책이 몇 분 걸리던 첫 색인이 백그라운드로 넘어가 수 초 만에 열리고, 오프라인 사전과 책갈피가 추가되었습니다. 한국어 전용 글꼴·조판 기능은 모두 그대로 유지했습니다.
[!IMPORTANT] 섹션 캐시 포맷이 v26 → v41 로 바뀌어 모든 책이 한 번 재색인됩니다. 첫 열기가 평소보다 느린 것은 정상입니다.
1.2.0-ko.x 에서 바로 올라오는 경우 설정이 초기화됩니다. upstream 이 1.5.0 에서 레거시 settings.bin 마이그레이션을 제거했습니다. 1.3.0-ko.x 를 거쳐 오셨다면 설정은 유지됩니다.
이번 버전은 단일 OTA 설치가 불가합니다. firmware.bin 이 6.87 MB 로 순정 CrossPoint OTA 파티션(6.25 MB)을 약 307 KB 초과합니다. 잠긴 X4 는 2단계 설치(순정 CrossPoint 로 OTA → SD 카드로 KO 플래시)를 이용해 주세요.

upstream v1.5.0 주요 변경 사항

기능

  • 점진적 섹션 색인: 큰 챕터의 첫 페이지가 즉시 표시되고 나머지는 읽는 동안 백그라운드로 색인됩니다. 리더를 나가도 색인된 페이지가 보존되어 재진입 시 바로 열립니다.
  • 오프라인 사전: SD 카드 /dictionaries 에 StarDict 사전을 넣으면 단어를 선택해 뜻풀이를 볼 수 있습니다.
  • 책갈피: 리더 메뉴에서 책갈피를 추가·삭제하고 목록에서 이동할 수 있습니다. 확인 버튼 길게 누르기에 할당할 수도 있습니다.
  • 다음 책 추천: 책을 다 읽으면 끝 페이지 화면에서 기기에 있는 다른 책을 추천합니다.
  • 선택 팝업: 선택지가 3개 이상인 설정은 항목을 하나씩 순환하지 않고 대화상자로 열립니다.
  • 빠른 복귀 절전 화면: 절전 시 읽던 화면을 그대로 두고 달 아이콘만 표시해 즉시 복귀합니다.
  • Wi-Fi 개선: 저장된 네트워크 자동 재연결, 숨겨진 SSID 수동 추가.
  • KOReader 동기화 확장: 기기에서 계정 생성, 문서 매칭 방식, 메타데이터 전송, 스마트 동기화.
  • OPDS 개선: 서버 여러 개 등록, 다운로드 폴더와 파일 이름 형식 지정.
  • EPUB 지원, CSS text-decoration 확장,
    처리와 목록 불릿 정렬 개선.
  • RoundedRaff 테마 추가.

성능 / 수정

  • 렌더링·메모리 최적화로 페이지 넘김이 개선되고, 복잡한 EPUB 에서 발생하던 메모리 부족 크래시와 CSS 파서 버그가 수정되었습니다.
  • 다른 기기용 펌웨어를 설치하려 하면 차단하고 안내합니다.

내부

  • SDK 가 open-x4-sdk → freeink-sdk 로 교체되었습니다.

한국어 버전 변경 사항

수정

  • 자간: upstream 이 CJK 단어를 글자 단위 토큰으로 분할하도록 바뀌면서 한국어 글자 단위 줄바꿈 조판이 음절마다 공백을 넣던 문제를 수정했습니다. 붙는 글자는 하나의 런으로 묶어 그려 글꼴 설계 그대로의 자간을 유지합니다.
  • 줄바꿈 밀도: 위 수정 과정에서 줄 채우기 판정이 어절 사이 간격을 하나 적게 계산해, 한 줄에 글자가 하나씩 더 들어가고 어절 간격이 최소값까지 눌리던 문제를 수정했습니다. 판정 기준을 1.3.0-ko 와 동일하게 되돌려 줄바꿈 위치와 페이지 밀도가 1.3.0-ko 와 일치합니다.
  • 배터리 표시: 완충 상태에서 91% 로 표시되던 문제를 보정했습니다. SDK 의 전압-퍼센트 곡선이 4.136V 이상에서만 100% 를 반환하는데 완충 셀이 분압·ADC 오차로 약 4.06V 로 읽히는 것이 원인이었습니다. 곡선 상단만 100% 로 확장하고 하단은 그대로 두어 저전력 경고 정확도는 유지합니다.
  • 뒤로 짧게 파일 탐색기: 이 옵션이 EPUB·TXT 리더에서 동작하지 않던 문제를 수정했습니다. 각주를 보는 중에는 설정과 무관하게 뒤로 짧게가 각주 복귀에 먼저 쓰입니다.
  • 설정 > 리더: 줄 간격·화면 여백·문단 정렬·내장 스타일·하이픈·문단 간격·단락 들여쓰기·글자 단위 줄바꿈·안티앨리어싱 항목이 목록에서 보이지 않던 문제를 수정했습니다.

유지된 한국어 전용 기능

  • UnifiedFontFamily / SdFontFamily 글꼴 시스템 (SD 카드 .epdfont 런타임 로딩)
  • 기본 EPUB 글꼴 KoPub 바탕, UI 시스템 글꼴 선택 + Pretendard 글리프 폴백
  • 합성 볼드(Synthetic Bold) 렌더링, 자간 조절
  • 단락 들여쓰기 / 글자 단위 줄바꿈 (기본 ON), 한국어 줄 간격 1.00 / 1.20 / 1.40배
  • 하이픈은 글자 단위 줄바꿈이 꺼져 있을 때만 적용
  • 읽기 시간 누적·초기화, 자동 페이지 넘김, 길게 눌러 페이지 점프
  • X4 2단계 OTA 경로 (SD 다운로드 후 플래시)

내부

  • upstream 의 .cpfont SD 글꼴 엔진을 제거하고 한국어 .epdfont 엔진을 유지했습니다. 이에 따라 upstream 의 "텍스트 설정" 화면과 "글꼴 관리"(폰트 다운로드), 웹 UI /fonts 페이지는 포함되지 않습니다. 텍스트 옵션은 리더 메뉴의 읽기 옵션에서 조정합니다.
  • 한국어·영어 두 언어만 포함합니다 (플래시 용량).
  • 신규 문자열 61개를 모두 번역해 한국어 fallback 0 을 유지합니다.
30개의 릴리즈 중 16-18