Sigma fp L テザー撮影アプリを動かすための準備。初回 1 回のみ。
最近の macOS は Python 3.11 が同梱されていることが多いですが、Homebrew で入れるのが確実です。
brew install python@3.11
python3.11 --version # 3.11.x が出ればOK
brew install で問題が出る場合は、公式インストーラ https://www.python.org/downloads/ から .pkg をダウンロード。
cd /path/to/fp-l-tether
# 仮想環境を作成
python3.11 -m venv venv
# アクティベート
source venv/bin/activate
# パッケージ管理ツールを最新化
pip install --upgrade pip setuptools wheel
# 本体と依存をインストール(pyproject.toml を読みます)
pip install -e .
成功すると以下のような出力が出ます:
Successfully installed fp-l-tether-0.0.1 pyobjc-core-... pyobjc-framework-ImageCaptureCore-... typer-... ...
python -c "import ImageCaptureCore; print('OK:', ImageCaptureCore.__bundle__)"
OK: <NSBundle ...ImageCaptureCore.framework> のような出力が出れば OK。
ImageCaptureCore を使ってカメラに通信するには、ターミナル(または Claude Code)にカメラへのアクセス権を与える必要があります。
「フルディスクアクセス」や「ファイルとフォルダ」の許可は不要です。
重要: USB モードは USB 接続中には変更できないため、必ず接続前に設定すること。
接続後、Mac の「イメージキャプチャ.app」を起動するとカメラが見えます。ただし、これは閉じてください(同時に2アプリがPTPセッションを掴めないため)。
長時間のテザー撮影で安定動作させるため、本体メニューで以下を設定してください。
MENU → システム → Auto Power Off → OFF
fp L はテザー撮影中であっても、約5分以上 USB バスが idle になると内部
省電力モードに入る挙動があります。この状態では Sigma 独自オペコード
(GetCamCaptStatus 等)が 0-byte data phase を返すようになり、
本アプリの daemon は一時的に停止します。
本アプリは以下の二段構えで対応していますが、根本予防として本体側の Auto Power Off を OFF にしておくことを強く推奨:
sigma_get_camera_info ping (keep-alive heartbeat) で
カメラを起こし続ける(config.toml [camera] keep_alive_enabled = true)sigma_get_camera_info +
sigma_set_datagroup_3_pc_capture で再起動を試みる
(panel の status は黄色 ◍ recovering で表示)これは fp L 本体の仕様レベルで必要な対策です(テザー用途では keep-alive を出し続けるか、本体側の Auto Power Off を OFF にしておくのが安全)。
他のテザー / カメラ取り込みアプリが Sigma fp L の PTP セッションを掴むと 本アプリは接続できません。同時に動かさないでください:
Photos.app が勝手に起動する場合の対策:
source venv/bin/activate # まだなら
# Step A: 列挙のみ
python scripts/phase0_smoke_test.py
# Step B: PTP セッション
python scripts/phase0_session_test.py
# Step C: フル撮影フロー (5枚)
python scripts/phase0_snap_test.py
各ステップの結果は docs/PHASE0_LOG.md に追記してください。
Phase 0 のデバッグ中、hex_dump() の出力を CLAUDE.md / GitHub Issue に貼ることが多いので、ターミナルの選択をパイプで送れるエイリアスを作っておくと便利:
echo 'alias clip="pbcopy"' >> ~/.zshrc
# 使い方: cat /tmp/dump.txt | clip
| 症状 | 対処 |
|---|---|
ModuleNotFoundError: No module named 'ImageCaptureCore' |
pip install pyobjc-framework-ImageCaptureCore を再実行 |
MacOSOnlyError |
macOS で実行しているか確認 |
| カメラが列挙されない | USB モードと電源、ケーブル、他アプリ終了をチェック |
| PTP セッションが開けない | 他のテザー / イメージキャプチャ.app を完全終了 |
| シャッターが切れない(SnapCommand失敗) | カメラの「PC接続時の動作」設定を確認、FW v3.0 以降に更新 |
詳しくは docs/TROUBLESHOOTING.md を参照。