PCGTool for Androidの使い方

■はじめに

このアプリはPC版のPCGToolをAndroid用に移植したものです。

対応機器はFTDI製のチップを使用したUSBシリアルケーブルと、BluetoothのSPPプロファイルに対応したモジュールです。

初回アプリ起動時に以下のような確認画面が表示されたら、必ず「許可」を選択してください(Bluetooth用)。
 

このアプリではZIPとLZH形式の圧縮ファイルに対応しているため、PCを使わずとも圧縮されたプログラムを直接解凍して、ポケコンに送信することが出来ます。これにより、PCを一切使わずAndroid端末のみでDLから転送まで完結させることが出来ます。

■対応機器について

このソフトは以下の機器に対応しています。

USBシリアルケーブルは、こちらで紹介しているものが使用できます。


なお、市販品にもFTDI製チップを使用したケーブルが存在します。

例えば以下はBUFFALO製のBSUSRC06(販売終了)ですが、FTDI製のチップのため問題なく使用できます。

※現行品のBSUSRC07もFTDI製なのでたぶん大丈夫

ただし、同じBUFFALOでも相当古いBHC-US01/GPはFTDI製では無かったため、こちらは対象外となります。

※Prolific製

手持ちのケーブルのチップが分からない場合は、Windowsにて調べることが出来ます。

ケーブルをPCに接続しドライバをインストールしたあとに、デバイスマネージャから該当するポートのプロパティを見ることで製造元を確認することが出来ます。
 



これらのケーブルは通常、タイプAのコネクタになっていると思います。


これをAndroid端末に接続するには、以下のようなOTG変換コネクタが必要となります。
 例) Type-C→Type-A変換(以前Amazonで購入したもの)
 



Bluetoothモジュールについては、こちらで紹介している通信モジュールにて検証しています。
 

なお、このモジュールは既に販売終了となっていますが、同モジュールを使用した評価キットが秋月にて販売されているため、こちらを使用した通信ボードを制作すれば動作可能かと思われます。

これ以外にもAndroidとペアリング可能な市販のSPP対応モジュールであれば、問題なく動作すると思われます。
※試しにWindowsPCにBluetoothの仮想COMを作り、AndroidとWindows間で相互通信が出来ることを確認済みです

■USBシリアルケーブル接続時の使用許可

PCGToolアプリを起動したあとにUSBシリアルケーブルを接続すると、デバイスの使用許可が求められます。


もし許可をしなかった場合でも、2秒に1回アプリ上から問い合わせを行っているため、次に許可をすれば使用可能となり、ポート一覧に表示されるようになります。

なお、許可した直後はすぐに表示されないことがあるため、この場合は少し待つ必要があります。


使用許可は、USBシリアルケーブルをAndroid端末に接続するごとに行う必要があります。

USBハブを通して複数のUSBシリアルケーブルを同時に接続した場合、接続したケーブルの数だけ使用許可の画面が表示されるため、1つずつ許可を行う必要があります。なお、許可をしたあとにケーブルを抜かない限りは、アプリを再起動しても確認画面は表示されません。

[注意]
もし他のFTDIチップ対応アプリがインストールされている場合、先にそのアプリを起動するかを選択する画面が表示されることがあります。


この例では「FTDI D2xx Demo」というデモアプリを起動しようとしていますが、ここでOKを押してしまうとそのアプリが起動してしまったり、さらに誤って「常に起動する」のチェックを入れてしまうと、USBケーブルを接続するごとに毎回このアプリが勝手に起動してしまうことになるため、ここでは必ずキャンセルを選択してください。

ダイアログの内容が似ているため、表示されるダイアログの内容をよく確認してください。
※現状PCGToolは自動起動出来るようにはなっていません

■Bluetoothモジュールのペアリング

ペアリングはAndroidの機能で行います。

ペアリングは1度行えば設定を削除しない限り有効です。ただし、ペアリング済みのモジュールを別の機器で再ペアリングしてしまった場合は、いったんAndroid上の登録を削除してから再ペアリングをする必要があります。

ペアリングは基本的にPCGToolの起動前に行っておきますが、アプリ起動後でも可能です。なお、Androidのバージョンによってアイコンの形やメニューの場所が異なるため、設定の仕方が分からない場合は、他のサイトなども参考にしてください。


以下はペアリングまでの基本的な流れを説明しています。

ペアリングを行うには、まずはAndroidのBluetoothをONにします。

画面の上からスワイプすると、Androidの設定画面や情報が表示されるので、その中のBluetoothのアイコンをタップして有効にしてください。
※Androidの端末によって見た目は異なりますが、Bluetoothのアイコンは基本的に同じため、似たものを探してONにしてください
 

 


Bluetoothモジュールをポケコンに接続して通電を行い、ペアリング可能状態にします。

なお、こちらで紹介しているモジュールは、ポケコンに接続するだけでペアリング可能状態になるので、この状態でAndroid端末からペアリング操作を行います。



Androidの全てのアプリを表示すると、その中に「設定」アプリがあるのでこれを起動します。


ちなみに、上部のスワイプ操作を2回くらい行うと、簡易設定から詳細設定に変わるので、その中にあるギアアイコンから開くことも出来ます。



設定メニューからBluetoothの設定を探してタップします。
※以下はXperia XZ Premium(Android9)の画面です


タップすると自動的にペアリング可能な機器がリストに表示されるので、ペアリングしたいモジュールの名前をタップします。


タップすると接続を開始するので、しばらく待ちます。


ペアの確認画面が表示されたら「ペア設定する」をタップします。

※このモジュールでは設定コードは使用しません

接続が完了すると接続されている機器として表示されます。


これでPCGToolのポートにこの名前のデバイスが選択できるようになります。

※後の数値はBluetoothのMACアドレスです

■設定画面

アプリを起動したら最初に通信設定を行います。


COMポート
USBシリアルケーブルの場合は、端末にケーブルを接続して使用許可を行わないとリストに表示されません。

また、Bluetoothの場合はペアリングを行っていたとしても、Bluetooth自体がONになっていないとリストに表示されません。

ポートが1つしか存在しない場合は自動的にそれが選択されますが、複数存在する場合はプルダウンから選択する必要があります。

※PC版とは違い、COM1といった表記ではありません


ボーレート
USBシリアルケーブルの場合のみ有効です。
ポケコン側の設定と合わせてください。
※Bluetoothではモジュール側に保存されている設定が使用されます

フロー制御
USBシリアルケーブルの場合のみ有効です。
ポケコン側の設定と合わせてください。
※Xon/Xoffには対応していません
※Bluetoothではモジュール側に保存されている設定が使用されます

終了待ち時間
Bluetoothの場合、送信完了時に即座に通信を切断してしまうと、最後のデータが切れてしまうという問題があるため、ここでは即座に終了しないよう切断までの時間を指定します。通常はデフォルトの500msで問題はありません。
※USBシリアルケーブルの場合でも適用されます

■受信(ポケコン→端末)

ポケコンからデータをAndroid端末にバックアップしたい場合は、ポケコン側の操作を行う前に、先にアプリの「受信」ボタンを押し、保存する場所とファイル名を決めておく必要があります。


なお、ファイルの選択はAndroid標準のファイルアプリにて行うため、Androidのバージョンによってデザインが異なったり、セキュリティにより保存出来ない場所があったります。
※ようはWindowsの名前を付けて保存ダイアログと似たようなものと思ってください

ここでは例として、Android9(Xperia XZ Premium)の画面で説明しますが、初見だと画面の見方がよく分からないと思うので、以下に最低限の説明を入れてみました。



ついでに、「カレントフォルダ」をタップしたときの表記も初見だと分かりにくいので、こちらもまとめてみました。

以下は「disk」内の「/Android/data/com.android.chrome/files」に入った状態となります。

※この例ではさらに下層にDownloadフォルダが存在します

この「files」をタップすると以下のように表示されます。


これは下に行くほど階層に入っているということですが、全て同列に見えたりして分かりにくいので、以下のように階層イメージになっていると考えてください。


階層の上に戻るには「◀」ボタンにて戻ることが出来ますが、注意点としてすでにルート上(この例ではdisk)の状態で、さらに戻ろうとするとファイルアプリが終了してしまい、ファイル選択がキャンセル扱いとなってしまいます。このため、現在ルートなのかサブフォルダなのかが分からない場合は、この「カレントフォルダ」部分をタップして、必要な階層を直接選ぶと良いかと思われます。


次に、保存先としてSDカードのルートに「ポケコン」というフォルダを作成してみます。
※Androidのバージョンによっては保存に使用出来ないフォルダが存在するようなので、警告が表示された場合は別なフォルダを選択してください

まずは左上のストレージ変更ボタンを押して、メニュー内からSDカードの「disk」をタップします。

※端末によってSDカードの表記名が異なります

ちなみに「SO-04J」が端末本体内蔵のストレージで、それ以外にもGoogleドライブなどを指定することが出来るようです。
※Googleドライブを使ったことが無いので動作不明


次に右上のサブメニューをタップし、「新しいフォルダ」をタップします。


なお、Andoirdのバージョンによっては直接フォルダ作成のアイコンをタップすれば良いようです。


新しいフォルダ名を入力し、「OK」をタップします。


フォルダが作成されると即座にその中に入った状態となるので、あとは保存したいファイル名を指定して、「保存」ボタンをタップします。


これでファイルアプリは終了し、PCGToolの画面に戻ります。


ファイル名が決まるとアプリ側は受信待ち状態となるので、ここでポケコンからデータを送信します。


ポケコンからの送信はTEXT→Sio→Saveを選ぶか、マシン語モニタ上からはWコマンドで行います。送信が開始されるとポケコン側は「--- SENDING ---」と表示されます。

※Sioから送信

受信中は画面に現在何バイト受信されたかが表示されます。

※最大サイズが分からないので、ゲージという概念はありません

完了すると受信(保存)したサイズが表示されます。



これで指定したフォルダにファイルが保存されます。

※Windows上に端末を繋げて確認


ファイルは全てのデータを受信した場合のみ保存されるため、途中でキャンセルするとファイルは残りません。

■送信(端末→ポケコン)

Android端末にあるファイルをポケコンに送信するには、先にポケコン側を受信状態にします。
ポケコン側を操作してTEXT→Sio→Loadを選ぶか、マシン語モニタでRコマンドを実行しておきます。


ポケコンが受信状態になったら、アプリの「送信」ボタンを押します。


受信操作と同じくAndroid標準のファイルアプリが起動するので、ここで送信したいファイルを選択します。

※ここでは参考として受信の説明で保存したファイルを指定しています

このときファイルの中身がテキスト形式であるかはチェックされないため、誤って大きな画像などを送信してしまわないよう、選択したファイルのサイズが300KB未満のファイルのみ送信出来るようになっています。


もし送信ファイルとしてZIPまたはLZHを選択した場合は、さらにその中から送信したいファイルを選択するため、自前のファイルセレクターが表示されます。

例として「LilyTrial_20220825.zip」を選んだ場合は、さらにセレクターから送信したいファイルを探します。


セレクターは以下のような画面になります。

※ZIP内のLilyTrial_20220825サブフォルダに入った状態


拡張子によりプレビューボタンが使用可能となり、プレビュー画面にて内容の確認が可能です。

プレビュー可能な拡張子は以下の通りです。

プレビュー対象のファイルはBOMが無ければSJISとして、BOMありの場合はUTF8とUNICODE形式に対応しています。このため、ちまたで公開されている圧縮ファイル内にある説明書などは、特に問題なく確認することが可能かと思われます。


プレビュー画面は「◀」ボタンでファイルセレクターに戻ることが出来ます。

送信可能なファイルはプレビュー可能な拡張子のみというわけではなく、全てのファイルが対象となります。ただし、こちらも300KB未満のファイルのみが送信対象となります。


ファイルを選択すると送信確認画面が表示されるので、ポケコンが受信状態になっているのを確認してからOKをタップします。


送信中は進行ゲージが表示されます。


転送が完了すると完了ダイアログが表示されます。


また、ポケコン側も自動的に待機モードに戻ります。


もし待機モードに戻らない場合は、通信が正しく行われなかった可能性があります。

この場合は通信設定が間違っているか、Bluetoothの場合は待ち時間が短すぎて、終了コードが正しく送られなかった可能性が考えられます。