9月8日、Seeed Studioは3つの新しいガジェットを発表しました。0.96インチ、1.14インチ、1.47インチのIPSディスプレイで、それぞれがXIAO nRF52840 Plusをすでにはんだ付けされたキャリアボードです。画面、ボタン、6軸IMU、マイク、バッテリーコネクタを、指先に乗るサイズに収めています。
それらは今Velxioにあります。ボードを注文することなく、無料プランで、開いてRunを押すだけで、Seeed自身のデモファームウェアがガラスに描く様子を見ることができます。キャンバス上のボードは、Seeedが撮影したのと同じように表裏が描かれています。片面にはガラス、USRボタン、マイク。もう片面には、はんだ付けされたXIAO nRF52840 Plus、バッテリーソケット、電源スイッチ、カードスロットまたはGroveポート、そして配線可能なパッドがあります。

3つのボード
3つすべてが同じコンピュータ — XIAO nRF52840 Plus — と同じ周辺センサーを搭載しています。6軸IMU、PDMマイク、Bluetooth Low Energy、充電検知付きのJSTバッテリーコネクタです。異なるのはガラスと、その周りにSeeedが何を配置したかです。
XIAO 0.96インチIPSディスプレイ — ST7789パネル、80 x 160、2つのユーザーボタン付き。小型モデルです。ステータス表示、ウェアラブル、1行のテキストと数字が必要なあらゆる用途に。

XIAO 1.14インチIPSディスプレイ — ST7789パネル、135 x 240、3つのユーザーボタン、そして他の2つと違いGrove I2Cコネクタを搭載。このコネクタがあるからこそ、センサーを接続したいならこれを選ぶべきです。

XIAO 1.47インチIPSタッチディスプレイ — JD9853Aパネル、172 x 320、静電容量式タッチ層とmicroSDスロット付き。フラッグシップであり、内部で最も多くのことが行われているモデルです。
ブラウザが実際に描いているもの

これらの3枚の画像はモックアップではありません。それぞれがエミュレートされたディスプレイコントローラのフレームバッファであり、Seeed自身のコンパイル済みファームウェアによって埋められています。
この連鎖は詳しく説明する価値があります。それが要点だからです。あなたのスケッチは、Seeed自身のnRF52コアを備えた本物のarduino-cliによって、ボード自身のFQBN向けにコンパイルされます。得られたファームウェアは、新しいブラウザ内nRF52840エンジンによって1命令ずつ実行されます — Velxioで既にESP32やRP2040ボードを動かしているのと同じ種類のエンジンです。ファームウェアはSPIペリフェラルを起動しバイトを送り出し始めます。ST7789のモデルは、チップセレクト線とデータ/コマンド線を毎バイトごとにピンから読み取り、何をするよう命じられているかをデコードします。画面に表示されるのは、そのコントローラのメモリの内容です。
ライブラリレベルでの傍受は一切ありません。Seeedのグラフィックスライブラリを独自のSPI書き込みに置き換えても、パネルは依然として描画します。
グラフィックテストから始める
- velxio.dev/example/xiao-114-graphictestを開きます。アカウントは必要ありません。
- ツールバーの再生ボタンを押します。スケッチはVelxioのサーバー上でコンパイルされ — 新しいライブラリの初回ビルドは数分かかりますが、以降は素早く終わります — その後ボードが起動します。
- パネルが10種類の描画プリミティブを順に実行するのを見てください。カラーバー、線、矩形、円、三角形、テキスト、ピクセルグラデーション。下部のシリアルモニタは、ベンチでUSB経由の場合とまったく同じように、それぞれにかかった時間を出力します。
- それから何かを変えてみてください。色を入れ替えたり、
fillCircleを追加したりして、もう一度実行します。
傾け、タップし、カードにファイルを置く
パネルは難しい部分ですが、面白い部分ではありません。これらのボードをシミュレートする価値があるのは、ボード上の他のすべてであり、そのすべてがマウスで動かせる何かに配線されています。
IMU。 Seeedの_Electronic Quicksand_デモは、数百粒の砂を落とし、ボードを傾けた方向に砂が流れます。キャンバスツールバーのSensorsを押し、Tiltパッド上のドットをドラッグすると、砂が隅に流れ込みます。LSM6DS3TR-Cは、実際のアドレスとデータシートが指定する感度でI2Cに応答するので、スケッチが変換する数値は、その部品が返すであろう数値そのものです。同じパッドは今、同じ部品を搭載するベアのXIAO nRF52840 Sense、MG24 Sense、nRF54L15 SenseのIMUも動かします。
タッチガラス。 1.47インチボードでは、静電容量式コントローラが、Seeedのドライバが読み取るのと同じ14バイトのレポートに応答し、指が触れている間は割り込み線がローに引かれます。マウスでパネルに描くと、円はクリックした場所に現れます。
microSDスロット。 実機ではカードとパネルが1本のSPIバスを共有し、チップセレクトで区別されますが、ここでも同じように共有します。スケッチがマウントすると、プロジェクトのファイルがカード上にあり、ボードのSD Cardパネルから自分のファイルを入れることもできます。
バッテリー。 これは一番嬉しい驚きです。Seeedのバッテリーデモは静的電圧を信用しません — USB接続時には、充電器自身のノードがセルに見えることがあるからです — そのため、まずUSBのみのベースラインを学習し、持続的な電圧降下があって初めてバッテリーが存在すると判定します。同じSensorsパネルのバッテリースライダーを0.1ボルト下げて、スケッチのステートマシンがどう判断するか見てみてください。

ベンダーのコードを動かして見つかったこと
ギャラリーの15個のサンプルのうち14個はSeeed自身のファイルで、変更は2点だけです。先頭の移植メモが、スケッチの出所を示す短いヘッダーになり、コアが既に提供している#includeが1つ削除されます。それらを動かすことで、これらのボードに同梱されているグラフィックスライブラリSeeed_GFX2 1.0.0に2つの実際の問題が見つかりました。
大文字小文字を区別するファイルシステムではビルドできません。 ライブラリの製品カタログにはXIAO_ePaper_Boards.hとreTerminal_ePaper_Boards.hが含まれていますが、ファイルの綴りはEPaperです — さらに、これら2つのヘッダーはそれぞれ自身の設定ヘッダーを同じ間違った方法で指定するため、2つ目のペアは最初のペアを修正して初めて表面化します。3ファイル中の4つの#include行です。macOSとWindowsでは解決しますが、Linux — コンパイルファームが動かす環境 — では、このライブラリに触れるすべてのスケッチが「No such file or directory」で停止します。これは今日も上流のmainブランチに残っています。Velxioはライブラリを取得する際にこの4行を修復するので、サンプルはビルドできます。
1.14インチパネルの設定は色の順序が間違っています。 ライブラリはこのボードをRGBとして設定していますが、パネルはBGRで配線されています。Seeedは知っています — このボード向けの彼ら自身のデモには「the panel is physically wired for BGR color order」というコメント付きのスケッチローカルなオーバーライドが含まれています — しかしライブラリ自身の設定は追いついておらず、その結果はSeeed自身がwikiに載せたグラフィックテストの録画で確認できます。最初のカラーバーは赤で描かれているのに青で表示され、黄色で描かれたものはシアンで表示されます。
この2つ目は、Velxioがパネルをモデル化する方法を変えました。固定の「赤と青を入れ替える」フラグを持つディスプレイモデルではこれを再現できません。入れ替えはパネル単独の性質ではなく、パネルの配線とコントローラの色順序ビットが食い違ったときに生じるものだからです。そこでVelxioは両者を別々にモデル化し、打ち消し合わせます。Seeedのオーバーライドを使うスケッチは正しくレンダリングされ、ライブラリをそのまま信じるスケッチは、机の上で見せるのと同じ赤と青の入れ替えを示します。同じ修正はディスプレイの反転にも適用され、これによってこのボードの黒い背景が白く出ることがなくなりました。
モデル化されていないもの
ギャップについては正直に話します。何もせずに黙っているシミュレータは、そうだと明言するシミュレータよりも悪いからです。
- PDMマイクとI2S出力パッド。 キャンバス上の何もこれらに信号を送っていないため、Seeedのボイスバーやレコーダーのデモは、平坦な線を描くのではなく、ギャラリーに意図的に含めていません。
- Bluetooth。 nRF52840の無線はこのエンジンの対象外です。
- Raise to Wake(Seeedのもう一つのIMUデモ)は、IMUのウェイク割り込みとチップのSystem ONスリープを必要とします。どちらもまだモデル化されていません。
ギャラリー内のすべてのサンプル
XIAO 0.96インチ IPSディスプレイ
XIAO 1.14インチ IPSディスプレイ
XIAO 1.47インチ IPSタッチディスプレイ
ボードはSeeedのストアで販売されています — 0.96インチ、 1.14インチ、 そして1.47インチタッチ — デモスケッチは Seeed-Projects/Display-Gadgetsにあります。 まずはここで試してみてください。スケッチはどちらでも変更なしで動作します。
ボードの写真はSeeed Studioの提供です。