OPNをOPNAに換装する話

とても興味深いネタが流れてきた。ネタ元は元ファミコンランド中標津店の中の方で、3年前の札幌のイベントでご一緒させていただいた方である。お久しぶりです!

PC-98×1のFM音源といえば、OPN搭載の26K音源、上位互換OPNA搭載の86音源が有名であるが、この基板で改造すれば26K音源を86音源相当にUpgradeできるらしい。98のソフトにはOPNA対応のものが多いので恩恵はかなりありそう。なにより基板がコンパクトで実装場所の不安が少ないのが良い。問題点は作者の方が書いておられるように元のOPNのIOデコード回路の構成によっては換装できない(または極めて困難な)機種が存在することのようである。また、YMF288は汎用ポートが利用できないが、元々ジョイスティックポートを持たない機種であればデメリットにはならないだろう。

自分もやってみようと手持ちのNOTE ORCHESTRA LITTLE-1を調べてみた。98noteの110pバス対応のFM音源の情報は下記リンクに纏められているが、ほとんどがOPN搭載機のようである。

https://j02.nobody.jp/jto98/n_note_sound/fmu.htm

なお、SNEの音源については下の記事からリンクしているUME-3さんのデータベース(EXCELファイル)が詳しい。

http://ohta.music.coocan.jp/packen/board/sne.htm

件のOPNA化基板で改造できるかどうかはBASICでコマンドを投げれば判別できるとのこと。

IOポートの#188hと#18ChがミラーになっていればOPNA化できるらしい。結果は3,3なのでビンゴ!と思いきや、後に罠が待ち構えているのであった。

ガワを開けてみたところY8950が載るパターンが空いていて、ちょっと笑ってしまった。何故かSNEの音源ボードにはY8950やYM3812(OPL2)が乗っている製品があるが、対応ソフトはほとんど出なかったらしい。98のFM音源界におけるベータマックス的存在だろうか。Y8950が実装されていたら剥がしてMSX-AUDIO製作に使えるのに残念、というか、これだけ隙間があったらYMF288でなくてYM2608が載るのでは?

当方、YM2608はMSX用のカートリッジの製作でノウハウがあり、設計データを流用して基板イメージはサクっと完成。YM2608ならADPCM用のDRAMが搭載できるし、ジョイスティックポートも温存できる。OPAMP電源はジャンパー設定で5V単電源と±12Vに対応。98の5V電源の品質が解らないので、とりあえず単電源で作ってみて、ノイズが多ければDC-DCを積めばいいだろう。

3週間で基板が届いたので実装。ガワ内部にはスピーカーがせり出していて、微妙に高さ制限がある。そこでICソケットに細ピンを直挿しし、この上に基板を載せて高さを抑える手法を採った。実装時に半田がソケットに流入しないようにポリイミドテープで保護している。

OPN用DACのYM3014は引っこ抜いてソケット化、2-6-7pをショートしてメインボード側で不使用となるOPAMPの入力をGNDに接続しておいた。OPNAサウンド出力はR14(L側),R10(R側)を撤去して配線。4MHzのオシレータは邪魔なので撤去。その他干渉する部品は倒したりして適当に処置。

OPNAのアドレスA1については、110pバスのAB021がバッファICを経由してGALの7pに入っているのを確認した。ここがA1取り出しポイントであるが、OPNAの/CSは無加工では駄目で、GALの7pを跳ね上げてGNDに接続する必要があった。

当初の調査で#188hと#18Chの読み取り値が3,3を返したのでミラーイメージと思っていたのだが、実は#18Chはミラーではなくfloatingしている模様。試しに#188h,#18Ah,#18Ch,#18Ehを連続して読むと値は3,0,0,0になり、#18Chの値は直前に読んだ18Ahに引きずられて変化した。このボードでは#18ChはY8950に割り当てられているが、データを返すはずのY8950が実装されていないためそのような挙動を示したものと思われる。

METAL FORCEではSPB(スピークボード)として認識し、ADPCMによる合成音声も発音された。ジョイスティックポートに猫の手リモコンを挿せばワイヤレスサタパでプレイ可能。ただ、内蔵スピーカーの音が劣悪なので、ヘッドフォンか外付けスピーカーは必須だろう。

FMPでもスピークボードとして認識した。

偉人による古の作品を鑑賞。ステレオでPCMも鳴っていて、改造前とは別世界である。自分は当時リアルタイムでは98のFM音源文化を経験していなかったが、2023年現在でもソフトやデータが配布されているのはありがたい限り。ドライバやプレーヤーはVectorで配布されている。

肝心の音質は思ったより低ノイズで、クリアに聞こえていると思う(個人の感想です)。OPAMPは5V単電源でも良さげなので±12VのDC-DCはオミットした。ちなみに上のつべ動画のサウンドは実機からの生録で、冒頭から終端まで無加工のもの。


余談であるが、SNEのFM音源は妙なステレオ出力仕様になっていて、OPN音源のLchがSSG、RchがFMに割り当てられていたりする。これをヘッドフォンで聴いたりすると、左右の耳に全く違う音が入ってきてマトモに聴いていられない。スイッチでアナログモードに変更することもできるが、せっかくなのでステレオ効果を温存しつつ脳がバグらない程度にLRをMIXする改造をしてみた。

 

ザックリ回路を解析するとこんな具合。LとRが完全にSSGとFMで分離しているが、これをSSG:FM比率をLch2:1、Rch1:2くらいに調整する。

上図の赤丸で囲ったところに1k抵抗、3k抵抗を追加してみた。GrounseedのOPで試聴するとこんな感じになる。

更に余談だが、Grounseedは非常に楽曲に力が入っていると思うが、OPN版はOPNA版と違う曲に差し替えられていたりする。OPNA版は劇中BGMも神がかっているので、できればスピークボード(または86音源+ちびおと)で、良い再生環境で聴いてみてほしい。

なお、このLR-mix改造はOPNA換装後は意味をなさないが、SNEの変態ステレオ仕様で困っている方の参考になれば幸いである。

LowCost版 似非ROM基板

おかげさまで家電のケンちゃんさんからリリースしている似非ROM基板はご好評いただいているようで、現在追加生産を行っているところだが、今回コスト削減を主目的とした新しい似非ROM基板を設計してみた。試作もできていない段階であるが、公開可能な範囲で情報を書いてみたい。

従来品はFlashROMと大容量EPROM両対応にしていたが、今回は割り切って4Mbit以下のFlashROMのみ、実装の難易度を考えてPLCC版を採用した。MX29F040のPLCC版を実装すれば従来品との互換性も保たれるが、MegaROMソフトのリリース目的で使うのであれば39SF040を使ったほうがコストを下げられる。2Mbや1Mbに容量削減できるなら39SF020や39SF010に変更することで更なるコストダウンも可能である。

MX29F040と39SF040はいずれも4MbitのFlashROMであるが、コマンドアドレス長が異なるため、書き換えソフトに互換性がなく、NGLOAD ver1.5xは39SF040に非対応(チェッカーのCKEROM.COMは両対応)。39SF040は専用ソフトでの書き換えが必要となるが、明確に従来の似非ROMと区別することで誤消去が防止できるメリットもある。このような理由から、39SF040版はMegaROMソフトのリリース用途に限定し、専用の書き換えソフトは基板データをライセンスしたサークルにのみ提供する(無償)。

FlashROMはセクタ単位での消去や書き込みができるが、39SF040はセクタサイズが4kBytesと小さいため(MX29F040は64kBytes)、FlashROM上にゲームのデータセーブエリアを設けるにも好都合だろう。書き換え寿命はあるが、データシートには10万サイクル可能と書かれているので気にする必要はなさそう。

基板上のJP1/JP2は8k/16kバンク切り替えと起動しないスイッチ用のものであるが、CPLDロジックのカスタマイズにより無効化することもでき、その際はR1、R2の実装を省略できる。

基板サイズは33×65.5mm。この大きさであれば10x10cmに3枚面付けできるため、基板単価は従来品の2/3に削減される。中華基板なら無電解金メッキで150枚見積もっても1万円でお釣りがくるだろう。

CPLDは従来品と同じXilinxのXC9536XL。3.3V品ゆえにレギュレータが必要になるが、5V版のXC9536がディスコンなので現状これがベストと思われる。現在入手可能な5V版のCPLDとしてATF1502ASLがあるが、マクロセルが少ないのと、単価が上がること、書き換え環境等のノウハウの蓄積がなく、採用するメリットが薄いと判断した。

XC9536XLのIOピンは5VトレラントなのでMSXのバスに直結しても問題なく動作する。ロジックはASCII MegaROMコントローラ互換を基本とするが、コピープロテクト目的でバンクレジスタの仕様を変更したい場合は要望に応じて柔軟に設定できる。また、パスワード式のWrite Protectを設定することも可能。

量産時はCPLDへの書き込み作業が発生する。DigikeyではCPLD購入時に書き込みサービスを受けられるらしいが、個人でもPCとFT2232Dモジュール(秋月電子で1500円くらい)があれば大して難しい作業ではない(と個人的には思っている)。

自作CPLDライター

参考:http://miyako.asablo.jp/blog/2018/03/18/8806391

自分は部品を主にDigikey(米国)、たまにMouser(同)で手配しているが、Digikeyは6000円以上で送料無料、1万円以下は免税なので毎月1万円ギリギリ下回るように発注している。MouserはDigikeyで足りない場合に併用がお勧め。USドルで支払うと税抜きで決済されるが、円払いだと1万円以下でも税込みで決済されてしまうので注意。コチラは50ドル以上で送料無料。

関税についての情報はコチラ。1回1万円以下でも同時期に分散発注したと判断されると課税される可能性があるので注意。

https://www.customs.go.jp/tetsuzuki/c-answer/imtsukan/1006_jr.htm

基板製造データのライセンス条項はコチラに書いているので、本気でMegaROMソフトのリリースを検討している個人やサークルの方は本記事のコメント欄にご連絡を。表のmail フォームはなぜかメールが届かなくなっているためご注意。


2021.2.5追記)実寸プリントで検証

先行して入手していた39SF0x0を基板イメージの実寸プリントに載せてみた。KiCADにはPLCC32pのフットプリントが2種類あり、それぞれ8:8と7:9で縦横比が違うため注意が必要。39SFは7:9のほう。手実装する場合は露出するパッドが小さすぎないかの確認を行い、場合によってはフットプリントを作り直す。現状で半田ごてを挿しこむ隙間はあるようなので問題ないだろう。

Overrich製ケースの場合、ボス穴は下側が適合する。基板が小さいのでスカスカで昔の16kBとかのROMもこんな感じだったが、MegaROMとしては最小かも。


2021.3.19 追記)試作しました

基板がようやく到着した。今回は春節の影響でやたら時間が掛かった気がする。いつものFuisionPCBで、送料が比較的安いJapanDirectを選択。ここは国内入りするまで発送ステータスが確認ができず若干不安になるが、佐川急便に引き渡されると佐川のサイトから追跡できる。3月3日発送ー3月17日到着なので2週間を要した。

基板は面付け+Vカット無料を利用して縦10センチに3枚レイアウト、表面処理は無電解金メッキとした。Vカットは手でパキっと分割可能。断面は適当にダイヤモンドヤスリで仕上げる。カードエッジの断端と接点の間に0.7mmのクリアランスを取っているので、30度傾けて紙やすりで擦れば「Gold finger beveling」の面取りも可能になっている。

LC版似非ROMと、ゲームソフトリリース用MegaROMの2種を実装してみた。違いはFlashROMで、MX29F040実装基板が従来の4Mbit版似非ROMとの互換品である。CPLDのピンアサイン等の変更をしたため、VHDLは書き直した。PLCC版のFlashROMも手半田で難なく実装できた。

ゲームソフトリリース用ROMには39SF040を実装し、テスト機の裸族XVに挿してみた。高さ33mmなのでやたら小さい。チェッカーCKEROM.COMがエラーなく通ったので、似非SDiskからMegaROMファイルのインストールを行ってみた。

39SFシリーズ用FlashROMライター(非公開)での書き込みもOK。既存のMegaROMゲームは問題なく起動できた。MA-Xさんのゲームソフト「CELIA for MSX2」の製品化に向けて一歩前進といったところ。

 

cocopar 13.3インチ LCDの改造

昨今のテレビはコンポーネントやS端子といった高画質アナログ系の入力端子が削除され、レトロ系デバイスを直に接続できるのがコンポジットビデオ信号くらいになってしまった。コンポジのボケボケ画面で我慢できるのは初代ファミコンくらいのもので、MSXでは文字の判読も困難である。

一部のPC用LCDでは正式に対応を謳っていなくても水平同期15kHzのアナログRGBを4:3表示できるものがあり、CenturyのLCD-8000Vや、cocoparの13.3インチIPS液晶が密かに15kHzに対応しているらしい。手に入る内に買っておこうとcocoparのものを2020年2月に楽天で入手した。残念ながら2020年6月現在はどこも品切れのようだ。

この製品、MENU長押しでファームウエアのバージョンを確認できる。ネットでは「Para V007」でないと縦横比が変更できないという情報があるが、入手した個体のファームはPara V007に該当。他のバージョンがあるかどうかは不明。

PC-6601SRに適当に繫いで表示テストしてみたところ、確かに15kHzの信号に対応しており、画面比4:3に設定可能のようだが、入力端子がいわゆるVGAコネクタ(3列Dsub15p)で、水平・垂直同期信号(HSYNC、VSYNC)にしか対応していないのがMSXユーザーとしては不満である。正攻法で行くなら外付けアダプタを作成し、ビデオシンクセパレータLM1881で同期分離することになるが、MSXのRGB端子にはLM1881をドライブできる電源出力がないので、別途ACアダプタが必要になってしまう。できればシンプルに直結したい…ということで、cocopar内部にLM1881を増設し、直接MSXの複合同期信号(CSYNC)を流し込めるように改造することにした。


この記事の情報を元に改造した結果、LCDモニタを壊してしまったり、身体や財産に不利益を及ぼしたとしても当方は責任を負えないので十分な知識とスキルを身に付けた上で自己責任にて行ってください。改造するとメーカー保証期間内であってもアフターサービスは受けられなくなります。記事の内容についてメーカーその他に問い合わせるのはご遠慮ください。


LM1881は、2pにコンポジットビデオ信号を入力し、1pにCSYNC、3pにVSYNCを出力するように設計されているが、経験的に2pにCSYNCを入力しても問題ない。1pから出力されるのはCSYNCであって、HSYNCではない点に注意。6pのコンデンサと抵抗は定数になっているので何も考えずにこのまま接続する。

手始めにブレッドボード上でLM1881のコンポジビデオ入力にMSXのCSYNCを入れ、1pと3pをcocoparのHSYNC、VSYNCに接続したところバッチリ映った。試しにVSYNCを外してみたところまったく問題なく同期した。実はこのモニタ、HSYNCにCSYNCを流し込めばVSYNCに信号を入れなくても映るっぽい。しかし、MSXのCSYNCを直にHSYNCに接続しても表示されない。問題は信号レベルで、通常CSYNCは0.3~1.0Vppであるのに対し、HSYNCはTTLレベル(4~5Vpp)である。CSYNCもTTLレベルが要求されるということのようだ。

MSX RGB出力端子のCSYNC出力(2V/DIV)

確認のためMSX(FS-A1FX)のCSYNCをオシロで測定したところ、1Vppになっていた。このままcocoparのHSYNCに接続すると振幅が足りないが、LM1881を通すことでTTLレベルに変換される(過去記事でも似たようなトラブルを経験をしている)。cocoparを改造するならば、HSYNCに入った信号を強制的にTTLレベルに変換してしまえばOKだろう。ここで、LM1881のデータシートを紐解くと、絶対定格として下記のように書かれている。

LM1881はVccが5Vの場合、入力信号は3Vppまでしか許容されないが、Vccを8V以上にすれば6Vppまで可。入力端子には0.3~5Vppの信号を接続することが想定されるので、3Vppしか許容できないのはマズイ。よって、LM1881は12Vでドライブすることにした。その時出力されるCSYNCのレベルをオシロで測定したところ、約10Vppになっていた。ちなみにVcc=5VだとTTLレベルの出力である。Vccが大きくなると出力信号の振幅も大きくなる点には注意が必要だろう。

LM1881 Vcc12VでのCSYNC出力(5V/DIV)

このレベルのままcocoparに突っ込むのは問題がありそうなので、LM1881で上げたレベルを再度落とすことになる。当初ツェナーダイオードで5Vに整形しようとしたがエッジが鈍って表示が横にズレたのでNG。シンプルに抵抗で分圧したところ良好な結果が得られた。諸々検証して書き上げた回路図がコチラ。

R93とR98が元からcocoparの制御基板に載っている抵抗。R93の手前で切り離し、スイッチでLM1881を経由できるようにした。CSYNC出力は手持ちの2.2kΩと4.7kΩを組み合わせて分圧したが、GND側並列の合成抵抗は1.5kなので1本に置き換えてしまっても構わない。これによりHSYNCの信号レベルは約4Vppになる。

制御ICにSYNC信号を流し込むポイントがコチラ。R93の100Ωチップ抵抗を取り外してパッドにジュンフロン線を接続した。R98は温存。パターンカットは不要。

外したR93は細かすぎて紛失したので(笑)裏面にリードタイプ100Ωをハックルーで貼り付けた。その他回路図通りに実装。なお、部品増設面の上にLCDパネルが載ることになるので、十分な隙間があるか確認しておいたほうが良い。極端に隙間が少ないとパネルにストレスが掛かった際に割れる危険性がある

MSXを直結できるケーブルも作成した。市販のVGAケーブルをぶった切ってDIN8pコネクタを取り付けただけである。DINの4p(CSYNC)はDsubコネクタの13p(HSYNC)に接続する。Dsubの14p(VSYNC)はNC。RGBとGNDはそのまま配線。

LM1881を経由した状態で実際に動作させてみたところ、CSYNC 1VppのMSXでもHSYNC 5VppのPC-6601SRでもPCのVGA信号でも問題なく同期した。VGA信号はダメかなと思っていたが、意外とLM1881は高解像度の信号にも追従する模様。信号スルー用のスイッチは無くても良かったのかも。

なお、今回はナショナルセミコンダクタ社のLM1881Nを使ったが、想定外の使い方をしているので互換チップではうまく行かないかも知れない。中華製互換ICのAT1881で試してみたが、発振してダメだった。同様の改造をする際は、実装前にブレッドボードなどで実験しておくことをお勧めする。


外部音声入力端子の増設

 

cocoparはスピーカー内蔵だが、音が出るのはHDMI接続時に限られる。ステレオ対応なのにスピーカーが縦に配列されていたり、薄いプラ筐体がスリットでスカスカなこともあって音質はよろしくないが、RGB接続時に使えないのは面白くない。ということで外部音声入力端子を増設する。

制御基板に搭載されているのはデジタルアンプIC「PAM8003」である(データシートはコチラ)。7pと10pが入力端子になっていて、cocoparでは制御ICからコンデンサ(C6,C7)と1kΩ(R12,R13)を介して接続されている。PAMの内部ではオペアンプに接続されているようなので、ここに0.47uFと1kΩを介して並列に外部入力を繫いだらミキシングされて音声が出せるかも、と思って試してみた。

データシートの図に追記するとこんな具合。PAM8003のINLとINRにカップリングコンデンサと入力抵抗を介して外部音声入力端子EXL,EXRを接続する。

1kΩのチップ抵抗をR12とR13の根元に付け足して、適当なチップコンを経由してワイヤーを接続した。画像だと大きく見えるが実際は結構細かい。GNDの黒ワイヤーは右下のコンデンサに接続。ワイヤーを引っ張ると部品がもげるのでハックルーで固定した。

片ChにMSXの音声出力を接続したところ、RGB表示時にスピーカーから音声が出るようになった。cocoparの操作ボタンで音量コントロールも可能。RGBケーブルを引っこ抜くと表示が消えると共に音声もミュートされたので、非表示時はアンプもシャットダウンモードに制御されているようだ。

HSYNCスルースイッチと音声入力端子はサイドのプレートに固定した。なお、HDMI接続時はこれまで通り発音されるが、同時に外部入力に信号を入れると音声がミキシングされて出てくる。HDMI側のスピーカー出力はヘッドフォン接続でミュートされるが、外部入力側はミュートされず、ヘッドフォンからも音声は出なかった。このあたりは割り切って使うしかないだろう。

ちなみにこのモニタ、一応VESAマウント対応らしいが筐体の成型が悪く、ネジ穴が樹脂で埋まっていた。一応中にネジは埋まっていたので適当に掘り起こして引っ掛け用の金具をネジ止めした。これで邪魔にならずに運用できそう。

ゲームトレジャー2に出展してみた

9月1日に札幌で開催された「ゲームトレジャー2」に行って来きた。第1回目は昨年12月に1回目が開催されていたそうで(知らなかった)、今回が2回目。北海道でこのジャンルのイベントが開催されるのは珍しく、猫の手リモコンなど自前の同人ハードの手応えを得る良い機会だったので出展を申し込んだ次第。

ウチの頒布品は猫の手リモコンシリーズのうち、1号(レトロPC受信機)、3号b(SFC改造PAD)、虎の手3号(SS改造PAD)、4号(FC受信機)と、電子工作マガジン掲載のデジタルアンプ基板、新作の猫の手モータードライバ基板。

前日にテーブルの大きさを想定して予行演習していたので、当日は無難に設営完了。画像では見えないが、MSXはカシオMX-10をモニターの裏側に設置している。MSXには猫の手1号を2本挿しにして沙羅曼蛇の1P+2Pのシンクロプレイを体験できるようにした。

猫の手リモコンは実機で応答性能を体験して頂くのが重要と考えていたので、少しでも興味のありそうな方にはお試しプレイをお勧めした。操作感覚は概ね好評で、ゲームでの遅延や通信途絶が起こらないことをご理解頂けたと思う。PADの電源に単4電池を使うことのメリット(交換が容易で長持ち)も重要なアピールポイントだった。

改造済みPADは家電のケンちゃんさんでは委託販売できない(商標権の問題を懸念)ため、今回のイベントで初めて完成品を頒布。ジャンク箱をイメージしたダンボール箱から好きなPADを選び、実際にボタンの反応などの動作チェックしてからお買い上げいただくスタイル。SFC型とSS型と同数用意したが、やはりというかサタパの方が人気。ゲームイベントだったので受信機の方はFC版の方が若干売れ行きが良かった。

ついでに頒布したデジタルアンプ基板も数名の方にお買い上げ頂いた。うっかり作りすぎた基板(のみ)は無料配布。一応アフターフォローとして、簡易説明書とPICマイコンのファームウエアを貼っておく。電源はアップル純正充電器をオススメ。

ちなみに、隣の隣のブースのM.K Workshopさんは以前にウチのサイトでドリキャスのスピンドルモーターを共同購入された方と判明。PC-8001シリーズのPCG互換ボードを作っていたり、QD(クィックディスク)システムを弄り倒していたりとハイレベルで、会場内の数少ない同人ハードウエア系の出展者として仲間意識が芽生えたり(笑。

反対側の隣の隣のブースはゲームショップ1983さんで、店長はMSXサークルSYNTAX代表のいまむら氏。奇しくも会場はかつてSYNTAX主催のMSXユーザーの集いが開催されていた場所と同じ(建物はリニューアルされているが)で感慨深いものが。店長さんとスタッフさんには猫の手リモコンをお買い上げいただいた(ありがとうございました)。

一般参加のお客さんにも昔ウチのサイトを見ていた方がおられたり、これまでの活動も無駄ではなかったと思った次第。お客さんには代わる代わる猫の手リモコンの体験プレイをして頂き、充実した4時間であった。もっとハードウエア系の出展が増えればいいなと思いつつ、機会があったらまた出展するかも。

古い扇風機を200円でスマート家電化してみた

最近急に暑くなって北海道でも熱帯夜が観測され、家電量販店では扇風機が品切れになっているらしい。我が家でも扇風機を引っ張り出して使っている。1999年、あの「恐怖の大王」が降りてくるはずだった夏に買ったものだ。この年は「北日本では平年よりも1.5℃も暑く、観測史上3番目に暑い夏」だったらしい(Wikipediaによる)。

F-C311T-H(改造後)

うだるような連日の猛暑に耐え切れず、そうご電器YES(2002年経営破綻)にチャリで買いに行ったのだが、扇風機が売れに売れて廉価モデルは品切れ。当時としては高級なこれを買うしかなかった。

松下家電がPanasonicで統一される前のNationalブランドである。20年目を迎えているがまだ普通に使える。とはいえ、古い扇風機は配線やモーターの劣化による発火事故の事例があるそうなので、非在宅時は使わないほうが良いだろう。

コンソールはマイコン制御の4ボタンで、タクトスイッチが仕込まれている。ガッチャンスイッチの安物よりは近代的であるが、リモコンがないので操作は面倒。新しいものに買い換えれば済む話ではあるが、まだ使そうだし、ネタとして面白いので赤外線リモコン対応に改造してみることにした。


Amazon Echo Show5 とeHome mini

赤外線リモコンは既に枯れた技術であるが、AmazonのEchoシリーズ(アレクサ)と赤外線送受信機(eHome)と連携することで、スマート家電化できるというメリットがある。寝ながら「アレクサ、扇風機消して」が実現可能になるのだ。

電子工作マガジンのアンプ

ちなみに小生が電子工作マガジン2016年冬号で発表したデジタルアンプは赤外線リモコン制御のため、このままeHomeに対応可能。アプリで「テレビ」として登録すると、電源、ミュート、音量、入力切替のすべての機能が音声制御できる。組み立てキットを「家電のケンちゃん」さんで頒布中。


今回扇風機用に用意した制御回路がコチラ。使用マイコンはデジタルアンプと同じPIC 12F629。プログラムもチョチョイと改造して再利用した。仕様としてはこんな具合


  • 送信機はテキトーな家電リモコンを使用(NEC,SONY,家電協フォーマット)
  • リモコン信号を学習して、内部EEPROMに保持
  • OUT0はオルタネイト動作(リモコン操作の度にL/Hレベル切り替え、初期値H)
  • OUT1,2,4,5はモーメンタリ動作(リモコン操作時のみLレベル)で、オープンドレイン出力

オルタネイトx1、モーメンタリx4出力あるので、そこそこ応用が利くと思う。実際に書き込んだプログラムのHEXファイルがコチラ

できた基板はこんな具合。材料原価は200円程度。IRモジュールはガワから顔を出したときに違和感の少ないタイプにした。なお、元の扇風機の制御マイコンのVccレベルが5.7Vであり、PICの定格5.5Vを上回ってしまう問題が発生。そのため電源ラインにダイオード1本挟んで降圧した(順方向電圧降下を利用)。

扇風機の4つのタクトスイッチは押下時に信号がGNDに落ちるタイプで、いずれもモーメンタリ動作なので、PIC出力信号はOUT1,2,4,5の4本を使用しOUT0は不使用とした。なお、各信号は5.7Vに内部プルアップされており、ダイオードで降圧したPICマイコンのVccレベル(実測値5.3V)とは微妙なギャップがある。出力電圧同士がぶつかることはないが、PICのGPIOに微妙に高い電圧がかかってしまうため、気休めに100Ω抵抗を挟んでおいた。また、改造部分はポリイミドテープで保護している。


初回使用前にはリモコンコードの登録が必要となる。家電用リモコンなら大抵のものは使えるが、扇風機用のものが入手できればベスト。コードは下記手順で何度でも再登録でき、EEPROMに保持されるので電源を切っても問題なし。なお、手順3で無反応のリモコンは非対応フォーマットなので他のリモコンを使うべし。

  1. PIC4p(GP3)のジャンパをGND側にして電源投入(初回起動時は不要)
  2. ジャンパをIRモジュール側にする(LEDがチカチカ光る)
  3. OUT0に割り当てたいリモコンのボタンを押す(LED点灯)
  4. OUT1,2,4,5に割り当てたいリモコンのボタンを順に押す(LED点滅)
  5. 登録完了するとLED消灯

組み込んだIRモジュールは感度良好。5m程度離れているところからリモコンを明後日の方向で操作しても問題なく応答した。

あとは、eHomeアプリでリモコン信号を登録し、Amazon Alexaアプリでデバイス登録すればスマート家電化が完了する。2019年8月現在では、eHomeアプリが扇風機のスキルに対応していないため、とりあえず「電球」として登録し、デバイス名を「扇風機」に設定。電源スイッチと風量スイッチのみ音声入力対応にした。これで「アレクサ、扇風機消して」や、「アレクサ、扇風機明るくして」といった音声コマンドが使えるようになった。

この手法で、他にも様々なデバイスが安価にスマート家電化できると思われる。腕に覚えのある方は夏休みの工作にでもチャレンジして欲しい。


お約束ですが、この記事を参考にして家電製品等の改造に着手し、その結果製品の故障や火災等いかなる被害が発生しても当方は責任を取れません。電気に対する正しい知識、および工作スキルを身につけた上で自己責任にて行ってください。また、家電メーカーへのお問い合わせもご遠慮ください。

虎の手リモコン

takedaさんと共同で開発していた虎の手リモコンシリーズの送信機「虎の手3号SS」を間もなく家電のKENちゃんさんでリリースの予定→8月12日に店頭販売開始となった。

家電のKENちゃんさんの当方の出品物販売ページはコチラ。

https://kadenken.com/shopbrand/ct142/

頒布できるのは送信機「虎の手3号SS」の組み込みキットのみであるが、試作機含めて虎の手1号~3号のラインナップを公開。

純正SSコードレスと虎の手リモコン

虎の手リモコンとは、セガサターン純正のコードレスパッドと互換性のある赤外線リモコンシステムで、8方向+10トリガまで、2人同時プレイに対応したもの。送信機には「虎の手モード」と「猫かぶりモード」があり、虎の手モードで純正SSコードレス互換機として動作、猫かぶりモードで猫の手リモコンとして動作する。


・虎の手1号

SSコードレスと同等の性能を持ったセガサターン実機用の受信機。純正品の赤外線信号フォーマットをtakedaさんが解析して製作したもの。私は回路考案とファーム開発を担当した。

虎の手リモコンや純正のコードレスPADで使うことができるが、オリジナルの受信機とは若干の相違点がある。純正は受信機側に連射機能(1段階)があるが、虎の手1号には連射機能なし。その代わり、虎の手リモコンでは送信機側に連射機能(3段階)を持たせている。

受光インジケータLEDは1P/2P信号を受けると赤・緑が点灯する。連射インジケータの役割もあり、虎の手送信機のトリガを連射モードに設定し、トリガ単独で押下することで設定された連射速度で点滅する。受光状態を確認できるこのLEDは地味に便利。

内部の様子。オリジナルはカスタムICで受光プログラムを走らせているようだが、虎の手1号はPICマイコン16F1823と74HC670x2の構成で、プログラムはゼロから機械語で書いている。受光性能はほぼ純正品と同等で、60fps・1フレーム未満の遅延で応答する。

受光ICは純正品と同じU2505Bで、フォトダイオードで捉えた400kHzキャリアの赤外線信号を読み取れる(受光回路はシールド板で囲っているので画像では見えない)。U2505Bは製造中止品のため入手難であり、ケース加工やコネクタ入手の問題もあるため、製品化の予定は無し。


・虎の手2号

猫の手3号cの基板と市販のPSコントローラ-USBアダプタを流用して製作したもの。PS用のノーマルコントローラ相当のジョイスティックを接続可能。「虎の手モード」では1P/2Pモードに切り替えでき、SS用受信機があれば実機でコードレスPADと併用して二人同時プレイも楽しめる。電源投入時にSELECT+STARボタンをホールドしておくことで「猫かぶりモード」に設定することができ、猫の手リモコンの送信機としても使用可能。

猫の手3号cと同じ回路構成だが使用PICが異なる。画像のLED内蔵ボタンは動作インジケータ兼WakeUpトリガ。LEDはスリープで消灯する。電池は単三型Ni-MHx3本で、電池ホルダーは背面に貼り付けてある。こちらの送信機も材料入手の都合で製品化の予定は無し。


・虎の手3号SS

純正SSPADに基板を組み込んで赤外線ワイヤレス送信機に改造したもの。純正SSコードレスと信号互換の「虎の手モード」と猫の手リモコン互換の「猫かぶりモード」に切り替えて使える。純正SSコードレス受信機を持っていればSS実機でゲームをプレイ可能。猫の手1号などの受信機があればMSXやファミコンでゲームをプレイできる。

中央の黒いボタンは、純正コードレスのFUNCキーの役割とスリープ状態からのWakeUpキーを兼ねている。純正と異なり、テレビリモコンの機能はないが、FUNC+START+トリガ押下で3段階(7.5/15/30)の連射機能あり(虎の手モードのみ)。

単4乾電池(またはNi-MH電池)2本で動作する。電池BOXはプレイの邪魔にならない位置で、電池を入れても今時のPADと比べて軽量。虎の手・猫かぶりモードは電池投入時のLRボタンの状態で設定する。Lで虎の手1P、Rで虎の手2P、L+Rで猫かぶりモードに設定される。マイコンは3分間操作無しでスリープ状態に移行し、電池は結構長持ちする

いつものようにサブ基板搭載での改造。コネクタを引っこ抜いてピンヘッダを半田付けして基板を増設するだけでなのでお手軽。ケースの穴あけ加工については位置決めシールを添付したので難しくないと思う。

キット内容
穴あけガイドシール

使用説明書:
http://niga2.sytes.net/upfile/tora3ss.pdf

改造手順書:
http://niga2.sytes.net/upfile/tora3ssk.pdf

ちなみに製品の基板は出荷前に全数チェッカーで動作確認済み。

基板チェッカー

出荷

量産した猫の手シリーズを本日出荷した。

QRコードは説明書PDFのURL。店頭でスマホで読み取ると説明書全文をダウンロードできる仕組み。3号キットは説明書PDF内のリンクから改造手順書もダウンロードできる。リンク先は自宅サーバーなので落ちないようにしなくては。

あと、電子工作マガジンに投稿したデジタルアンプ基板が余っているので、これをフルキットにして委託販売することにした。プログラム書き込み済PIC同梱で面実装のアンプICは基板に実装済みなので製作の敷居は下がったと思う。

全説明書のURLはコチラ。

猫の手1号:niga2.sytes.net/upfile/neko1.pdf
猫の手2号:niga2.sytes.net/upfile/neko2.pdf
猫の手3号共通:http://niga2.sytes.net/upfile/neko3.pdf
猫の手3号b改造手順書:http://niga2.sytes.net/upfile/neko3b.pdf
猫の手3号c改造手順書:http://niga2.sytes.net/upfile/neko3c.pdf
猫の手4号:niga2.sytes.net/upfile/neko4.pdf
電子工作マガジンのアンプ:http://niga2.sytes.net/upfile/IRamp.pdf

実際にお店で応答性能を確認できるように店頭デモ用の受信機や3号完成品も同梱した。週末にはお店に並ぶかも。

 

基板チェッカー

猫の手3号は組み立てキットとしてリリースするため、出荷する基板が良品か否か、組み込み前に調べる必要がある。M.A.D.社からのリリースが滞ってしまった主な理由がコレで、簡単にチェックできる装置の必要性は感じており、今回重い腰上げてチェッカーを作成した。

猫の手3号b用のチェッカーがコチラ。内部の2mmピッチの5pパターンにピンヘッダとピンソケットを継ぎ足してかさ上げし、ケース背面からキット基板を直接挿し込めるようにしてある。

鰐口クリップはWakeUp信号用のもので、Rボタンへ配線してある。電源のピンソケットを差し込むと動作するので一通りの操作をチェックできる。

猫の手3号c用のチェッカーがコチラ。ピンソケットを長めのピンヘッダでかさ上げしてある。基板は赤外LED非実装の状態のためテスト用のLEDが必要で、足にスルーホール用テストピンを半田付けしている。鰐口クリップはR2ボタンに増設したダイオードに接続してある。

テスト対象を挿しこみ、LEDと鰐口クリップと電源を接続すると動作する。これらのチェッカーで製造した基板が全品動作品であることを確認した。

D-SUBコネクタ加工方法

猫の手リモコン受信機で使うDサブコネクタの加工方法について、試行錯誤の末辿りついた我流のやり方ではあるが、備忘録として記録しておく。

Dサブ9pはMSX本体によっては金具の出っ張りが本体に干渉して奥まで刺さらない。15pの方はファミコンの拡張端子と同じ形状であるが、金具だけでなく、中の樹脂部分の出っ張りが邪魔で奥まで刺さらない。

まずは金具のカシメ部分(ネジ穴)を金工用ドリルで皿モミする。ステンレス用のビットを使うのがbetter。

このくらい削っておけば殻割りできる。

Dサブ15pの方も同様に殻割りして中身を取り出す。金具は燃えないゴミに捨てる。

15pの方は一旦ピンを全部引っこ抜き、ベンチバイスに固定して棒ヤスリでゴリゴリ削る。

棒ヤスリで4辺を削ったところ。

角はルーターで削って仕上げる。このルーターはステンドグラス製作で使うガラス用。プラを削るには効率が悪いが仕上がりは綺麗になる。

削り終わったところ。バリはナイフで削ぎ落とす。

15pの方はピンを戻しておく。全ピン使うと着脱が固くなるのでファミコンの1コンに必要なピンだけにした。

プラ部品の接合にはアルミの粘着テープを使う。手前がダクト・水回り補修等で使うアルミテープでホムセンで売っているもの。奥のはガラスファイバー入りで昔ラジコンのポリカボディの加工用に買ったもの。機械的強度が稼げるが厚みが出るのが難点。今回は普通のアルミテープで十分。

短冊に切ったアルミテープを接合部分に巻きつける。

手で軽く馴染ませたらペグという道具でさらになじませる。

ちなみにアルミ短冊のサイズはこのとおり。9p用は7x55mm、15p用は6x60mmに切ると丁度良い。

コネクタの加工はこれで完成。15pは削る工程が面倒くさい。

1個や2個作るくらいなら大した作業量ではないが、1ダース作ろうとすると地味に大変だったりする。

猫の手3号c製品版試作

初代プレステのノーマルコントローラをレトロPC&ファミコン用に赤外線ワイヤレス化する改造基板「猫の手3号c」基板の試作を行った。まずは部品実装状態から。

PSノーマルPADは製造時期・工場によって複数のリビジョンがあるが、基板にHOSIDENとシルクのあるものはコネクタのピンアサインが他と異なるという困った仕様。幸いPICはプログラムでピンの機能を変更できるので、起動時にJP1の状態を読んでモードを切り替えている。今回はホシデン製のコントローラでテストするのでJP1は半田を盛ってショートした。ちなみにJ1から伸びているワイヤーはWakeUpトリガ用。

組み込み後は見えなくなる基板裏側。コントローラ基板のコネクタ位置はリビジョンにより微妙に異なるので、LEDは仮組みして位置を合わせた状態で半田付けする。

ガワにも問題なく組み込めたが、内部の構造もコントローラによって多少異なるため、一通りの検証作業は必要。

WakeUpトリガ用のワイヤーはコチラに接続。R2ボタンのワイヤー(3本のうち左側)を引っこ抜いて基板にダイオードのアノード側を接続し、カソード側に引っこ抜いたワイヤーとJ1に接続されたワイヤーを半田付けする。マイコンは3分間無操作でスリープするが、R2ボタン押下で動作再開する。

以上で今回作成したすべての基板での試作が完了した。初めての基板設計であったが特に大きなミスも無いようなので部品を発注して量産体制に入ろうと思う。