Repository navigation
OST版 2026090504
Pre-release本家1.6.0rcをベースにしたもの。今回は1.6.0リリース直前、最終まとめ 的な位置づけとして、時計モード復活させました。
※2026090501を公開した直後に時計モードをメニューに戻した02へ差し替え、さらに時計モード限定の監視を入れた2026090504へ差し替えました。01→02は時計モードの有無、02→04は下記の監視の有無だけの違いです。文字の表示や組版には手を入れていないため、各書籍のページ配置の作り直しは走りません(前版2026090210からの入れ替えなら初回オープンも通常どおりです)。
時計モードで端末が固まる原因を特定し、修正しました
前版で「原因未特定」としていた件です。CPUの速さを切り替える処理に、2つの処理系統が同時に入ると互いの完了を待ち合って永久に止まる経路がArduino基盤の中にありました。切り替えの前後で画面用の通信路の使用権を取ったり返したりしており、片方が「速さ変更中」で通信路の使用権を握ったまま、もう片方が「通信路の使用権」を待ちながら速さ変更の権利を握る、という組み合わせになると両方が止まります。
当版の電源管理では、待機時にCPUを落とす処理(50msごと)と、描画のために上げる処理が別々の系統から同時に走りうる瞬間があり、時計モードは毎分その瞬間を通っていました。数十〜数百マイクロ秒の窓なので、12時間持つこともあれば1分で止まることもあった、という頻度にも合います。
修正は、CPUの速さを変える処理全体をひとつの順番待ちの中に入れ、2系統が同時に入れないようにしたものです。読書中を含む全画面に効きます。
検証: 調査用のビルドで、故意にタスクを止めて30秒後に自動再起動することを主処理・描画処理の両方で確認したうえで、給電なしの時計表示を8時間6分連続で走らせ、固まり・再起動なし、メモリ使用量も一定(空き44KBのまま)でした。電池の減りは残量表示で−2%でした。
時計モードがHomeメニューに戻りました
前版2026090210で外していた「Start clock mode」を復帰させました。上の修正で原因を塞いだこと、固まっても30秒で自動再起動する経路を実機で実証したこと、給電なし8時間の走行が通ったことが根拠です。使い方は従来どおり、[Settings]-[Reader]-[Customize Status Bar]の[Clock UTC Offset]を「UTC+9:00」にすると日本時間になります。
時計モードで固まっても30秒で自動再起動するようになりました
時計画面にいる間だけ、ボタンを受け付ける処理と画面を描く処理の両方を30秒の監視下に置きます。どちらかが30秒応答を返さなければ端末を再起動し、SDカードの crash_report.txt に止まっていた処理の名前と直前の記録を残します。リセットボタンが画面の下にあるこの機種で、固まりの代償を「電池切れまで1〜2日」から「30秒」にするためのものです。
監視は時計画面だけです。読書中の初回描画や無線でのファイル転送は正当に30秒以上かかることがあるため、そちらには広げていません。時計画面でBack以外のボタンを押しても何も起きません(開発用の故意ハングの仕掛けは配布版には入っていません)。
検証: 配布版と同じ監視経路を持つ試験ビルドで、主処理・描画処理をそれぞれ故意に止め、どちらも30秒で再起動して報告に処理名が残ることを実機で確認しました。誤って再起動しないことは、同じ範囲・同じ30秒で監視していた調査用ビルドの8時間走行(再起動なし)で確認しています。
万一時計モードで再起動が起きた場合は、crash_report.txt を報告いただければ原因を追えます。
クラッシュ報告にビルド番号が入るようになりました
端末が異常終了したときにSDカードへ書かれる crash_report.txt の先頭に、OST build: 2026090504 のようにこのファームウェアの番号が入ります。これまでの版名(コミット)では試験ビルド同士の区別がつかず、別のビルドの報告を読んで原因を追ってしまうことがあったためです。報告を送っていただく際はこの行も含めてください。
調査のみ(ファームウェアの変更なし)
- ブックウォーカー社の「KADOKAWA-EPUB 再現指標」30項目と当版の実装を照合し、【高】【中】の各項目が商業EPUB 1,883冊で実際にどれだけ使われているかを数えました。結果はリポジトリのREADMEにあります。主な発見は、縦書き本の7割が扉・奥付・前付に横組みの部分を持ち、当版はそれを縦のまま表示していること。次に着手する候補にしています
- 縦中横は現状の自動処理で実使用の99.98%を賄えていることが分かり、専用実装は見送ります
- 明朝/ゴシックの混植(フォント切り替え)は実施しない方針にしました。9割の本に指定がありますが1冊あたり数十箇所で、2書体を常駐させるメモリの代償に見合いません
- 挿絵の寸法を実測から再現したテスト用EPUB(
test/epubs-ja/image-size-test.epub)を追加しました
使うための手順
- microSDをFAT32フォーマットしたものを用意
- OST版 2026082405 にある fonts-202608240.zip の中身を展開して、microSDにfontsフォルダごとコピー
- crosspoint-OST-2026090504.bin を microSDにコピー
- 万が一の復旧用に https://crosspointreader.com/unlock から update.bin をダウンロードして microSDにコピー
- XTEINK X3をsleep状態にしてからmicroSD交換
- X3の左側面のボタンと、上側右の電源ボタンを長押しして、「BOOTING」表示になったら離す
- OST~.binを選択して、firmwareを書き換える
- 起動後、[Settings]-[Text Settings]にて必要な設定
[Fonts]は「BIZUDGothic」「BIZUDMincho」「NotoSansJP」のどれかを選択 (私はNotoSansJP)
[Size]は 見やすいサイズを選択 (私は18pt)
[Layout]は「Extra Paragrash Spacing」は「ON」
[Style]は基本は「Embedded Style」と「Text Anti-Aliasing」は両方「ON」
EPUB読み込みでクラッシュする場合、「Embedded Style」を「OFF」にする
文字の描画が遅いと思ったら「Text Anti-Aliasing」を「OFF」にする