LILYGO TTGOからT-Watch-2020が登場。
販売ページ「LILYGO® TTGO T-Watch-2020 ESP32 Main Chip 1.54 Inch Touch Display Programmable Wearable Environmental Interaction」
資料「https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library」
発売直後に注文入れたのですが、発送される前に値下がりしてたり、中継地点のシンガポールにつくまで1ヶ月以上音沙汰がなかったりと、約2ヶ月かかるとは思いませんでした。
中身は本体とmicroUSBケーブルだけでした。
初代T-WatchはType-Cコネクタでしたが、microUSBだとは・・・
横についているボタンを押しても電源が入らなかったので、microUSBで電源供給してみたところテストプログラムが実行されました。
とりあえずは問題ないようです。
では、開発環境を作って書き換えましょう。
ドキュメントとして「https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library」と「T-Watch Document」が書かれていますが、後者の記述は微妙なので無視ですね。
初期設定
(1) Arduino IDEをインストール
Arduino IDEをダウンロードしてインストール。うちの環境はWindows10なので Microsoft Storeからインストールしました。
(2) TTGO_TWatch_Library ライブラリをインストール
https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library の「Clone or download」から「Download Zip」を選択してzipファイルをダウンロード。
Arduino IDEの[スケッチ]-[ライブラリをインクルード]-[ZIP形式のライブラリをインストール]にてダウンロードしたzipファイルを指定してインストール。
(3) Arduino IDE Boards Managerにespressif社のURLを登録
Arduino IDEの[ファイル]-[環境設定]の「追加ボードマネージャのURL」に「https://dl.espressif.com/dl/package_esp32_index.json」を追加する。
(3) T-Watchを選択する
Arduino IDEの[ツール]-[ボード]-[ESP32 Arduino]-[TTGO T-Watch]を選択する。(下の方に登録されている)
(4) スケッチ例からSimple Watchを呼び出す
Arduino IDEの[ファイル]-[スケッチ例]-[TTGO T-Watch]-[lvgl]-[Simple Watch]を選択する。
(5) Simple WatchをT-Watch-2020用に書き換える
「SimpleWatch」のファイル冒頭に「// #define LILYGO_TWATCH_2020_V1 // If you are using T-Watch-2020 version, please open this macro definition」とあるように、T-Watch-2020を使う場合はここのコメントを外す必要がある。
/* Copyright (c) 2019 lewis he This is just a demonstration. Most of the functions are not implemented. The main implementation is low-power standby. The off-screen standby (not deep sleep) current is about 4mA. Select standard motherboard and standard backplane for testing. Created by Lewis he on October 10, 2019. */ #define LILYGO_TWATCH_2020_V1 // If you are using T-Watch-2020 version, please open this macro definition #include <TTGO.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/timers.h" <以下略>
こんな感じに書き換える。
また、「gui.cpp」というタブ内で、時刻表示が「CST-8」と設定されているので、それを「JST-9」に書き換えます。
<略> #include "FS.h" #include "SD.h" #define RTC_TIME_ZONE "JST-9" LV_FONT_DECLARE(Geometr); <略>
こんな感じです。
また、「gui.cpp」ではNTPサーバの接続先も設定されています。標準は「pool.ntp.org」ですが、日本国内の「ntp.jst.mfeed.ad.jp」(INTERNET MULTIFEED運営)や「ntp.nict.jp」(NICT運営)に書き換えてください。
(6) T-Watch-2020をパソコンにつなげます
microUSBケーブルを使ってT-Watch-2020をつなげます。
USBシリアルのドライバがインストールされていない場合は https://t-watch-document-en.readthedocs.io/en/latest/download/index.html などから入手してインストールします。
(7) T-Watch-2020が接続されたCOMポートを指定します。
Arduino IDEの[ツール]-[シリアルポート]にてCOMポートを指定します。
Arduino IDEの[ツール]-[Upload Speed]は「1152000」と指定しています。この速度はT-Watchのサンプルコードのシリアル入出力で見かける速度指定なので使っています。
それ以外の項目は特に変えていません。
(8) コンパイルと書き込み
Arduino IDEの[スケッチ]-[マイコンボードに書き込み]を選択して、コンパイルと書き込みを実行します。
(9) 完成
WiFiをスキャンしてSSID一覧を作り、そこから接続先を選択し、キーを入力することで、ネットワークに接続し、NTPサーバから時刻同期を行う、ということが可能となりました。
Simple Watchの操作は「画面タッチ」です。横の丸ボタンは画面ON/OFFのみのようです。
また、WiFi以外に「Settings」「SDcard」「Camera」などのメニューがありますが、現状未実装です。押しても何も発生しません。

….うーん
製品紹介ページに載っている下記画像を実現できるソースコードってあるのかな?