Skip to content

mzyy94/AirScap

Repository files navigation

AirScap

レガシー Wi-Fi ScanSnap 向け AirScan ブリッジ

CI Release License

インストール •  クイックスタート •  Web UI •  設定 •  プロトコル仕様 •  🇺🇸 English


AirScap とは

ScanSnap iX500 の Wi-Fi スキャンを支えていた ScanSnap Connect Application は提供を終了していました。現在公開されているScanSnap Homeは iX500 をサポートしておらず、無線LANによるスキャンをする術を失ってしまいました。 AirScap は、 iX500 を含むレガシーな ScanSnap を AirScan プロトコルに対応させ、無線経由のスキャンを蘇らせるプロトコルブリッジです。

ScanSnap iX500 が Wi-Fi で使用する独自プロトコル VENS を Go でネイティブ実装し、標準的な eSCL (AirScan) ネットワークスキャナとして公開します。

プラットフォーム クライアント
macOS イメージキャプチャ、プレビュー
Linux SANE (sane-airscan)、scanservjs
Windows Windows Scan (WSD)

アーキテクチャ

flowchart TB
    A[macOS イメージキャプチャ] & B[Linux SANE] & C[Windows Scan]

    subgraph airscap["AirScap"]
        E[eSCL Server] --- F[mDNS _uscan] --- G["Web UI (:8080)"]
    end

    A & B & C -- "eSCL (HTTP)" --> airscap
    airscap -- "VENS (UDP/TCP)" <--> S[ScanSnap iX500]
Loading

特徴

  • ドライバ不要 — eSCL/AirScan 対応クライアントからそのまま利用可能
  • ゼロコンフィグ — ネットワーク上の ScanSnap を自動検出して接続
  • 多彩なスキャン — カラー / グレースケール / 白黒、両面、PDF / JPEG / TIFF 出力、JPEG 画質調整、白紙スキップ、裏写り軽減に対応
  • 物理ボタン対応 — スキャナ本体のボタンを押してスキャンジョブを実行。保存先はローカル / FTP / Paperless-ngx から選択
  • Web UI — ブラウザから設定変更やステータス確認が可能(英語 / 日本語)
  • シングルバイナリ — Pure Go、CGO 不要でクロスコンパイル可能。systemd サービスユニット同梱

動作確認済み環境

開発・テストは ScanSnap iX500macOS イメージキャプチャで行っています。同じ VENS プロトコルを使用する他の ScanSnap モデルでも動作する可能性がありますが、未検証です。他のクライアントソフトウェア(SANE、Windows Scan 等)との互換性も保証されていません。

Tip

Linux で USB 接続する場合: USB 接続であれば SANE の標準ドライバ sane-epjitsu が ScanSnap iX500 をサポートしています。AirScap は Wi-Fi 経由でのスキャンを実現するためのものなので、USB 接続の場合は SANE ドライバをお使いください。

インストール

リリースパッケージ(Debian/Ubuntu)

Releases ページから .deb パッケージをダウンロード:

# 最新リリースをダウンロード
curl -LO https://github.com/mzyy94/airscap/releases/latest/download/airscap_amd64.deb

# インストール
sudo dpkg -i airscap_amd64.deb

# 設定を編集
sudo vi /etc/airscap/env

# サービスを起動
sudo systemctl enable --now airscap

deb パッケージにはバイナリ、systemd サービスユニット、デフォルト設定ファイルが含まれます。

ソースからビルド

Go 1.25 以上が必要です。

git clone https://github.com/mzyy94/airscap.git
cd airscap
go mod vendor
CGO_ENABLED=0 go build -mod=vendor -overlay=build/overlay.json -o airscap ./cmd/airscap/

Note

CGO が有効な環境(libjpeg / libpng がインストール済み)では、vendor や overlay なしでもビルドできます:

go build -o airscap ./cmd/airscap/

systemd(手動セットアップ)

sudo cp airscap /usr/local/bin/
sudo cp dist/airscap.service /etc/systemd/system/
sudo mkdir -p /etc/airscap
sudo cp dist/env.example /etc/airscap/env
sudo vi /etc/airscap/env

sudo systemctl daemon-reload
sudo systemctl enable --now airscap

クイックスタート

# スキャナを自動検出、パスワードをシリアル番号から自動導出
./airscap

# パスワードを明示的に指定
AIRSCAP_PASSWORD=0700 ./airscap

# スキャナの IP を直接指定
AIRSCAP_PASSWORD=0700 AIRSCAP_SCANNER_IP=192.168.1.100 ./airscap

起動すると AirScap は以下を行います:

  1. ローカルネットワーク上の ScanSnap を検出(または指定 IP に接続)
  2. スキャナのパスワードでペアリング
  3. ポート 8080 で eSCL サーバーを起動
  4. mDNS 登録でクライアントから自動検出可能に
  5. http://localhost:8080/ui/ で Web UI を提供

Important

スキャナ本体の Wi-Fi 初期設定(アクセスポイントへの接続)は AirScap では行えません。 事前に ScanSnap のセットアップツールまたは WPS ボタンを使用して、スキャナをネットワークに接続しておいてください。

Web UI

http://<host>:8080/ui/ で管理画面にアクセスできます。

  • ステータス — 接続状態、ADF の用紙有無、エラー状態(紙詰まり・カバーオープン・重送検知)
  • デバイス情報 — スキャナ名、シリアル番号、IP、ファームウェアリビジョン
  • ボタンスキャン設定 — カラーモード、解像度、用紙サイズ、出力形式、JPEG 画質、両面、白紙スキップ、裏写り軽減
  • 保存先 — ローカルフォルダ / FTP / Paperless-ngx のボタンスキャン保存先設定
  • AirScan 設定 — 用紙サイズ自動検出、裏写り軽減、白黒濃度の AirScan クライアント向けオーバーライド
  • eSCL エンドポイント — eSCL クライアント手動設定用の URL
  • 多言語対応 — 英語 / 日本語切り替え

設定

スキャナーの探索や起動などに関する設定は環境変数で行います。

変数 デフォルト 説明 注釈
AIRSCAP_PASSWORD 自動導出 スキャナのペアリングパスワード *
AIRSCAP_PASSWORD_FILE パスワードファイルのパス *
AIRSCAP_SCANNER_IP 自動検出 スキャナの IP アドレス
AIRSCAP_LISTEN_PORT 8080 HTTP リッスンポート
AIRSCAP_DEVICE_NAME スキャナから取得 mDNS 表示名
AIRSCAP_LOG_LEVEL info ログレベル(debug / info / warn / error
AIRSCAP_DATA_DIR 永続化しない 設定永続化ディレクトリ **

* デフォルトパスワードから変更している場合は、設定したパスワードを指定する必要があります。いずれか片方で指定してください。 ** systemdで起動している場合は、未指定でも STATE_DIRECTORY に保存され永続化されます。

テンプレートは dist/env.example を参照。

動作確認

# mDNS 登録の確認(macOS)
dns-sd -B _uscan._tcp

# eSCL ケーパビリティの確認
curl -s http://localhost:8080/eSCL/ScannerCapabilities | head -20

# SANE でスキャン
scanimage -L
scanimage --device 'airscan:e0:ScanSnap iX500' --format=jpeg -o scan.jpg

プロトコル

AirScap は VENS プロトコルを実装しています。これは富士通/リコーの ScanSnap スキャナが Wi-Fi 通信で使用する独自バイナリプロトコルで、公式アプリケーションのパケットキャプチャを解析して実装しました。

プロトコルの詳細仕様:

ライセンス

MIT

サードパーティライセンス

本ソフトウェアは以下のオープンソースライブラリを使用しています:

ライブラリ ライセンス
go-mfp BSD 2-Clause
go-pdf/fpdf MIT
zeroconf MIT
jlaffaye/ftp ISC
golang.org/x/image BSD 3-Clause
Alpine.js MIT
Bulma MIT
Feather Icons MIT