4インチ前後で480×800の小型E-INK電子書籍端末群を比較する(Xteink X4 Pro,M5Stack PaperMono, reTerminal Sticky, Metalio E-INK4, Murphy M4)

4インチ前後で480×800解像度の小型E-INK端末がいろいろ出ている

aliexpressで見かけるやつでも探してみるとgithubで利用できるソースコードが公開されているものもあったりする

それらをまとめてみた

claude opus5に比較表作らせた時のお勧めについては下記

以下は検索用の文字表記版

製品名X4 ProX4 ClassicMurphy M4PaperMonoreTerminal StickyMetalio E-INK4
SoCESP32-S3ESP32-S3ESP32-S3ESP32-S3R8ESP32-S3R8ESP32-S3
PSRAM / Flash8 MB Octal / ? MBなし / 4 MB8 MB Quad / 16 MB8 MB Octal / 16 MB8 MB Octal / 32 MB??MB Octal / 16 MB
画面仕様4.3″ 480×800 219 ppi4.3″ 480×800 219 ppi4.26″ 480×800 219 ppi3.97″ 480×800 235 ppi3.97″ 800×480 235 ppi3.97″ 800×480 235 ppi
E-INK表示機構SSD1677SSD1677SSD1677SSD1677SSD1677SSD1677
タッチ
GT911 (0x5D)
×
FT6336U(0x2E)

FT6336G(0x38)

GT911(0x5D)

CST816S
物理ボタン計3個
電源
側面2
計7個
電源
側面2
前面2
上面1
計3個
決定&電源
UP
Down
計3個
電源
Up
Down
計3個
決定&電源
UP
Down
見た目的には計7個
内部的には3個+仮想ボタンらしい
フロントライト○ 2ch 暖/寒×○ 2ch 暖/寒○ 1ch 輝度のみ××
バッテリ1,100 mAh
CW2017
920 mAh
CW2017
容量非公開
ADC
1,150 mAh
ADC
750 mAh
BQ27220
容量非公開
BQ27220
RTCBM8563(0x51)なしなしRX8130(0x32)なしPCF8563
充電ポゴピン(USB-C コネクタなし)ポゴピン(USB-C コネクタなし)USB-CUSB-CUSB-CUSB-C
microSD
IMUなしQMI8658なしBMI2706軸IMUSC7A20H
音声なしなしスピーカーあり?PDM マイク+ブザーマイク+ブザースピーカー+マイク+BT
無線Wi-Fi/BTWi-Fi/BTWi-Fi/BTWi-Fi/BT, LoRaWi-Fi/BTWi-Fi + 外付BT
重量72g68g74.7g70g
その他吸着磁石吸着磁石側面3ボタンIMU, RTC, RGB LED温湿度, IMU, 磁石加速度, RTC, 振動, カメラ端子
CrossPoint公式公式PR crosspoint-reader/crosspoint-reader#2930 公式公式未対応
関連資料機器資料
crosspointの移植github
公式資料公式資料
公式github
機器資料
読書最優先 Xteink X4 Pro2ch 寒暖照明
GT911 によるタッチ操作
バッテリー残量検出が正確
完成品としての仕上げが最も高い
microSDへのアクセスはSDMMC 1bitとそれなり
欠点はポゴピン充電で、汎用のUSB-C ケーブルが使えないこと
ボタン派・軽量 Xteink X4 Classic68 g / 4.9 mm
個別ボタン7個で全操作が完結
バッテリー残量検出が正確
QMI8658 使った物理的に振ってページ送り
初代X4より高速化
microSDへのアクセスはSDMMC 1bitとX4より早い
欠点は 照明とタッチがないこと
読書+工作 M5Stack PaperMono1ch 照明
タッチ対応
LoRa と NFC に対応したHW
microSDへのアクセスはSDMMC 4bitと高速
欠点は、開発キット寄りの筐体と次回生産時期が2027年予定
最安で弄る reTerminal Stickyセンサー類が搭載されていて、読書専用機というより貼れるサイネージ兼リーダーという作り
欠点は、ライトなし、とmicroSDアクセスがSPIと共有の為、遅いこと
2ch 照明+自前ビルド Murphy M42ch寒暖照明
microSDへのアクセスはSDMMC 4bitと高速
欠点は、crosspoint reader公式非対応と、バッテリー残量検出がADCによる電圧からの推測のみということ
AI 端末自作 Metalio E-INK4スピーカー・マイク・BT 音声・振動・RTC・カメラ端子を積んだ音声アシスタント基板。
microSDへのアクセスはSDMMC 1bitとそれなり
欠点は、現状crosspoint reader未対応、ライトなし、ということ

下記は製品写真

XTEINK X3をaliexpressで買った

小型E-INKデバイスXTEINK X4X3をaliexpressでよく見かけていたんだけど、crosspoint readerというオープンソースのfirmwareに入れ替えられることを知ったので入手してみた

crosspoint公式github https://github.com/crosspoint-reader/crosspoint-reader

XTEINKで買うと1万円以上しているけど、aliexpressでコイン割引で7660円となるものがあったので買ってみた

2026/07/21発注で2026/08/06到着と、珍しく時間がかかって届いた。おそらく台湾発送の「AliExpress Standard for Special Goods」での取り扱いだったことが原因なんだろうなぁ、と思われる。

届いた中身は箱2つだった。

小さな箱は、画面保護シート、microSDリーダ/ライターと、magsafeっぽく使えるようにするための磁石リング2個

本体箱の中身はこんな感じ

本体、充電用USBケーブル、マニュアルが入っていました

初期firmware

初期画面はこんな感じで、上面右側のボタンを長押しして電源を入れます。

初回起動時はこんな画面でした。

設定(没置)を選択すると、「语言」で言語が選択できる

意外なことに「日本語」があった。選択すると下記の様に日本語になる。

到着時のfirmwareはXTOS V5.2.13

WiFiに接続して、最新のfirmware XTOS 6..4にバージョンアップ

microSDにテスト用epubファイルをコピーして開いてみる

中華フォントですね

Firmware入れ替え

付属のUSBケーブルを使ってWindows機につなげても認識してくれない状態でした

crosspoint readerの日本語対応版を開発している https://github.com/zrn-ns/crosspoint-jp を見ると理由が書いてあった

aliexpress版はUSB機能が殺されているlock版で、USB機能は使えないが、microSD経由でfirmwareを変更することはできる、と

crosspoint reader公式にunlock firmwareが提供されているので「update.bin」をmicroSDカードに保存してXTEINK X3に戻す

XTEINK X3にUSBケーブルをつなげて充電状態にする

XTEINK X3が起動してても/起動していなくても、電源ボタン(上面の右側ボタン)と上ボタン(左面のボタン)を押し続ける

画面が「更新中」となったら手を離して終了まで待つ

下記の様に英語表示になったら書き換え終了です

XTOSで使用したテスト用epubファイルを読み込んでみる・・・System Crash

XTOSでいけたのに、ダメなのか、と意外な結果に驚きが・・・

続いて日本語対応版 https://github.com/zrn-ns/crosspoint-jp をインストールしてみます

microsdにfirmware.binをコピーして

XTEINK X3の「Settings」→「System」→「SD Card Firmware Update」で「firmware.bin」を選択して更新

アップデート中…

おや?ばけばけ

フォントをインストールしてから表示するとエラーで落ちる・・・

うーん・・・

crosspoint jpのissue事象を登録してから、詳細を見ていくと、#103 の角川系EPUBファイルで発生している事象の問題がまさしくそのものっぽい。

「書籍の埋め込みスタイル」を「OFF」にすることで表示できる、ということも発見した。

2026/09/08 追記: メモリエラーの件は、その後のバージョンで解決している

ESP32 C3 SuperMiniをUbuntu 24.04で使うときのメモ

ある一定温度になったら5Vファンを回す、程度の制御に使うマイコンとしてなんか買うか、とaliexpress見てたら、506円で ESP32 C3 SuperMiniというのがあったので買ってみた

購入したセラーのページには詳細がなかったので、調べてみたら、「【Arduino】ESP32 C3 SuperMiniを使う」を発見

ESP32 C3 SuperMini という製品名に対して、細かなバージョン違いがあるらしい。

掲載されている写真の部品配置と比較してみたところ、今回買ったものは「ESP32 C3 Super Mini(K2)」に相当しているみたいである

で・・・Ubuntu 24.04Serverをインストールして、arduinoをインストールし、Windows上にインストールしたVcXsrvに画面を飛ばす。

Arduiono上では、ボードマネージャにESP32追加し、ESP32 C3 Dev boardを選択して、サンプルを書き込み

エラー発生

Arduino:1.8.19 (Linux), ボード:"ESP32C3 Dev Module, Disabled, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 160MHz (WiFi), QIO, 80MHz, 4MB (32Mb), 921600, None, Disabled, Disabled"

警告:ライブラリESP_SRのカテゴリ「Sound」は有効ではありません。「Uncategorized」に設定します。
警告:ライブラリHashのカテゴリ「Security」は有効ではありません。「Uncategorized」に設定します。
警告:ライブラリESP Insightsのカテゴリ「」は有効ではありません。「Uncategorized」に設定します。
警告:ライブラリESP RainMakerのカテゴリ「」は有効ではありません。「Uncategorized」に設定します。
警告:ライブラリTFLite Microのカテゴリ「」は有効ではありません。「Uncategorized」に設定します。
警告:ライブラリWiFiProvのカテゴリ「」は有効ではありません。「Uncategorized」に設定します。
最大1310720バイトのフラッシュメモリのうち、スケッチが282882バイト(21%)を使っています。
最大327680バイトのRAMのうち、グローバル変数が14240バイト(4%)を使っていて、ローカル変数で313440バイト使うことができます。
                                                                                
 Usage: esptool [OPTIONS] COMMAND [ARGS]...                                     
                                                                                
 Try 'esptool -h' for help                                                      
╭─ Error ──────────────────────────────────────────────────────────────────────╮
│ Invalid value for '--port' / '-p': Path '/dev/ttyACM0' is not readable.      │
╰──────────────────────────────────────────────────────────────────────────────╯
                                                                                
シリアルポート「                                                                                
」が選択されていますが、そのポートは存在しないか、ボードが接続されていません。


「ファイル」メニューの「環境設定」から
「より詳細な情報を表示する:コンパイル」を有効にすると
より詳しい情報が表示されます。

確認してみる

まず、USBデバイスが存在しているかを確認

pcuser@ubuntu:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 007: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 008: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 022: ID 303a:1001 Espressif USB JTAG/serial debug unit
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
pcuser@ubuntu:~$

ある

rootユーザでesptoolを実行したらどうなる?

root@ubuntu:~# /home/pcuser/.arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool --port /dev/ttyACM0 chip-id
esptool v5.1.0
Connected to ESP32-C3 on /dev/ttyACM0:
Chip type:          ESP32-C3 (QFN32) (revision v0.4)
Features:           Wi-Fi, BT 5 (LE), Single Core, 160MHz, Embedded Flash 4MB (XMC)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                ac:eb:e6:6d:6b:b0

Stub flasher running.

Warning: ESP32-C3 has no chip ID. Reading MAC address instead.
MAC:                ac:eb:e6:6d:6b:b0

Hard resetting via RTS pin...
root@ubuntu:~#

情報が取得できる

一般ユーザだとどうなる?

pcuser@ubuntu:~$ /home/pcuser/.arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool --port /dev/ttyACM0 chip-id

 Usage: esptool [OPTIONS] COMMAND [ARGS]...

 Try 'esptool -h' for help
lq Error qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Invalid value for '--port' / '-p': Path '/dev/ttyACM0' is not readable.     x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

pcuser@ubuntu:~$

エラーとなる

つまり・・・/dev/ttyACM0 にアクセス権がない

pcuser@ubuntu:~$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0  4月  8 11:40 /dev/ttyACM0
pcuser@ubuntu:~$

面倒くさいので /dev/ttyACM0自体に権限を与えてしまう

pcuser@ubuntu:~$ sudo chmod a+rw /dev/ttyACM0
[sudo] pcuser のパスワード:
pcuser@ubuntu:~$ ls -l /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0  4月  8 11:40 /dev/ttyACM0
pcuser@ubuntu:~$

変更後は一般ユーザでもesptoolの実行に成功した

pcuser@ubuntu:~$ /home/pcuser/.arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool --port /dev/ttyACM0 chip-id
esptool v5.1.0
Connected to ESP32-C3 on /dev/ttyACM0:
Chip type:          ESP32-C3 (QFN32) (revision v0.4)
Features:           Wi-Fi, BT 5 (LE), Single Core, 160MHz, Embedded Flash 4MB (XMC)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                ac:eb:e6:6d:6b:b0

Stub flasher running.

Warning: ESP32-C3 has no chip ID. Reading MAC address instead.
MAC:                ac:eb:e6:6d:6b:b0

Hard resetting via RTS pin...
pcuser@ubuntu:~$

ただ、これだと、1回抜き差しすると/dev/ttyACM0は再作成されるので権限が元に戻ってしまう

pcuser@ubuntu:~$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 4月 8 11:53 /dev/ttyACM0
pcuser@ubuntu:~$

簡単に解決する方法は、上記/dev/ttyACM0のグループ権限にある「dialout」に、一般ユーザを追加すること

pcuser@ubuntu:~$ sudo usermod -aG dialout pcuser
[sudo] pcuser のパスワード:
pcuser@ubuntu:~$

設定後、一回ログアウトする必要がある。ログアウトしないと古い権限が適用され使用できない

pcuser@ubuntu:~$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0  4月  8 11:53 /dev/ttyACM0
pcuser@ubuntu:~$ /home/pcuser/.arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool --port /dev/ttyACM0 chip-id

 Usage: esptool [OPTIONS] COMMAND [ARGS]...

 Try 'esptool -h' for help
lq Error qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Invalid value for '--port' / '-p': Path '/dev/ttyACM0' is not readable.     x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

pcuser@ubuntu:~$

ログインしなおすと、使えるようになる

pcuser@ubuntu:~$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0  4月  8 11:53 /dev/ttyACM0
pcuser@ubuntu:~$ /home/pcuser/.arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool --port /dev/ttyACM0 chip-id
esptool v5.1.0
Connected to ESP32-C3 on /dev/ttyACM0:
Chip type:          ESP32-C3 (QFN32) (revision v0.4)
Features:           Wi-Fi, BT 5 (LE), Single Core, 160MHz, Embedded Flash 4MB (XMC)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                ac:eb:e6:6d:6b:b0

Stub flasher running.

Warning: ESP32-C3 has no chip ID. Reading MAC address instead.
MAC:                ac:eb:e6:6d:6b:b0

Hard resetting via RTS pin...
pcuser@ubuntu:~$ id
uid=1000(pcuser) gid=1000(pcuser) groups=1000(pcuser),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),101(lxd)
pcuser@ubuntu:~$

シリアル出力をしない設定がある

debugのために下記の様な感じでシリアル出力を書いた

#define LED_PIN (8)

void setup() {
  Serial.begin(9600);
  Serial.print("start");
  pinMode(LED_PIN, OUTPUT);

  while(1)
  {
    digitalWrite(LED_PIN, LOW);
    delay(500);

    digitalWrite(LED_PIN, HIGH);
    delay(100);
  }

}

void loop() {

  Serial.println("loop test");
  delay(3000);
}

しかし、シリアルモニタに何も出力されない

調べると「esp32 c3系でシリアルモニタに出力されない」に「USB CDC On Boot」が「Disabled」になってると出力されない、という話があった

確認すると、Disabledであった

しかし「Enabled」に変えてから書き込みを行ってもシリアル出力はされない状態

arduiono 1.8.19 on ubuntu 24.04

他の事例「ESP32C3 Super Mini doen’t communicate with Serial Monitor in one setup, but it does in another setup — why?」には「ESP32C3 Dev Module」ではなく「LOLIN C3 Mini」を選んで「USB CDC On Boot:Enabled」で書き込め、ということでやってみたが、ダメだった

claudeに「esp32 c3 super mini にて シリアル出力が出てこない」と聞いてみたら「USB CDC の初期化待ち(重要!)」だそうな

ということでSerial.begin(9600);の次にdelay(2000)を追加したところ、とりあえずsetup内のserial.printについては出力はされたが、loop無いのやつが出力されない…って、あ、setup内でループしてんじゃん

#define LED_PIN (8)

void setup() {
  Serial.begin(9600);
  delay(2000); 
  Serial.print("start");
  pinMode(LED_PIN, OUTPUT);

  //while(1)
  //{
  //  digitalWrite(LED_PIN, LOW);
  //  delay(500);

  //  digitalWrite(LED_PIN, HIGH);
  //  delay(100);
  //}

}

void loop() {

  Serial.println("loop test");
  delay(3000);
}

ということで動作を確認

DSPラジオ ATS-Miniのfirmwareをアップデートしてみた

aliexpressで安く売ってたATS-Miniの派生品買ってみた

ループアンテナセットで3222円でした。

電源入れた時のfirmware versionは1.0.1と出ていた

バージョンアップできるのか探してみると https://github.com/esp32-si4732/ats-mini を発見

(あとからわかったのだが、最初にインストールされてたのは 同じgithubでも大文字の https://github.com/G8PTN/ATS_MINI/ で、こちらはソースコード非公開だった)

ドキュメントにあるように uv をインストールしてみた

osakanataro@ubuntuserver:~$ curl -LsSf https://astral.sh/uv/install.sh | sh
downloading uv 0.7.2 x86_64-unknown-linux-gnu
no checksums to verify
installing to /home/osakanataro/.local/bin
  uv
  uvx
everything's installed!
osakanataro@ubuntuserver:~$

ATS-MiniをLinuxサーバに接続してみるとデバイスが認識される

osakanataro@ubuntuserver:~$ lsusb
<略>
Bus 002 Device 006: ID 303a:1001 Espressif USB JTAG/serial debug unit
<略>
osakanataro@ubuntuserver:~$ lsusb --tree
<略>
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/11p, 480M
<略>
    |__ Port 007: Dev 006, If 0, Class=Communications, Driver=cdc_acm, 12M
    |__ Port 007: Dev 006, If 1, Class=CDC Data, Driver=cdc_acm, 12M
    |__ Port 007: Dev 006, If 2, Class=Vendor Specific Class, Driver=[none], 12M
<略>
osakanataro@ubuntuserver:~$

シリアルポート名が何になっているのかをdmesgの結果から確認

osakanataro@ubuntuserver:~$ sudo dmesg|tail
[sudo] osakanataro のパスワード:
[1695575.346617] usbcore: registered new interface driver cdc_acm
[1695575.346621] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[1695776.000954] usb 2-7: USB disconnect, device number 5
[1695849.379292] usb 2-7: new full-speed USB device number 6 using xhci_hcd
[1695849.506664] usb 2-7: New USB device found, idVendor=303a, idProduct=1001, bcdDevice= 1.01
[1695849.506681] usb 2-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1695849.506688] usb 2-7: Product: USB JTAG/serial debug unit
[1695849.506693] usb 2-7: Manufacturer: Espressif
[1695849.506697] usb 2-7: SerialNumber: FC:01:2C:CC:BD:08
[1695849.510971] cdc_acm 2-7:1.0: ttyACM0: USB ACM device
osakanataro@ubuntuserver:~$
osakanataro@ubuntuserver:~$ uvx --from esptool esptool.py --chip esp32s3 --port ttyACM0 --baud 921600 read_flash 0x0 ALL original-flash.bin
      Built esptool==4.8.1
Installed 13 packages in 30ms
esptool.py v4.8.1
Serial port SERIAL_PORT

A fatal error occurred: Could not open ttyACM0, the port is busy or doesn't exist.
([Errno 2] could not open port ttyACM0: [Errno 2] No such file or directory: 'ttyACM0')

Hint: Check if the port is correct and ESP connected

osakanataro@ubuntuserver:~$

あ・・・パス指定

osakanataro@ubuntuserver:~$ uvx --from esptool esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 read_flash 0x0 ALL original-flash.bin
esptool.py v4.8.1
Serial port /dev/ttyACM0

A fatal error occurred: Could not open /dev/ttyACM0, the port is busy or doesn't exist.
([Errno 13] could not open port /dev/ttyACM0: [Errno 13] Permission denied: '/dev/ttyACM0')

Hint: Try to add user into dialout or uucp group.

osakanataro@ubuntuserver:~$

uv,uvxはユーザディレクトリにインストールされているのでsudoで使えない・・・

osakanataro@ubuntuserver:~$ sudo uvx --from esptool esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 read_flash 0x0 ALL original-flash.bin
sudo: uvx: コマンドが見つかりません
osakanataro@ubuntuserver:~$

uucpグループとdialoutグループのどちらにも所属させたけどpermission denied

osakanataro@ubuntuserver:~$ sudo usermod -G uucp,dialout osakanataro
[sudo] osakanataro のパスワード:
osakanataro@ubuntuserver:~$ uvx --from esptool esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 read_flash 0x0 ALL original-flash.bin
esptool.py v4.8.1
Serial port /dev/ttyACM0

A fatal error occurred: Could not open /dev/ttyACM0, the port is busy or doesn't exist.
([Errno 13] could not open port /dev/ttyACM0: [Errno 13] Permission denied: '/dev/ttyACM0')

Hint: Try to add user into dialout or uucp group.

osakanataro@ubuntuserver:~$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0  5月  6 15:54 /dev/ttyACM0
osakanataro@ubuntuserver:~$

んー???

ぐぐると brltty がインストールされている場合に発生することがあるらしいのでアンインストールして再実行

osakanataro@ubuntuserver:~$ dpkg -l|grep tty
ii  brltty                                         6.6-4ubuntu5                             amd64        Access software for a blind person using a braille display
ii  libjetty9-java                                 9.4.53-1                                 all          Java servlet engine and webserver -- core libraries
osakanataro@ubuntuserver:~$
osakanataro@ubuntuserver:~$ dpkg -l|grep brltty
ii  brltty                                         6.6-4ubuntu5                             amd64        Access software for a blind person using a braille display
osakanataro@ubuntuserver:~$ sudo apt remove brltty
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libpcre2-32-0
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
  brltty
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 7 個。
この操作後に 10.5 MB のディスク容量が解放されます。
続行しますか? [Y/n] y
(データベースを読み込んでいます ... 現在 278045 個のファイルとディレクトリがインストールされています。)
brltty (6.6-4ubuntu5) を削除しています ...
man-db (2.12.0-4build2) のトリガを処理しています ...
エラー: タイムアウトしました
osakanataro@ubuntuserver:~$ uvx --from esptool esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 read_flash 0x0 ALL original-flash.bin
esptool.py v4.8.1
Serial port /dev/ttyACM0

A fatal error occurred: Could not open /dev/ttyACM0, the port is busy or doesn't exist.
([Errno 13] could not open port /dev/ttyACM0: [Errno 13] Permission denied: '/dev/ttyACM0')

Hint: Try to add user into dialout or uucp group.

osakanataro@ubuntuserver:~$

違うらしい

再起動したあと再実行すると、あっけなく実行が出来た

osakanataro@ubuntuserver:~$ uvx --from esptool esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 read_flash 0x0 ALL original-flash.bin
esptool.py v4.8.1
Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)
Crystal is 40MHz
MAC: fc:01:2c:cc:bd:08
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Detected flash size: 16MB
16777216 (100 %)
16777216 (100 %)
Read 16777216 bytes at 0x00000000 in 273.8 seconds (490.2 kbit/s)...
Hard resetting via RTS pin...
osakanataro@ubuntuserver:~$ ls -l original-flash.bin
-rw-rw-r-- 1 osakanataro osakanataro 16777216  5月  6 17:26 original-flash.bin
osakanataro@ubuntuserver:~$

では、続いて、firmwareを書き込み

osakanataro@ubuntuserver:~/ats-mini$ ls ats-mini-v2.14
CHANGELOG.md  ats-mini.ino.bin  ats-mini.ino.bootloader.bin  ats-mini.ino.merged.bin  ats-mini.ino.partitions.bin
osakanataro@ubuntuserver:~/ats-mini$ ls -l ats-mini-v2.14
合計 8712
-rw-r--r-- 1 osakanataro osakanataro   11491  5月  6 12:46 CHANGELOG.md
-rw-r--r-- 1 osakanataro osakanataro  494048  5月  6 12:46 ats-mini.ino.bin
-rw-r--r-- 1 osakanataro osakanataro   20208  5月  6 12:46 ats-mini.ino.bootloader.bin
-rw-r--r-- 1 osakanataro osakanataro 8388608  5月  6 12:46 ats-mini.ino.merged.bin
-rw-r--r-- 1 osakanataro osakanataro    3072  5月  6 12:46 ats-mini.ino.partitions.bin
osakanataro@ubuntuserver:~/ats-mini$ uvx --from esptool esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash  -z --flash_mode keep --flash_freq keep --flash_size keep 0x0 ats-mini-v2.14/ats-mini.ino.merged.bin
esptool.py v4.8.1
Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)
Crystal is 40MHz
MAC: fc:01:2c:cc:bd:08
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x007fffff...
Compressed 8388608 bytes to 299786...
Wrote 8388608 bytes (299786 compressed) at 0x00000000 in 20.2 seconds (effective 3315.7 kbit/s)...

A fatal error occurred: Packet content transfer stopped (received 0 bytes)
osakanataro@ubuntuserver:~/ats-mini$

えっ・・・・失敗?

もう1つある分割ファイルの方で再実行

osakanataro@ubuntuserver:~/ats-mini$ uvx --from esptool esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash  -z --flash_mode keep --flash_freq keep --flash_size keep 0x0 ats-mini-v2.14/ats-mini.ino.bootloader.bin 0x8000 ats-mini-v2.14/ats-mini.ino.partitions.bin 0x10000 ats-mini-v2.14/ats-mini.ino.bin
esptool.py v4.8.1
Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)
Crystal is 40MHz
MAC: fc:01:2c:cc:bd:08
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00004fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x00010000 to 0x00088fff...
Compressed 20208 bytes to 13058...
Wrote 20208 bytes (13058 compressed) at 0x00000000 in 0.2 seconds (effective 918.1 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1196.3 kbit/s)...
Hash of data verified.
Compressed 494048 bytes to 277050...
Wrote 494048 bytes (277050 compressed) at 0x00010000 in 2.5 seconds (effective 1560.3 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
osakanataro@ubuntuserver:~/ats-mini$

無事に書き込み完了

FW2.14で起動したことを確認

lvglのALIGN設定を確認した

TTGO T-Watch-2020で画面にいろいろ要素を足してみる時に設定するLV_ALIGN_IN_~とかLV_ALIGN_OUT_~の違いがよくわからないのでドキュメントサイトを検索してみたけど、資料が無かった…

2020/09/08 公式に追加された「Base object (lv_obj) Alignment

仕方が無いので実際に表示をして確認してみた。

縦方向: y もしくは height
横方向: x もしくは width

文字列が長くなるので「LV_ALIGN_IN_BOTTOM_RIGHT」だったら「IN_BOTTOM_RIGHT」というように「LV_ALIGN_」の部分を省略している。