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

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

概要

  • 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 だし、邪魔にならないくらい小さい。

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

これちょっと範囲外かもしれないけど、シチズンがW770を作ってるんだ。最近、軽く使ったやつを200ドル以下で買ったよ。結構いいクロノグラフで、BLEにアラームとバイブレーションモーターもついてる(ちょっと放置されてるスクリプト可能な通知のエコシステムもあるけど)。時計としては、いろんなインターフェースの使い方を理解するためにマニュアルをちゃんと読む必要があるけど、情報を表示するのが針だけだから、まあ妥当かな。最初のセットアップでは針を同期させる必要があって、最初はちょっと戸惑ったけど(笑)。スーパーキャパシタで効率的にソーラー充電されて、暗いところに置いておけば数ヶ月持つし、着けてればバッテリーの心配は全くないよ(もし本当にバンパイアじゃなければね、人工光がダメな)。スーパーキャパシタは劣化したら交換できるし、他の時計を基にすると15〜20年くらいは信頼できるみたい。自分のはかなり気に入ってる、ちゃんとした時計だし、着けて忘れちゃってもいいくらい。年々、何も求めずに仕事をしてくれるからね。シチズンにはBLEの他の選択肢もあるかもしれないけど、わからないな。誰かが通知やBLE通信プロトコルを逆エンジニアリングしてオープンソースのコンパニオンアプリを作ってくれると面白いな。ハッカー向けの可能性が広がるし、すごくクールだと思う。

バイブレーション通知があるダムウォッチが欲しい。わかる!通知はあんまり時間に関係ないし。数年前、電話の通知で無駄に気が散ることに気づいて、全部の通知をオフにしたんだ。数時間ごとに一回見るだけで、メッセージに返事する感じ。普通のスマートウォッチは自分には全然意味がない。腕時計でメッセージ通知が来るのは逆に面倒だし。でも、アラームを設定する便利な方法があればいいな。アラームが鳴ったら腕でバイブするやつ!「今すぐバスに乗るために出発して!」とか「休憩する時間だよ!」ってリマインダーが欲しい!それだけでいい、余計なセンサーはいらない。

チップに関する詳細はこちら: https://www.cnx-software.com/2025/05/14/sifli-sf32lb52j-big-...

「SDKはオープンソース」って、オープンソースコードのSDKを持つBLE MCU?私の理解では、BLEコードはバイナリの塊として提供されてるみたい。https://github.com/OpenSiFli/SiFli-SDK/tree/6c82a9b15db49871... それ自体は問題じゃないけど、「オープンソース」と言われてるものは、ソースコードを読めるといいな。

BLEラジオデバイスのファームウェアは、IPや規制の理由から、常にバイナリーブロブとして提供されることになるよ。

一番面白くて難しい制約は実際にはソフトウェアの互換性だね。でも、これを乗り越えるのはたぶん一番簡単な制約だと思う。これに関してはリストの後半に置いておくべきだね。

この製品にとってソフトウェアの互換性が非常に重要な理由が2つある。1. 彼のチームはPebbleが持ってた頃に比べてかなり小さいから、必要なソフトウェア作業が少ない方がいい。2. 元々のPebble用に書かれたアプリやウォッチフェイスはすべてコンパイルされたARMバイナリとして配布されてたから、全く異なる命令セットのMCUを選ぶと、互換性が失われる。例えばESP32はそのカテゴリーに入るね(そもそも良い選択肢ではなかったけど)。

全然違うよ。すべてがプロプライエタリだと、行き詰まることが多いからね。これは、例えば標準的なPCハードウェアとは全く違う。

PebbleOSだけがこの分野のプレイヤーじゃないよ。他にも https://www.espruino.com/ があって、https://banglejs.com/ を動かしてる。マイクロコントローラー用の小さなJavaScript実装だから、リアルタイムでデバイスをハックするのがすごく簡単なんだ。それに、FalloutのPip-Boyや、ワンドカンパニーの他の製品も動かしてるかも: https://www.thewandcompany.com/fallout-pip-boy/ 詳しくは: https://github.com/orgs/espruino/discussions/7577

目立たない競合の良い仕事を称賛するのは素晴らしいね。ペブルは素晴らしいけど、彼らにも愛情を注ぐべきだよ。あと、みんな、機会があればアマゾンのフォールアウトショーも見てみて、結構いいよ。

バングルJSのことは聞いたことなかったけど、知ってる言語でいじれるアイデアが好きだな。初版を買いたいけど、四角いデザインが好きじゃないから、もう売ってないみたいだね。

それに、PineTimeもチェックしてみて。

まとめありがとう!PebbleOSが動いてるオープンソースハードウェアを見るのは面白いね。ただ、2025年には左寄せのブログはやめてほしいな。ワイドスクリーンがずっと前からあるのに、読みづらくて仕方ないよ :(

このスマートウォッチは、今の基準ではあんまりスマートじゃないよね。今使ってるスマートウォッチの便利な機能が恋しくなると思う。NFCでの支払い、デュアルバンドGPS追跡、4G LTE接続。Pebble(とrepebble)は、数週間のバッテリー持ちのためにそれらを犠牲にしてる。でも、ギャラクシーウォッチを2日に一回充電する手間は、これらの強力な機能を手放すには十分じゃないな。

自分にはそれが必要。あんまり機能はいらない。通知が来て、簡単な心拍数モニタリングができるカスタマイズ可能な時計が欲しい。週に一回以上充電しなきゃならないなら、着けないよ。

バッテリー寿命だけでも、そうは思えないよね。

GPSがないのは寂しいけど、実際に自分の生活の中でペブルの形を埋めるものはまだ見つけてないな。ガーミンは他の機能(バッテリー、ウィジェット、カレンダー、表示の見やすさなど)で妥協しちゃうし。結局、すべてはトレードオフだよね。

逆に、そういう機能には興味ないし、長いバッテリー寿命にはこだわってる。異なるユーザー向けのデバイスが存在するのは素晴らしいことだと思う。自分とは違うユーザーをターゲットにしているからって「スマートじゃない」わけじゃなくて、単に自分の使い方には合わないだけだよ。

それに加えて、ガーミンはすでにこれらの機能を含む多週間のバッテリーライフを持ってるってことも無視してるよね。4Gがまだないだけだけど、来年のデバイスにはそれが搭載されるって報告されてるみたい。

このまとめ大好き!nimBLEは素晴らしいBluetoothスタックだね。これからCore Devicesに面白い機会を開いてくれるはず。

安い中国製のFreqchip SOCをいじり始めたよ: https://github.com/zoobab/FR801xH このチップを使えば、アリで3ユーロのスマートウォッチが手に入るんだ。

わお、これらのチップの中には、3kのMOQで2.6元(約0.36ドル)でBLE(およびsig-mesh)サポートのArm Cortex m3があるんだ…これはすごい!!!SDKはどれくらい使えるの?

その時計のリンクを教えてくれる? 2回サクッと検索してみたけど、何も見つからなかったんだ。