1 ポイント 投稿者 GN⁺ 2024-07-28 | 1件のコメント | WhatsAppで共有
  • 最近、Sensor WatchでCasio F-91W向けの新しい交換用ロジックボードを入手
  • F-91Wは世界で最も人気のあるクォーツ腕時計の一つで、約9,000万台が販売されている
  • Sensor Watchボードは、F-91Wの元のクォーツムーブメントをARM Cortex M0+ベースの新しい頭脳に置き換える
  • 元のLCDディスプレイ、ボタン、ピエゾブザーを使用し、ボードはプログラム可能
  • Sensor Watchプロジェクトは、改造しやすいウォッチフェイスと小さなユーティリティアプリを提供
  • Bluetooth無線はないが、軽量なユーティリティウォッチのケース、数か月持続するバッテリー寿命、自宅で再構成できる機能が強力
  • 約1時間でロジックボードを交換し、GoogleとGitHubアカウントの2FAシークレットを設定して、よく使うOTPコードを手首で確認できるようになった
  • 新しいスピードメーター用ウォッチフェイスを書いて、ボート漕ぎのストロークメーターやケイデンスメーターとして使用可能
  • コンピューターでテストしやすいwasmベースのエミュレーターも提供

TOTPウォッチフェイス

  • このウォッチフェイスは時間ベースのワンタイムパスワード(TOTP)を生成し、Google、GitHubなどの人気サイトに安全にログインできるようにする
  • アラームボタンを押して、設定したWebサイト/TOTPシークレットを順番に切り替える
  • 複数のWebサイト/TOTPシークレットをサポートし、TOTP QRコードからシークレットを抽出してソースコードに追加する必要がある

totp_face.c の編集

  • デモキーを削除し、リストの末尾にキーを追加するには:
    • static const uint8_t num_keys = 2; の数値を1つ増やす
    • static uint8_t keys[] = {} に16進バイトをカンマ区切りで追加する
    • static const uint8_t key_sizes[] = {} にシークレットのサイズを追加する
    • static const uint32_t timesteps[] = {}30 の項目を追加する
    • static const char labels[][2] = {} にシークレットのラベルを追加する

新しいウォッチフェイスの作成 – スピードメーター

  • このウォッチフェイスのすべてのコードは、メインプロジェクトに提出したpull requestで確認できる
  • 実装は主に1つのメインループ関数にある

主なイベント処理

  • ウォッチフェイスが有効になると "RA" を表示する
  • MODEボタンを押すと次のウォッチフェイスに移動する
  • LIGHTボタンを押すとライトを点灯する
  • ALARMボタンを押すと:
    1. 前回のボタン押下との間隔に基づいて計算された速度を更新する
    2. ティックカウンターをリセットする
    3. 高速ティック周期を要求する
  • 各ティックごとに現在の速度を表示し、分あたり500回超の場合は "Hi"、分あたり1回未満の場合は "Lo" を表示する
  • ティックカウンターを増やす

GN⁺のまとめ

  • Sensor WatchはCasio F-91Wの機能を拡張し、カスタマイズ可能なウォッチフェイスとユーティリティアプリを提供する
  • ARM Cortex M0+ベースの新しいロジックボードはプログラム可能で、さまざまな機能を追加できる
  • TOTPウォッチフェイスは、人気のWebサイトに安全にログインできる機能を提供する
  • 新しいスピードメーター用ウォッチフェイスは、ボート漕ぎのストロークメーターやケイデンスメーターとして便利に使える
  • このプロジェクトは、腕時計の機能を拡張しカスタマイズできる興味深い機会を提供する

1件のコメント

 
GN⁺ 2024-07-28
Hacker Newsのコメント
  • TOTPの秘密鍵をWebページに入力することに不快感を覚えるという意見がある

    • Linuxではbase32odツールを使って変換できる
    • プロジェクトは素晴らしいが、時計のデザインはいまひとつ
  • HNで期待されるタイプのコンテンツだ

  • F-91WとA158Wは同じような形で、価格を考えると非常に魅力的な時計だ

    • バンドが腕の毛を引っ張ることはほとんどない
    • A168WGGはガンメタルグレーのバンドと黒いフェイスを備えている
    • A168はA158より少し大きい
  • GA-B2100-1AJFはG-Shockの中でもスタイリッシュで、多くの機能を備えている

  • 時計のディスプレイ効率の良さに驚かされる

    • 最初の数字は0〜5だけ表示できればよい
    • 7だけが問題になる
  • Nixonで働いている人は、このプロジェクトをNixonのデジタルウォッチに適用したいと思っている

  • 腕時計を再コンパイルして再フラッシュしなければならない点が、TOTPの利用を制限する可能性がある

  • Casioの計算機付き腕時計にこうした機能があればよいという意見がある

  • WASMエミュレーターはCasioのイースターエッグをエミュレートしていないようだ

  • このプロジェクトを毎日使っており、TOTPコードを定義する新しいインターフェースを実装した

    • ユーザー補正機能を追加し、喘息測定器として使えるようにした
    • 時計の精度を年間約10秒に向上させる補正機能もある
    • コミュニティは成長中で、最近は無限ランナーゲームまで作られた
    • メンテナーはとても親切だ
    • オープンソースプロジェクトに時間を投資したいならおすすめだ
  • SecurIDトークンと一緒に動作してほしいという意見がある

  • TOTPを時計に表示することがセキュリティ上良いのか疑問を呈する声もある

    • 時計を紛失したり盗まれたりした場合を心配している