Stream Dock Mbox N3を買った

aliexpressを見てたらStream Deckみたいな感じのものがあった

調べるとMirabox Stream Dock 293というらしい

調べてみると開発者向けサイトがあってMirabox Space SDK を公開していて、ドキュメントを見るといろいろデバイスの種類を出していた.

Stream Dock MBox 293N3

Stream Dock MBox 293N4

https://github.com/MiraboxSpace/MiraboxSpace でソフトウェアも公開してるし、Stream Dock MBox 293N4 がいいかなぁ、と思ってaliexpressを探してみたものの、どうやらまだ販売されていなかった模様。

AmazonでMbox N3 は 11800円で販売している。

そこんところalexpressだと5423円で売っていたので、aliexpressで購入

というわけで、発注から10日でStream Dock Mbox N3が届いた。

とりあえずはWindowsパソコンにつなげて初期状態を確認してみる。

MBox N3本体側の初期表示はこのようになっていた。

この状態でボタンを押したりダイアルを回したりしても反応をしていない模様。

Windows 11環境での認識状況を確認してみると以下のように認識している。

HID\VID_6603&PID_1003&MI_00\7&3E4A38F&0&0000

HID\VID_6603&PID_1003&MI_01\7&27BBE151&0&0000

この状態だと何もできないようなので、機器裏面に「https://key123.vip/win」と「https://key123.vip/mac」が書かれているソフトウェアをインストールしてみる。

それぞれURLにアクセスするとファイルが直接ダウンロードされる形になっていて、winの方は Stream-Dock-Installer_Windows.exe がダウンロードされる。ダウンロード完了後はクリックしてインストールする

Stream Dockアプリを起動すると初回は下記の通信許可を求めるメッセージが出た

アプリは日本語表示

アプリ左側のところがMbox N3の操作内容設定(シーン)を変更するために切り替えるところ

「情報看板」は現在時刻や天気予報などを表示している

「音楽コントロール台」

「Word」

「Photoshop」

というのが設定されている。

ソフトウェアをインストールした状態で、Mbox N3をつなぐとアプリ側の初期設定が反映された。

アプリを終了させようとすると下記の警告が表示される。実際に終了すると何も反応しなくなる。

さて、アプリには複数のシーンが設定されている。デフォルト設定では、丸ボタンでシーンを切り替えるようになっている。

設定されている機能を変更したい場合はアプリで該当ボタンをクリックすると変更できる

Newyorkの天気を表示しているのをTokyoに変えてみた

左側の「+」をクリックして、新規でシーンを作っても良い。

例えば、配信開始時間までのカウントダウンを設定したいのなら[キーパッド]-[便利なメモ]-[ToDoを記録する]を配置して、ボタンに表示したい文字を「ToDoのタイトル」に書いて、「リマインダーを設定する」で開始時刻を設定し「ToDoを送信する」のボタンを押すと設定される

この設定を行った場合、Mbox N3側の表示は↓のようになっている。

ちなみに、Todoを設定したボタンを押すとどうなるのかというと下記のウィンドウが開きます

2024/11/16時点のアプリで簡単に設定できる項目は下記のようになっている。

ダイアル(ノブ)のほうには以下の設定がある。



Linux

$ lsusb -s 002:005 -v

Bus 002 Device 005: ID 6603:1003 HOTSPOTEKUSB HOTSPOTEKUSB HID DEMO
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x6603 HOTSPOTEKUSB
  idProduct          0x1003 HOTSPOTEKUSB HID DEMO
  bcdDevice            0.02
  iManufacturer           1 HOTSPOTEKUSB
  iProduct                2 HOTSPOTEKUSB HID DEMO
  iSerial                 3 0300D0784B28
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0042
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               2.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      54
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               2.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      63
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
$

Prolific社のUSBシリアルチップPL2303シリーズのWindows10/Windows11非対応問題

USBシリアルアダプタに以前はよく使われていたProlific社のPL2303シリーズ。

ある時期から偽物チップが登場して、上手く動く/動かない、という話になったことにキレたProlific社が古いチップをまとめてEOS(End of Support)したので、EOS以後にリリースしたWindows10以降で使えなくなった、なんてことがあった。

この互換性問題もあってか信頼性を求めるとFTDI社FT232シリーズ、安さを追求するとWCH社のCH340シリーズなど他社のUSBシリアルが採用されがちになってる。

で・・・このEOSに関するProlific社の公式表明としては、2012年2月に、PL-2303HX, PL-2303Xシリーズを廃盤として、PL-2303TAを後継とするアナウンスを出している。これの影響でPL-2303HXA,PL-2303XAおよびそれより古いPL2303シリーズがWindows8以降で使えなくなった。

このため該当するチップを使っているUSBシリアルをWindows10にさすと、以下のような表示となって使えない。(PL2303HXA PHASED OUT SINCE 2012, PLEASE CONTACT YOUR SUPPLIER. )

で・・・Press Releaseを見ると、2019年12月にその後継とされたPL-2303TA含めて、PL2303HXD, PL2303RA,PL2303EA, PL2303SAがEOSとなっていた。

この時点では特に問題なかったのだが、どうやらWindows11ではこのPL-2303TA採用チップなどが「PL2303TA DO NOT SUPPORT WINDOWS 11 OR LATER, PLEASE CONTACT YOUR SUPPLIER.」として使えなくなっているらしい。

Windows 10用のドライバを持ってきて強制的に適用すれば使用できるようにはなるらしいですが、Windows Update経由のドライバ更新があったりすると使えなくなったりしそうなので、あまりお薦めできなそうです。


2023/01/28追記

ツクモに行ったら ainex ADV119 v2 が500円で売ってた

メーカページを見てみると「ADV-119 ○ ドライバは従来よりウェブに公開しているもので対応します。」と書いてある。

ということはWindows 11の標準ドライバでは対応しないやつなんだな、と思い買ってみると、予想通り以下の表示

で、メーカページからリンクがはれている「PL2303 Windows Driver Download USB to UART RS232 Serial」から「Windows 10 RS3 or higher」と書かれてる方をダウンロードして「PL2303_DCHU_Win10_20H1_19H1_5_v3.8.36.2_20210315_ML_Driver」のドライバを適用すると、下記の表示となり、使用できるようになりました

2023/11/14追記

上記のProlificサイトにアクセスできない場合はMicrosoft Updateカタログで「VID_067B PID_2303 3.8.36.2」で検索して出てきた「Prolific – Ports – 3.8.36.2」のやつを使うといけるかもしれない。

スマホをゲーム機っぽくするGameSir X3 Type-C接続版が届いた

aliexpressでGameSir X3が$187.49 なんて値段で売ってるのを発見

あれ?いつのまに発売されてたの?と調べて見ると、Indiegogoでクラウドファンディングをやっていた。

GameSir X3 Type-C-The Ultimate Mobile Controller

GameSir X2と比べて背面に冷却用ファンが追加された、という違いのようだ。

GameSir X2はタイミング逃して買わず、原神をプレイしだしてからGameSir T6miniをやってみたけど、こいつだけGameSirのマッピングアプリ非対応で使えないとか縁がなかったけど

$69 ならちょうどいいか?と1口購入

ちなみに5/12になったらaliexpressの販売ページは $99.97に値下がっていました。

驚いたのは「June 2022」という予定だったものが、 5/20に発送連絡が来たということ。

まあ、5/24に発送手法変更ということでトラッキング番号が再発行になりましたが、5/25に中国を出て5/29に到着という快速具合でした。

で・・・到着

中身

で・・・手持ちのスマホを入れてみる

Androidの「設定」画面で「その他の設定」などにある「OTG接続」を有効化しないと認識できないのですが、Qualcomm/スナップドラゴン SoCのスマホでは認識しましたが、MediaTek SoCのスマホでは認識できませんでした。

動作確認はGameSirアプリを使って行います。GameSirアプリは https://github.com/gamesir123/app/blob/master/readme_en.md から入手します。apkをインストールすると下記の様にGoogle Playが文句を言ってきます。

2022/06/07追記: Google Playストア配布版 でも動く、という話を聞いて試したところ、原神、PS Remote Playで使って見たところ特に問題なく動作しています。

これは「キー入力と画面操作を乗っ取るなんて悪いやつに違いない」ということで警告を出しているというわけです。どうにもならないのでコレは無視します。(Android の今後のバージョンでこういう機能が完全に使えなくされる可能性もあります)

GameSirアプリをインストールして、必要ないろいろな設定をしてから「Gamepas testing」にてボタンの反応を確認します。

動作に問題がなければゲームで遊んで見ます。


StreamLinkだとそのままコントローラとして認識してくれます。

「プレイ開始」を選んでパソコンと接続するとこんな感じ

この「BACKを長押ししてリモートセッションを制御します」というのは、左上の「G」ボタンを長押しする、という意味になります。

とりあえずライザのアトリエを起動してみたところ、まあ普通に動きました。


続いて今回のメイン目的の原神ですが、原神はコントローラに対応していないため、GameSirアプリを入れてマッピング機能を有効にしないと使えません。

また、OPPOスマホの場合、OSの省電力設定の影響で画面上にGameSirアプリのアイコン群は表示されるけど、キーマップ動作はしない、という面倒くさい状態になっていました。

これは原神などの重いソフトを動かすと、他のアプリを強制終了させる、という機能によるものでした。

これを解消するにはOS設定画面からアプリ情報の「GameSir」を選択し、「省エネ」から「バックグラウンド実行を許可する」を選択して、強制終了されないようにする必要がありました。

必要な設定を行ったあと、GameSirアプリを起動して、GameSirアプリ内のMy Gamesに「原神」「StreamLink」などGameSir X3を使って操作したいアプリを登録します。

この場合、「原神」をクリックすると原神用のマッピング設定で起動します。

「StreamLink」をクリックするとマッピング設定を無効化してからStreamLinkが起動します。マッピングをしないからといってStreamLinkを登録しないでいると、原神で遊んだあとStreamLinkを起動すると原神用のマッピング設定のまま動いてしまう形になるので注意が必要です。

マッピング設定を有効にする場合、GameSirアプリでの有効化の他に、GameSir X3側での操作が必要となります。

原神が起動したあと左上の「G」ボタンを、右下の「Home」ボタンを同時に押すと緑丸内の上側のLED1が緑色の点灯に変わり、マッピング機能が有効化されます。

押したあと、下記の様な「GameSirに Gamesir-X3 Type-Cへのアクセスを許可しますか?」というダイアログが表示された場合は「OK」を選択します。

これでアナログキーでの操作ができるようになります。

LED1が緑にならなかったりした場合は、もう1回 G+Homeボタンを押して様子を見てください。

さて、原神の操作をしてみたところ標準で設定されているマッピングはPS4ユーザにとってちょっと使いにくいので、変更しようと思ったのですが、どこで設定変更できるかがよく分かりませんでした。

あ・・・ローディング画面で何かが見える・・・

ということで、下記の赤丸の部分がGameSirアプリのマッピング設定を変更するためのアイコンでした。

ここをタップして設定変更を行います。

割り当てるキーがタップするあたりを設定していきます。

設定完了したら×ボタンタップのあと「Save to accessory」で保存します。

こんなあたりで大丈夫かと思います。


PS4 Proを遊ぶのにSONY純正PS Remote Playというのがありますが、これはコントローラ非対応なので、GameSirアプリでマッピングして遊べます。

スクリーンショットはPS Remote Playアプリ側の制限で撮れませんでした・・・


で・・・GameSir X3ですが、でかいファンがついているのですが、これ、ファン専用Type-Cコネクタにケーブルを繋いで電源供給しない限りファンがまわらないので、かなり面倒くさいんですよね・・・

ファン専用バッテリーとか内蔵してくれればよかったかも?という感じがしなくもないです。


2022/10/12追記

マッピング設定をした場合、画面上にうっすら割当ボタンの表示がされています。

この表示度合いは設定で変えられます。

GameSirアプリの設定画面を開いて「Advanced」にある「General settings」を選択。

そこにある「Button transparency」の値を左側(-)にずらしていくと、どんどん薄くなっていき、一番左だと消えます。

ADAPTEX R90を使って他社用コントローラでPS4を動かす

PS4 Proを使って原神をやっているのだが、1年もやっているとDualshockの動作が怪しくなってきた。

そこで新しいコントローラを探してみたのだが、PS4用とうたって販売しているやつが怪しいものばかりなのに嫌気がさした。

1年前にPS5風のPS4コントローラなんてものを買ってみたりもしたのだが、1ヶ月ぐらいでボタンがおかしくなり使用不可に。それを考えると似たような価格帯のPS4用は期待できないな、というのもあった。

さて、そんな探している中で、BIGBIG WON RAINBOWという商品を発見した。

説明書きを読むと別売りの変換アダプター ADAPEX R90とセットにするとPS4でも使えるとのこと

なお、このメーカでは他にBluetooth接続の変換アダプターADAPEX R100ADAPTEX R100 Proというのも扱っている。

有線のR90にするか、無線のR100/R100 Proにするか悩んだのだが、無線だと他の機種につなげるつなげなおす時にペアリングをやりなおさないとならないのが面倒だなぁ、というのがあったので、今回はR90とRAINBOWコントローラをセットで購入してみた。

大阪の倉庫から1日で東京までお届け完了

中身はこんな感じでした。

長いmicroUSBケーブルが添付されていました。

さて、PS4に繋いで見ます。

PS4上のボタン動作は、純正DualShockのボタン配置に相当する場所にあるものがその動作をする、という感じでした。

ちなみに初期設定ではこんな感じで光ります。

光り方は背面中央にある「Fn」ボタンを2連続で押すとモードが変更され、何回かモード変更すると消灯モードに切り替わります。

しばらく原神で遊んで見ましたが、ちょっと重く感じる、というのと、コントローラにオーディオ出力っぽい端子があるけど動かない、という点以外は特に問題無く使用できています。

背面にあるマクロ登録可能なボタンについてはまだ使って見ていません。

さて、変換アダプターADAPTEX R90の対応表を見ると任天堂スイッチのProコンがサポート対象に入っています。

そんなわけで、PS4 ProにR90経由でProコンを接続してみました。

こちらもトクに問題なく動作していました。

ホームボタンはPSボタンとして動作していました。

なお、任天堂純正ではないスイッチ用コントローラやWindows汎用コントローラをつなげてみましたが、それらは無反応でした。

R90 firmwareのバージョンアップとかできないのかなぁ?

RAINBOWコントローラ自体はBluetooth接続が可能です。

専用アプリBIGBIG WONからfirmwareアップデートや光り方の制御が行えます。

Bluetooth接続するとアプリ内に「Rainbow」コントローラが登録されます。

「新築配置」から設定可能です。

まずは光り方の制御設定

ボタン感度や振動の強さ制御

また、ゲーム内設定でアナログジョイスティックの操作反転ができない場合にコントローラ側で対応できるような設定もあります。

また、firmwareアップデートに関する項目もあります。

今回届いたRAINBOWコントローラのfirmwareは4257のようです。

過去のバージョン一覧を見てみると2021/11/15付け3843から2週間で4257ってめっちゃバージョンアップしすぎでは?

まあ、更新をしっかりやってくれそうなのは安心な点ですね。

さて、しばらく使って見ますかね

LILYGO TTGO T-Watch-2020が届いたので開発環境を作って動かしてみた

LILYGO TTGOからT-Watch-2020が登場。

販売ページ「LILYGO® TTGO T-Watch-2020 ESP32 Main Chip 1.54 Inch Touch Display Programmable Wearable Environmental Interaction
資料「https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library

発売直後に注文入れたのですが、発送される前に値下がりしてたり、中継地点のシンガポールにつくまで1ヶ月以上音沙汰がなかったりと、約2ヶ月かかるとは思いませんでした。

画像
画像

中身は本体とmicroUSBケーブルだけでした。

初代T-WatchはType-Cコネクタでしたが、microUSBだとは・・・

画像

横についているボタンを押しても電源が入らなかったので、microUSBで電源供給してみたところテストプログラムが実行されました。

画像

とりあえずは問題ないようです。

では、開発環境を作って書き換えましょう。

ドキュメントとして「https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library」と「T-Watch Document」が書かれていますが、後者の記述は微妙なので無視ですね。

初期設定

(1) Arduino IDEをインストール

Arduino IDEをダウンロードしてインストール。うちの環境はWindows10なので Microsoft Storeからインストールしました。

(2) TTGO_TWatch_Library ライブラリをインストール

https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library の「Clone or download」から「Download Zip」を選択してzipファイルをダウンロード。

Arduino IDEの[スケッチ]-[ライブラリをインクルード]-[ZIP形式のライブラリをインストール]にてダウンロードしたzipファイルを指定してインストール。

追加が成功すると画面下部に以下が表示されます。

また「ドキュメント\Arduino\libraries」に「TTGO_TWatch_Library-master」が作成されます。

(3) Arduino IDE Boards Managerにespressif社のURLを登録

Arduino IDEの[ファイル]-[環境設定]の「追加ボードマネージャのURL」に「https://dl.espressif.com/dl/package_esp32_index.json」を追加する。

(3) T-Watchを選択する

Arduino IDEの[ツール]-[ボード]-[ESP32 Arduino]-[TTGO T-Watch]を選択する。(下の方に登録されている)

(4) スケッチ例からSimple Watchを呼び出す

Arduino IDEの[ファイル]-[スケッチ例]-[TTGO T-Watch]-[lvgl]-[Simple Watch]を選択する。

(5-1) Simple WatchをT-Watch-2020用に書き換える(2020/06/28以降のTWatch_Libraryの場合)

2020/06/28以降のlvgl 7.0.0対応のTWatch_Libraryの場合、SimpleWatchを選択した場合にタブで表示される「config.h」にて使用するT-Watchのバージョンを選択するようになった。
T-Watch-2020を使用する場合は、下記の様に「//define LILYGO_WATCH_2020_V1」のコメントを削除する。

// => Hardware select
// #define LILYGO_WATCH_2019_WITH_TOUCH     // To use T-Watch2019 with touchscreen, please uncomment this line
// #define LILYGO_WATCH_2019_NO_TOUCH          // To use T-Watch2019 Not touchscreen , please uncomment this line
#define LILYGO_WATCH_2020_V1             //To use T-Watch2020, please uncomment this line


// => Function select
#define LILYGO_WATCH_LVGL                   //To use LVGL, you need to enable the macro LVGL

#include <LilyGoWatch.h>

(5-2) Simple WatchをT-Watch-2020用に書き換える(2020/06/28より前のTWatch_Libraryの場合)

2020/06/28より前のTWatch_Libraryの場合、「SimpleWatch」のファイル冒頭に「// #define LILYGO_TWATCH_2020_V1 // If you are using T-Watch-2020 version, please open this macro definition」とあるように、T-Watch-2020を使う場合はここのコメントを外す必要がある。

/*
Copyright (c) 2019 lewis he
This is just a demonstration. Most of the functions are not implemented.
The main implementation is low-power standby. 
The off-screen standby (not deep sleep) current is about 4mA.
Select standard motherboard and standard backplane for testing.
Created by Lewis he on October 10, 2019.
*/

#define LILYGO_TWATCH_2020_V1        // If you are using T-Watch-2020 version, please open this macro definition

#include <TTGO.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/timers.h"
<以下略>

こんな感じに書き換える。

(6) Simple Watchを日本時間対応にする

SimpleWatchの「gui.cpp」というタブ内で、時刻表示が「CST-8」と設定されているので、それを「JST-9」に書き換えます。

<略>
#include "FS.h"
#include "SD.h"

#define RTC_TIME_ZONE   "JST-9"


LV_FONT_DECLARE(Geometr);
<略>

こんな感じです。

また、「gui.cpp」ではNTPサーバの接続先も設定されています。標準は「pool.ntp.org」ですが、日本国内の「ntp.jst.mfeed.ad.jp」(INTERNET MULTIFEED運営)や「ntp.nict.jp」(NICT運営)に書き換えてください。

(7) T-Watch-2020をパソコンにつなげます

microUSBケーブルを使ってT-Watch-2020をつなげます。

USBシリアルCP2104用のドライバがインストールされていない場合は https://t-watch-document-en.readthedocs.io/en/latest/download/index.htmlCP2104の公式ページなどからSilicon Labs Virtual COM Port (VCP) Universal Driverを入手してインストールします。

(8) T-Watch-2020が接続されたCOMポートを指定します。

Arduino IDEの[ツール]-[シリアルポート]にてCOMポートを指定します。

Arduino IDEの[ツール]-[Upload Speed]は「1152000」と指定しています。この速度はT-Watchのサンプルコードのシリアル入出力で見かける速度指定なので使っています。

それ以外の項目は特に変えていません。

ちなみに「PortPop」というアプリをインストールしておくと、デバイスをつなぎWindows上でCOMポートとして認識した時点で、何番として認識されたのかを教えてくれるので便利です。

(9) コンパイルと書き込み

Arduino IDEの[スケッチ]-[マイコンボードに書き込み]を選択して、コンパイルと書き込みを実行します。

(10) 完成

WiFiをスキャンしてSSID一覧を作り、そこから接続先を選択し、キーを入力することで、ネットワークに接続し、NTPサーバから時刻同期を行う、ということが可能となりました。

画像
画像
画像

Simple Watchの操作は「画面タッチ」です。横の丸ボタンは画面ON/OFFのみのようです。

また、WiFi以外に「Settings」「SDcard」「Camera」などのメニューがありますが、現状未実装です。押しても何も発生しません。

次に作るものは、と製品紹介ページに載っている下記画像を実現できるソースコードを探してみたところ・・・

画像

LilyGoGui」でした。

画像

が・・・時間が変わらないのでおかしいな、とソースを見てみると、画面表示のサンプルなだけで、全てが固定表示だったという・・・

そっか・・・時計実装は自前でやらなきゃならないのか・・・