概要
beatmaniaの特徴的なデバイスであるターンテーブルは、サブ基板というもので制御されています。
メイン基板にはターンテーブルの入力を制御する機能がないので、サブ基板がない場合はターンテーブルの入力が一切できません。
サブ基板はオークションなどでも見かけることが少ないため、サブ基板が故障したりメイン基板しか持っていないような状況ではターンテーブルを使用できず実質ゲームをプレイすることができなくなってしまいます。
今回はこのサブ基板との互換性があるレプリカ基板を作成してみました。
CONP(コンパネ基板、IIDXの同様の基板の名称)とCOMP(コンパチ、互換品)をかけてCONMP基板と命名しています。
基板について
CONMP基板ではRaspberry Pi Picoを主軸とした設計しています。
コネクタ類はオリジナル基板と同じコネクタを採用し、オリジナルの基板から置き換えた場合に配線を流用できるようにしています。
電源の取り方
電源は5Vで動作します。電源の取り方は3種類あります。
- VHコネクタ
オリジナルの配線用です。流用する場合はこちらを使用します。 - XHコネクタ
一般的によく使われるコネクタです。
オリジナルの配線がなく、独自に配線を用意する場合は入手性の高いXHコネクタを使用できるようにしています。 - Raspberry Pi PicoのMicro USB
マイコンボードに搭載されているUSB端子です。
プログラムの書き換えやデバッグ出力に使用するものですが、電源供給の用途でも利用可能です。
電源はいずれか1つのみ使用するようにして下さい。設計上、複数同時使用は想定していません。
各配線の接続
ターンテーブルのセンサーへの配線はNH6ピンです。
ピンアサインは1番ピンから順に[5V] [Rセンサー] [GND] [5V] [Lセンサー] [GND]の順です。
1P側の配線(オリジナルケーブルの場合CN33コネクタ)をCN4に接続します。
2P側の配線(オリジナルケーブルの場合CN34コネクタ)をCN3に接続します。
8P8C (LANコネクタ)はDJ MAIN基板との通信に使用します。
接続にはSTPのLANケーブルを利用するようにしてください。分からなければCAT 7のLANケーブルを選択してください。
BOM (部品表)

リンクは参考購入先です。必ずしもリンク先の物でなくても構いません。
Qtyに*と記載されている物はオプション扱いです。必要に応じて実装します。
Reference | Qty | Value | Note |
---|---|---|---|
C1-C5 | 5 | 0.1uF | パスコン |
CN1 | 1 | 8P8C | 通信用LANコネクタ |
CN2 | *1 | B4PS-VH | 5V電源コネクタ(オリジナル配線用) |
CN2-2 | *1 | B2B-XH | 5V電源コネクタ(任意配線用) |
CN3-CN4 | 2 | BS6P NH | センサー接続用 |
J1-J4 | *4 | B2B-XH | デバッグ用ボタン 外部接続コネクタ |
R1-R3, R5-R6, R8-R9, R11 | 8 | 1kΩ | プルアップ・プルダウン抵抗 |
R4, R7, R10 | 3 | 100Ω | 終端抵抗 |
SW1-SW4 | *4 | タクトスイッチ | デバッグ用ボタン |
U1 | 1 | Raspberry Pi Pico | MCU |
U2 | 1 | MAX485ED | 5V駆動MAX485 送信用 |
U3-U5 | 3 | MAX3485ED | 3V駆動MAX485 受信用 |
感度設定
通常は「右センサーの立ち上がりエッジ」でのみ回転を検知し、加減算を行う仕組みになっています。(オリジナルの仕様)
基板上に配置されたジャンパパッドを短絡することで設定を変更し、回転の検知頻度を増やすことができます。
- FALL_FLAGを短絡
立ち下がりエッジでも検知(感度2倍) - LEFT_FLAGを短絡
左センサーでも検知(感度2倍) - FALL_FLAGとLEFT_FLAGを同時に短絡
両方のセンサーで、立ち上がり立ち下がりを検知(感度4倍)
ACのターンテーブルは歯車の枚数が72枚なので360°/72=5°につき1回検出となります。
例えばアスキーコンを改造してターンテーブルを作る場合、歯車の枚数が36枚(10°につき1検出)しかないため選曲操作や1回転スクラッチで本来の角度として認識させるには2倍の角度を回す必要があります。
感度設定を2倍にすることで歯車36枚のターンテーブルでもACと同じ5°ごとの検出が可能となります。
オリジナルとの差違
可能な限りオリジナルの挙動を模倣していますが、以下の違いを確認しています。
多重反応の改善
オリジナルのサブ基板では、前回回した方向とは逆方向に回転させた場合に、一瞬だけ順方向の検出されるという現象が発生します。
これにより初代~3rdMIXまでは「押し引き」操作をしたときなどに過剰反応してしまい空POORが出るといった不具合があります。
completeMIX以降はプログラム側の変更により抑制されるようになっています。
CONMP基板では正確な検出をしてしまっているため、この多重反応が発生しません。
プレイ体験としては良いことではあるものの、1st~3rdで使用する際にオリジナルの挙動が再現できていないという見方もできます。
値化け
ごく稀に、誤ったターンテーブルの値を応答する場合があります。
メイン基板は、サブ基板に対しターンテーブルの値を問い合わせる通信を行っています。
このときCONMP基板側の処理が間に合わず正しい値を用意できなかった場合、誤ったターンテーブルの値を返却してしまいます。
問合せは1Fに1回実施されているので次のフレームには正しい値に戻ることが多いですが、ゲームプレイ中は「一瞬値が変わった」=「スクラッチした」となるため意図せぬ誤入力となる場合があります。
プログラムの改善により頻度は減少しましたが、完全に0にできているか検証できていません。
デバッグ用ボタン
ターンテーブルの現在値を加算・減算するボタンを取り付けることができます。
タクトスイッチによる基板直付けのほか、XH2ピンコネクタによる外部配線も可能です。
基板の簡易的な動作チェックや、省スペースコンパネの製作などに利用できると思われます。
販売情報
BOOTHで販売中です。
DJ MAIN用サブ基板互換 CONMP基板 [LAY-004-01] | BOOTH
ソースコードとファームウェア
ソースコードはLay31415/LAY-004-01 | GitHubに展開しています。
ファームウェアのインストール
- GitHubリポジトリのReleasesからビルド済みのファームウェア、
LAY-004-01.uf2
をダウンロードしてください - Raspberry Pi PicoのBOOTSELボタンを押しながらUSBケーブルを接続します
- PCに
RPI-RP2
という名前のUSBドライブとして認識されます - ダウンロードした
LAY-004-01.uf2
ファイルを、RPI-RP2
ドライブにドラッグ&ドロップしてコピーします - 自動的に書き込みが完了し、ボードが再起動します
書き込み完了後、サブ基板の代替として動作を開始します。
コメント