ファームウェア: 1.0.2c
設定ツール: 1.1.0.0
最終更新日: 2021/04/16
最終更新内容: ファームウェアを1.0.1cから1.0.2cにバージョンアップ。アナログ入力およびデジタル入力でジョイスティックを使用した時、同時押し後の離し判定の入力が遅れることがある不具合を修正
本プログラムは、株式会社ビット・トレード・ワンが提供するREVIVE USB ADVANCEのファームウェアおよびWindowsアプリケーション「REVIVE USB ADVANCE Configuration Tool」を、オープンソースライセンスに基づいて改変したプログラムです。
ここでは追加・変更した機能について記載します。基本的な使用方法、プログラムの仕様は改変元プログラムと変わりませんので、概要については公式リポジトリをご覧ください。
REVIVE USB ADVANCE Customのファームウェア(以下、カスタム版ファームウェア)は、REVIVE USB ADVANCEのファームウェアを公式マニュアルに沿って書き換えることで使用できるマイコン用プログラムです。
REVIVE USB ADVANCE Custom Configuration Tool(以下、カスタム版設定ツール)は、カスタム版ファームウェアで使用できるWindowsアプリケーションです。
公式ファームウェア/公式設定ツールに対し、以下の機能を実装しています。
公式ファームウェアが備えたチャタリング防止やノイズ除去機能を強化した機能です。
一度しかボタンを押していないのにダブルクリックになる、キーが複数回入力されるなどのケースを防ぐことができます。
また、遅延を抑えたい場合やそれでもチャタリングが起きる場合に、カスタム版設定ツールにはチャタリング防止機能のしきい値を変更できる機能を備えています。
公式ファームウェアでは使用できない、ロータリーエンコーダが使用できる機能です。
D1~D14のピンにロータリーエンコーダのA相/B相を接続して、カスタム版設定ツールで接続したピンに設定をすると、ロータリーエンコーダの回転による入力が行えるようになります。
最大7つまで接続可能です。
チャタリング防止機能の設定により、入力遅延が発生する秒数が変わります。
そこで、現在の設定では平均でどの程度遅延が発生するか、自動で計算する機能を備えています。
- アナログ入力、デジタル入力どちらも設定により1ms応答が可能
(公式ファームウェアのアナログ入力は最大6.4msの遅延が発生) - アナログ入力、デジタル入力をサンプリングするように変更し、入力精度を向上
- アナログ入力の平均化処理のアルゴリズムをカスタム版ファームウェアに合わせて調整し、入力精度を向上
- カスタム版ファームウェア(.hex)、カスタム版設定ツール(.exe)のダウンロード
以下のリンクをクリックしてzipファイルをダウンロードし、展開してください。
https://github.com/ushui/ADRADVA-REVIVE-ADVANCE-CUSTOM/raw/master/Revive_USB_Advance_Custom-latest.zip - ファームウェアの書き換え
Windows PCにREVIVE USB ADVANCEを接続し、以下の手順に沿ってファームウェアを書き換えてください(公式ドキュメントです)。
https://github.com/ushui/ADRADVA-REVIVE-ADVANCE-CUSTOM/tree/master/Writing-Tool- この時点ではまだカスタム版設定ツールを使用せず、公式設定ツールを使用してください。
- hexファイルはダウンロードした「ReviveAdvanceCustom.hex」を指定してください。
- カスタム版設定ツールの起動
ダウンロードした「Revive_USB_Advance_Custom_CT.exe」を起動してください。
右下に「FW Version: 1.0.2c」と表示されていればカスタム版ファームウェアが正しく適用されています。
指定した時間の一定間隔をおいて入力値の受信・送信を行います。
例えば4msに設定した場合は、REVIVE USB ADVANCEが4msごとに受信した入力値を反映し、USBで接続した機器に送信します。
ON/OFFが確定するまでの不安定な信号の揺れを安定化する効果があります。
推奨値などは「設定値について」をご参照ください。
「アナログ入力設定」の説明と同様です。デジタル入力とアナログ入力のサンプリング周期は別々に設定することとなります。
推奨値などは「設定値について」をご参照ください。
ON/OFFのどちらかを採る入力判定が、指定した回数分、同じだったときに入力値を反映します。
例えば2回に設定した場合は、REVIVE USB ADVANCEが2回連続でONとして判定したとき、入力値をUSBで接続した機器に送信します。
ON/OFFが確定している間の不安定な信号の揺れを無効化する効果があります。
推奨値などは「設定値について」をご参照ください。
「ロータリーエンコーダ設定」に設定したピンは、この設定値を使用します。
推奨値などは「設定値について」をご参照ください。
「D1/D2」から「D13/D14」までがペアになったチェックボックスのうち、チェックを入れたピンをロータリーエンコーダのA相/B相として扱います。
チェックを入れなければ通常のデジタル入力として扱います。
チャタリング防止設定で設定したサンプリング周期、一致検出回数から自動で遅延する秒数を計算します。
ゲーム用途などで操作デバイスの遅延秒数を知りたい場合は、この平均遅延秒数を遅延する秒数として扱ってください。
設定ツールで使用している計算式は以下です。
- アナログ入力の場合:
サンプリング周期 / 2
- デジタル入力(※1)の場合:
サンプリング周期 * 一致検出回数 - (サンプリング周期 / 2)
※1 ロータリーエンコーダは、一致検出回数が一致検出回数(ロータリーエンコーダ)になります。
※2 以下に示すツール上で算出できない遅延は計算に含めていません。
・ディスプレイの遅延
・デジタル入力の一致検出回数を基準とした処理における一致しなかった場合の遅延
※3 誤差はアナログ入力/デジタル入力どちらも±サンプリング周期 / 2
です。
サンプリング周期 デフォルト値 |
推奨値 |
限界値 |
一致検出回数 デフォルト値 |
推奨値 |
限界値 |
|
---|---|---|---|---|---|---|
アナログ入力 | 12ms | 1~50ms | 1ms、255ms | 設定不可 | 設定不可 | 設定不可 |
デジタル入力 | 4ms | 1~10ms | 1ms、255ms | 2回 | 1~3回 | 1回、255回 |
ロータリー エンコーダ入力 |
上記に依存 | 上記に依存 | 上記に依存 | 1回 | 1~2回 | 1回、255回 |
- FAQ.md
- 公式FAQにカスタム版のFAQを追加しました。
- 設定ツールのReadme.md
- 公式ドキュメントです。カスタム版とUIが異なりますが、基本的な使用方法は変わりません。
開発環境(ファームウェア): MPLAB X IDE v3.61、MPLAB XC32 Compiler for PIC32 v1.30
開発環境(設定ツール): Microsoft Visual C# 2010 Express
作成者: ushui(ゆーしゅい)
Twitter: @kaede_hrc