世界を動かす技術を、日本語で。

スマートウォッチの作り方:チップの選び方

2025年5月14日原文(ericmigi.com)

概要

  • Core Time 2用のチップに SiFli SF32LB52J を選定
  • オープンソースSDK と豊富なRAMが決め手
  • スマートウォッチ開発の 全体像と主要構成要素 を解説
  • ハードウェア選定で最重要なのは MCU/無線ディスプレイ
  • PebbleOSの オープンソース化 を通じた開発促進を目指す提案

スマートウォッチ開発:チップ選定とPebbleOSオープンソース化

概要とシリーズの目的

  • YouTubeポッドキャストで フル動画公開、PocketCasts・Spotify・Apple Podcastsでも配信すること
  • 本シリーズでは スマートウォッチ開発の手順 を段階的に解説すること
  • 初回は MCU/無線チップの選び方 に焦点を当てること
  • 今後は ディスプレイや他ハード/ソフトウェア についても順次解説予定であること
  • PebbleOSの オープンソース化 を通じて新しいスマートウォッチ開発を促進する提案

スマートウォッチの主要構成要素

  • スマートウォッチは 三大要素 で構成されること
    • ウォッチ本体(ハードウェア)
    • ファームウェア/OS(ソフトウェア)
    • モバイル連携アプリ(iOS/Android)
  • 消費者向け電子機器設計は 制約最大化 の演習であること
    • 目標体験(例:30日連続稼働、常時表示)を定め、仕様に落とし込むこと
    • 仕様に基づき ハード/ソフト構成要素 を選定・設計すること
  • ハードウェアは 5つの主要システム で分解できること
    • マイコン(MCU)+Bluetooth
    • ディスプレイ
    • センサー・出力(タクトスイッチ、タッチ、マイク、加速度計、スピーカー等)
    • 電子部品(基板、バッテリ、受動部品等)
    • 機構部品(ケース、ガラス、ボタン、ストラップ、充電ケーブル等)
  • センサーやバッテリ等は 選定が容易 だが、MCU/無線・ディスプレイは難易度が高いこと

MCU/無線チップ選定の経緯

  • 初代Pebble時代は STM32F2 を採用した背景説明
    • 当時は Bluetooth無線非内蔵 だったため、TI CC2564等を併用したこと
  • MCUは スマートウォッチの心臓部 であり、CPU・RAM・フラッシュ等を統合すること
  • MCU選定が 最も重要な制約最大化点 となる理由
    • ソフトウェア互換性、消費電力、コストに直結すること
    • 特に ソフトウェア互換性 が最大の難所であり、OSやドライバの移植工数が発生すること
    • 開発コストが製品価格に大きく影響するため、 開発しやすさ も重要な選定基準となること
  • 24時間Bluetooth接続 が必須であり、MCUの消費電力がバッテリー持続に直結すること

Core Time 2用チップ選定理由

  • Core 2 Duoでは Nordic nRF52840 を採用し、 nimBLE (オープンソースBLEスタック)を利用したこと
  • Core Time 2では さらなるRAM/性能 が必要となったため、他社チップも検討したこと
    • Nordic新製品はRAM不足や価格面で難あり、必要なディスプレイインターフェースも未対応
    • Apollo、BES、Dialog等も検討したが オープンソースSDK未提供 が障壁となったこと
  • その中で SiFli社 から偶然連絡があり、 オープンソースSDK や開発協力の申し出を受けたこと
  • SiFli SF32LB52J の主な特徴
    • 512KB以上のSRAM、16MB PSRAM搭載、専用MIPディスプレイインターフェース内蔵
    • BLE接続時50μAの極低消費電力、価格は2ドル未満
    • 1~2MB SRAMモデルもラインナップ、将来的な拡張性あり
    • SDKがGitHubで公開 されており、PebbleOS移植が容易であること
  • 結果として Core Time 2のチップはSF32LB52J(1.8V版) に決定したこと

今後の展望・参考リンク

まとめ

  • スマートウォッチ開発は 制約最大化 の連続であり、 MCU/無線チップ選定 が最重要ポイントであること
  • オープンソースSDK と開発協力体制が、今後のPebbleOSベース開発の普及に不可欠であること
  • PebbleOSのオープンソース化 による新たなデバイス創出への期待を提案

Hackerたちの意見

2チップ設計(1つはメインアプリ用、もう1つはBLE用)にしなかったのは興味深いね。高出力のMCUはRFがないことが多いから、時にはそれが理にかなってる。

チップが多ければ多いほど、プロジェクトは複雑になるよね。BOMは一つのことだけど、各チップにはサポート用のパッシブ部品やオシレーターが必要だし、チップ間の通信を調整する必要もあるし、ファームウェアの更新方法やデバッグ用に両方のチップにアクセスする方法を考えなきゃいけない…それはバッテリー寿命が短くなることとトレードオフになるかもしれない。

「ハイエンド」の現代MCUはかなり優れてるよ。NRFの製品もあるし、BluetoothとWiFiを一つのパッケージで提供するESP32みたいなのもある。個人的には最近ESP32に傾いてる。彼らはうまく進化を続けてるし、コミュニティのサポートも素晴らしい。今はマイクロPythonをベースにしたスマートウォッチプラットフォームを開発中だよ。

ただの時計だよ。時間を知るためにフルUNIXコンピュータなんて必要ないし、心拍数を記録したりAWSにピンを送ったりするのも同じこと。

SiFliチップのCortex-M33コアは、最速のPebbleウォッチが使ってたM4コアよりもずっと速いから、これより速いMCUは必要ないかな。ただ、バッテリー持ちは大歓迎で、今回はBluetoothが統合されたMCUを使ってるのが、バッテリー持ちが約1週間から約1ヶ月にアップグレードされる大きな要因みたい。

低消費電力チップ業界でオープンソースの方向に進む人がやっと現れて嬉しい!情報ありがとう!rePebbleが発表されたとき、すぐにサインアップしたんだけど、後になって実はスマートウォッチは要らなくて、振動通知がある普通の時計が欲しいことに気づいた。少数派だとは思うけど、興味がある人が少しだけいるニッチだよね。F105を2年間使ってきたから、これより大きい、重い、厚いものには戻れない。Bluetooth機能があれば、週に一度のバッテリー充電は受け入れられる。だから今は、小さな振動モーターを動かせて、iPhoneからの通知を全部受け取れる超小型のBluetoothチップを探してる。F105のストラップの間にそのチップとモーター、小さなリチウムバッテリーを貼り付けたいんだけど、テストした感じでは、そこに小さな重さを追加しても気にならないみたい。最初にMi Band 1を使ったときのことを今でも覚えてる。表示がない忘れられたフィットネスバンドで、通知を送るアプリに応じて特定の色になる3つのRGB LEDだけがあった。青いMessengerのチャットが来たらすぐに対応が必要だって分かったし、黄色のGoogle Keepのリマインダーは、パソコンに戻るまで無視できるって分かってた。

俺はまだOG Pebbleを使ってるし、戻ってくるのが楽しみだけど、アップグレードする予定はない。君と同じように、俺のニーズはシンプルで、振動アラームと通知が必要なんだけど、重要な要素が一つあって、明るい日中でも読めるディスプレイが必要なんだ。OG PebbleのeInkディスプレイはその条件を満たしてる。携帯電話を取り出さなくてもテキストが読めるのもいいよね。それに、eBayで約30ドルで手に入るし、新しいバッテリーは約15ドルだから、財布にも優しい。Rebble.ioコミュニティの活動も、俺の使い方には十分機能してるよ。

Withingsの時計はどう?ScanWatchを持ってるけど、バッテリー寿命はほぼ1ヶ月持つよ。

私の「時計じゃないフィットネストラッカーが欲しい」っていう願いもかなりニッチみたい。リングもあるけど、リングも好きじゃないんだ。基本的には腕に付けるならブレスレットが欲しいけど、理想的には足首に付けるブレスレットがいいな。心拍数を測るのに便利な場所になるかは分からないけど、歩数以外のデータも取れるかは疑問だね。

同じような感じだね。Apple WatchはUXがひどいし(2cmの画面に1cmの指先??)、やりすぎで私の好みじゃない。Pebbleは通知(テキストや電話)を受け取れるから、携帯から離れても大丈夫だし、反応するかどうか決めるのに十分な情報が見える。Pebbleは結構軽量で、このウォッチフェイスを使えばすぐに馴染むよ: https://store-beta.rebble.io/app/52f0939b1ac7948708001fc9

あなたの最後のリンクによると、現在のMiバンドはそのニッチをかなりうまく埋めてるね。画面もあるし、バッテリー寿命も decent だし、邪魔にならないくらい小さい。

同意するよ。ヴィンテージのセイコーの時計に使える「スマート」な時計バンドやバンドクラスプを探してるんだ。特定のことが起きたときに振動通知が欲しいだけなんだ。妻からの電話とかね。典型的なスマートウォッチの機能やディスプレイは必要ない。あまりにも気が散るから。

Hacker Newsで議論の続きを見る