1 ポイント 投稿者 GN⁺ 2025-05-16 | 1件のコメント | WhatsAppで共有
  • Core Time 2向けのチップとして SiFli の SF32LB52J を選定
  • スマートウォッチ設計における 最も重要な決定 の一つが、まさにチップ選び
  • ソフトウェア互換性、消費電力、単価などがチップ選定に大きく影響する
  • SiFli のチップは オープンソース SDK、低消費電力、十分なメモリを提供する
  • このシリーズでは今後、ディスプレイなど 他の主要部品の選び方 も扱う予定

概要

  • 本記事は、自分でスマートウォッチを作る方法を紹介する 連載記事の第1回
  • 目標は、2025年ごろに実用になるスマートウォッチを、少し努力すれば誰でも作れることを示すこと
  • PebbleOS のオープンソース化 が、より創造的なスマートウォッチ開発を後押しすると期待している
  • スマートウォッチは大きく ハードウェア、ソフトウェア(ファームウェア/OS)、モバイルアプリ の3つの主要要素で構成される

ハードウェア構成要素の分解

  • スマートウォッチのハードウェアは大きく5つのシステム要素に分けられる
    • マイクロコントローラチップ(通常は Bluetooth ラジオを含む)
    • ディスプレイ
    • センサー類と出力装置(ボタン、タッチ、マイク、加速度計、スピーカーなど)
    • その他の電子部品(チップ、受動部品、PCB、バッテリーなど)
    • 機械構造(時計ケース、ガラス、ボタン、ストラップ、充電ケーブルなど)
  • センサー、バッテリー、ストラップ、マイクなどは幅広い価格帯で選択肢が多く、現時点では簡単に選べる
  • 最も 難しい意思決定 は、マイクロコントローラ + Bluetooth ラジオ、そしてディスプレイである

チップ(マイクロコントローラ)選定の重要性

  • MCU はスマートウォッチの「心臓」として機能し、CPU、RAM、フラッシュストレージ、I/O、無線 などを1つのチップに統合する
  • 適切な MCU を選ぶことは、コスト、電力、ソフトウェア互換性など、複数の制約条件のバランスを取ることでもある
  • MCU ごとに SDK、ドライバ、ビルドシステム が異なるため、ソフトウェア開発の難易度が高くなる
  • PebbleOS は特定企業(STM)の MCU にのみ合わせて作られているため、他の MCU に移行する際はドライバとビルドシステムの変更が必要になる
  • 一部の MCU では、PebbleOS に必要な FreeRTOS のサポートが難しい
  • 大量生産ではないため、ソフトウェア開発費が製品単価に占める割合が大きくなる

既存使用チップと選定プロセス

  • 過去の Pebble ウォッチでは STM32F2 を使っており、初期には人脈や周囲の助言をもとにチップを選ぶことが多かった
  • 最近では Nordic nRF52840 チップを使って Core 2 Duo スマートウォッチのプロトタイプを製作した
    • オープンソース BLE スタック(nimBLE)へ移行して開発を進めた
  • より大きなメモリと性能が求められる Core Time 2 では、nRF52840 では限界がある
    • Nordic の最新低価格チップ(nRF54L15)は RAM が不足しており、高級チップ(nRF54H)は価格が高い
    • Core Time 2 のカラーディスプレイ駆動には 特殊なインターフェース も必要になる

SiFli チップの発見と選定

  • 複数の候補(Apollo、BES、Dialog など)を検討したが、オープンソース SDK の不在などで満足できなかった

  • BES など一部のチップは NDA、サンプルコード非公開 などの理由で、開発環境として不適切だった

  • 偶然 SiFli CEO からメールを受け取り、やり取りする中で、オープンソースエコシステムに積極的であることを確認した

  • SiFli チップ は、すでに数千万台のスマートウォッチ(ブランド: Redmi、Oppo、Noise など)に採用されている

    • 最小モデル(SF32LB52x)は 512K 以上の SRAM、16M PSRAM、専用 MIP ディスプレイコントローラを搭載
    • 低消費電力(BLE 接続時で約 50uA)、価格は2ドル未満
    • 1〜2MB の SRAM 追加オプションを提供
    • GitHub でオープンソース SDK を提供し、PebbleOS の移植支援も約束
  • 結果として、Core Time 2 のチップには SF32LB52J(1.8V 版) を選定した

結論と今後の方向性

  • Core Time 2 は SiFli SF32LB52J チップを使って開発予定
  • 次回の記事では ディスプレイ選定 のプロセスを扱う予定

参考リンク

1件のコメント

 
GN⁺ 2025-05-16
Hacker Newsの意見
  • PebbleOSだけがこの分野の唯一のプレイヤーではない点を強調し、Espruinoというマイクロコントローラ向けの小さなJavaScript実装も紹介している。bangle.jsやFallout Pip Boyなどで使われており、リアルタイムでデバイスをハックしやすい。EspruinoについてはGitHub Discussionsへのリンクも共有している。
    • bangle.jsは初めて知ったが、すでに知っている言語で自由にいじれる点が気に入った。第1世代版を買いたかったが、現在は販売していないのが残念だ。
    • あまり注目されていない競合の素晴らしい仕事にも触れてくれてありがたい。Pebbleも素晴らしいが、彼らも注目されるに値する。それにAmazonのFalloutドラマはかなり面白いので、機会があればおすすめしたい。
    • ちなみにPineTimeもある。
  • 「SDKがオープンソース」という言葉に注目した。BLE MCUにオープンソースコードのSDKが付いているという話に興味を持ったが、実際にはBLEコードはバイナリブロブ形式だった。オープンソースと説明するなら、全ソースコードを読めるべきだと思う。
    • BLE無線機器のファームウェアは、常にIPと規制上の理由からバイナリブロブ形式で提供される。
  • このスマートウォッチは、今日の基準ではそれほどスマートではない。今使っているスマートウォッチにあるNFC決済、デュアルバンドGPS、4G LTE接続のような便利機能がかなり恋しくなるだろう。Pebble(およびrePebble)はその代わりに数週間持つバッテリー寿命を提供するが、Galaxy Watchの2日に1回の充電という不便さは、こうした強力な機能をすべて手放すほど大きくはない。
    • 逆に、私はそうした機能すべてに興味がなく、長いバッテリー寿命のほうが重要だ。さまざまなデバイスがさまざまなユーザーを対象に存在するのは良いことだ。このスマートウォッチが自分に合わないからといって「スマートではない」というわけではなく、単にユーザー次第で合う合わないがあるだけだ。
    • Garminはすでにこの種の機能の大半と数週間のバッテリー寿命を提供している。まだ4Gだけはないが、来年ごろのデバイスには搭載されるという話も聞いた。
    • 私もGPSがないのは惜しいが、Pebbleが与えてくれた満足感を埋めてくれるデバイスはいまだに見つかっていない。Garminは別の部分で妥協が生じる(バッテリー、ウィジェット、カレンダー、ディスプレイの視認性など)。すべてはトレードオフだ。
    • 私にとってはそうした機能はどれも不要だ。通知を受け取れて簡単な心拍数測定ができ、少しカスタマイズ可能な時計であれば満足だ。週に1回以上充電しなければならないなら、身に着ける気にはならない。
    • バッテリー寿命だけ見てもかなり優れている。
  • このチップについてのより詳しい情報として、cnx-softwareの記事リンクが共有されている。
  • メインチップとBLE用チップを分けずに単一チップ設計を選んだ点が興味深い。高性能MCUは通常RFを持たないため、2チップ設計のほうが適していることも多い。
    • 最近の高性能MCUには、NRFやESP32のようにBluetoothとWi‑Fiの両方を一緒に使えるチップもある。今なら個人的にはESP32を好む。継続的な改善と良いコミュニティサポートが魅力だ。私自身もMicroPythonベースのスマートウォッチプラットフォームを開発中だ。
    • SiFliチップのCortex-M33コアは、従来のPebbleで使われていたM4コアよりはるかに速い。これ以上速いMCUまでは必要なく、むしろバッテリー寿命のほうが重要だ。今回はBluetooth内蔵MCUを使ったことで、寿命が約1週間から約1か月へと延びたのは大きなアップグレードだ。
    • ただの時計なら、わざわざUNIXコンピュータである必要はない。時刻表示、心拍測定、AWSとの通信などはシンプルなMCUで十分だ。
    • チップ数が増えるとプロジェクトは複雑になる。各チップごとにパッシブ部品やオシレータが必要になり、チップ間通信の調整、ファームウェア更新、デバッグ方法なども考えなければならないので、それならバッテリー寿命を少し犠牲にするほうがよい場合もある。
  • 低消費電力チップ業界でオープンソース志向の製品がついに出てきてうれしい。rePebbleの発表を見た瞬間にすぐ登録した。だが実際には、私はスマートウォッチではなく振動通知だけある「ダム」な時計が欲しかったのだと後で気づいた。こうした需要は少数派だが、とても関心の高い人たちがいるニッチな領域だ。ここ2年間Casio F105を着けてきたので、これより大きい、重い、厚いものはもう耐えられない。Bluetooth機能さえあれば週1回の充電も受け入れるつもりなので、最近はiPhoneのあらゆる通知を受け取れる極小のBluetoothチップと振動モーター、小型リチウム電池を時計のストラップの間に取り付けようと考えている。Mi Band 1を最初に使ったときのことを今でも覚えている。ディスプレイすらなく、RGB LEDが3つあるだけで、アプリごとに通知色が違っていた。どんなメッセージが来たのかすぐ簡単に分かった。
    • Citizen製のW770という製品に言及している。最近中古で200ドル未満で購入したが、クロノグラフ、BLE、アラーム、振動モーターを組み合わせたかなり良い時計だ。ディスプレイの代わりに針でほとんどの情報を表示するため、操作方法を覚えるには説明書を必ず読む必要がある。スーパーキャパシタベースのソーラー充電により、完全に暗い場所でも数か月はバッテリーの心配がない。スーパーキャパシタは15〜20年ほど使ったら交換可能な部品で、何も要求せずただ本来の役割を着実に果たす。CitizenにはBLE機能付きの他モデルもあるかもしれず、誰かが通知/Bluetoothプロトコルをリバースエンジニアリングしてオープンソースアプリを作ってくれれば、ハッカーにとって面白い可能性がある。
    • 今でもOG Pebbleを使っていて、復活は楽しみだがアップグレードするつもりはない。振動アラームと通知機能さえあれば十分だ。ただし明るい場所でも見やすく、老眼にも優しいディスプレイは必要で、OG PebbleのeInkディスプレイがその役割を十分果たしている。スマートフォンを取り出さなくてもメッセージを確認できる。中古なら30ドル、新しいバッテリーも15ドルで手に入るのでコストパフォーマンスが良い。Rebble.ioコミュニティも十分うまく機能している。
    • 私も「スマート」な時計ストラップやバックルをヴィンテージのSeikoの時計に付けられたらいいと思う。ごく特定の状況で振動通知だけ来れば十分で、あらゆる機能やディスプレイはむしろ邪魔だ。
    • Apple WatchのUXは不便だと思う(1cmの指で2cmの画面をタップするようなものだ)。あまりに多くのことをやろうとしすぎている点も好きではない。Pebbleなら電話やSMSの通知だけ受け取れれば十分で、スマホから離れていられる。Pebbleはとても軽く、特定のウォッチフェイスを入れると家に帰ってきたような気分になる。
    • 私もただ「ダム」な時計に振動通知機能だけ欲しい。大半の通知はほとんど時間に追われるものではなく、無駄に集中力を奪うだけだ。結局すべての通知を切って、数時間に1回だけ自分でスマホを確認するようになる。むしろ本当に必要なのは、アラームを振動で知らせる機能だ。「バスの時間が近い」や「休憩時間」程度の用途で十分で、不要なセンサーは要らない。
    • Withings ScanWatchも、こうした用途にはよく合う製品で、バッテリー寿命はほぼ1か月だ。
    • 時計ではなくフィットネストラッカーを探している私の希望も、かなり珍しい需要だ。リングは嫌いで、ブレスレット型、理想を言えば足首バンドであってほしい。ただし心拍測定や追加データの収集は難しそうだ。
    • Mi Bandのようなデバイスが、そのニッチをうまく埋めてくれる。小さく軽いので邪魔にならず、ディスプレイとまずまずのバッテリー寿命を提供してくれる。
  • 低価格の中国製Freqchip SoCのハックを始めた。Aliでこのチップを使ったスマートウォッチが3ユーロで手に入る。
    • そのチップが入った時計製品のリンクを求めている。何度か検索しても見つけられなかったとのことだ。
    • 一部のチップが3,000個MOQで2.6元($0.36)のArm Cortex-M3とBLE、SIG Mesh対応まで備えていて驚いた。SDKの使い勝手が気になる。
  • PebbleOSで動く、ある程度オープンソースなハードウェアを見られてうれしい。2025年には左寄せブログ形式がもう消えていてほしい。ワイドスクリーンが普及した今、わざわざ読みにくくするのは残念だ。
  • 「最も興味深く難しい制約条件はソフトウェア互換性だ」という点について、むしろこれはリストのいちばん最後に置かれるくらい、解決しやすい問題だと思う。
    • この製品に限って言えば、ソフトウェア互換性は2つの大きな理由で非常に重要だ。第一に、現在のチーム規模はかつてのPebble時代よりずっと小さいため、ソフトウェア作業を減らすことが最優先であること。第二に、すべてのアプリとウォッチフェイスがARMバイナリとして配布されているため、MCUアーキテクチャが異なれば後方互換性が失われることだ。ESP32もここに該当する。
    • すべてがプロプライエタリなら、多くの行き詰まりにぶつかる可能性がある。標準的なPCハードウェアとはかなり違う。
  • この記事をとても興味深く読んだ。nimBLEは優れたBluetoothスタックで、Core Devicesの今後の発展の可能性を開く点に期待している。