文書の過去の版を表示しています。
目次
Desktop Station decoder (DSdec)
Very cheap DCC decoder based on NMRA DCC Arduino library
このデコーダについて
ここでは、オープンなNMRA DCC ArduinoライブラリとArduino Pro mini互換品を用いてカスタマイズが自由で、なおかつ激安のDCCデコーダの作成方法、部品頒布情報を提供します。
特徴
- Arduinoベースで完全にハードウェアもソフトウェアもオープンソース、完全フリー
- NMRA DCC Arduino Libraryベースの回路例よりもDCCの入力回路が単純化され、コンパクト&低コスト
- 改造が容易、機能拡張も可能
- ソフトウェアの変更と小規模な回路を加えるだけで、ポイントデコーダ、ファンクションデコーダ、機関車デコーダの何でもなる柔軟性
- キット価格が市販品よりも圧倒的に安価(50%以下)
- 自分で基板を発注すれば、秋月電子にある部品だけでも組める
- 日本語で情報提供が行われている
- 12V専用 (※Arduino Pro miniのLDOの最大絶対定格による)
- CV書き込みで設定変更可能。CV読み込みには現在非対応。
- PCとはシリアル(UART)で接続可能です。端子はFTDIの標準配列準拠。
動作確認済みコマンドステーション
Name | Result | Locomotives | Turnouts | Notes |
---|---|---|---|---|
Marklin MS2 | OK | OK | OK | ACアダプタは12Vを使用 |
Roco MultiMaus | OK | OK | OK | *ポイントのアドレスがずれる。ACアダプタは12Vを使用 |
DSmain | OK | OK | OK | Rev.194以降でCV書き込みOK |
Kato DCS50K(D101) | OK | OK | OK | |
Digitrax DCS100 | OK | OK | OK | |
NCE PowerCab | OK | OK | OK | |
Roco Z21(黒) | OK | OK | OK | |
永末システム事務所 DP1 | OK | OK | OK |
※上記は全て、ACアダプタは12Vを使用。
※全ての運転パターンをチェックしたわけではないのでご注意ください
部品表
Parts No | Parts | url |
---|---|---|
D1 | Vishay DF08M | url |
D2 | Fairchild 1N4148 | url |
C1 | 1-10uF 50V MLCC | url |
R1 | 100kOhm | url |
R2 | 270kOhm (100kOhmでも可) | url |
IC2 | Rohm BD6231F-E2 | url |
- | Promini compatible | url |
抵抗値についての補足:
R2はR1と同じ100k Ohmにしてもよいです。(動作は変わらない)
R1を270k R2を100kにすると、3.3V駆動のArduino向けになります。
100kOhm以上を選択している理由は、1N4148のVFを低く使うため(IF=0.1mA弱、VF=0.4V以下に抑えるため)に起因します。 100kOhm未満の抵抗(たとえば10k等)を使う場合、D2の1N4148のVFが上昇してATMEGAの入力ピンに合計5.5V超が印加され寿命を縮めるリスクが発生します。VFの低いダイオードに変更してください。ただしダイオードのコストは上昇します。
回路図、レイアウト
サイズ比較
組み立て方法
・表面実装部品から先に!
背の低いものから半田付けがセオリーです。100円ショップで売っているクランプ(洗濯バサミのようなもの)があると、表面実装部品を簡単に固定できて半田付けの際に便利です。なお、洗濯バサミでも代用可能。
・表面実装部品 BD6213F-E2について
表面実装なので、半田付けが大変です。ピンセットと、細いコテ先の半田ごてと、0.3~0.4mmΦの細い半田を使うと、だいぶ違います。半田付け手順としては、まず1番ピンに少々の半田を流してやり、ピンセットでICを乗せて保持したまま、半田ごてを当てて1番ピンを固定します。固定したら、他のピンを順番に半田付けします。
なお、以下のようにピンが浮いてしまう場合があります。この場合、モータなどに正常に電流が流れませんので、半田付けをやり直してください。
・抵抗、コンデンサー
極性はありません。部品番号を間違えないように半田付けしてください。
・ダイオード
極性があります。写真を見ながら方向に注意して半田付けしてください。 間違えると最悪、ショートして故障します。
・ヘッダーを使ってArduinoボードとデコーダーボードを固定
ヘッダをサンドイッチして半田付けします。
絶縁処理
熱収縮チューブを使うことで、簡単に絶縁処理が行えます。機関車への搭載の際に便利です。 熱収縮チューブは、スミチューブA20C(Φ20mm)がお勧めです。マルツなどで購入できます。
配線例
PCとの接続について
本デコーダを使う場合には、PCと接続するためのケーブルもしくは変換ボードが必要になります。 Arduino Pro miniベースのため、PCとの接続にはUART-USB変換ケーブルまたはボードがもっとも簡単です。変換器にはFTDI UART配列のものを選定ください。DTS,TX,RX,VCC,CTS,GNDの順に割り当てられた6ピンのコネクタを使用します。シルク印刷や下記の写真を確認の上、逆差しにはご注意ください。
- Arduino Pro mini向けの変換ボード スイッチサイエンス
- 秋月電子のFTDI USBケーブル(5V) 1580円
6番ピンがDTRの割り当てでないケーブル・変換ボードをご利用の場合、書き込み時にリセットボタンを押す必要があります。FTDI純正のUSBケーブルが該当します。
注意点:
DSmainやDCC/MM2シールド+Desktop StationのようにPCと接続するタイプをご利用で、デコーダーにUSBシリアルケーブルを繋げっぱなしでデバッグを行う場合、デコーダーとDSmain / DCC/MM2シールドの間の配線2本は絶対に外れないようにしてください。
これは、線が中途半端に1本だけ外れることでパソコンを迂回して電流が流れるルート(GND共通のため)ができてしまい、デコーダーのマイコンチップに許容以上の電流が流れ、破壊されるリスクがあるためです。
なお、PCを別にするか、USBアイソレータ(電源も絶縁するもの)等対応をすれば問題なく使用できます。
Arduinoでの使い方
ライブラリのインストール
NMRA DCC Libraryを使用します。ZIPファイル内のNmraDccフォルダをフォルダごとArduino IDEのLibrariesフォルダにコピーしてください。本回路基板は、このライブラリのExampleをそのままベースとして使用できますが、以下の点にご注意ください。
- pin関数では、入力プルアップは有効にしない(0を指定。ダイオードクリップ回路があるため。)
- DCCの信号入力はD2です。
- モータドライバへの出力はD9(A)およびD10(B)です。
- NMRA DCC Libraryの仕様上、アクセサリモード時は速度指令の関数(notifyDccSpeed)がコールバックされません。
// Dcc.pinのパラメータ:外部割込み0、DCC入力ピンはD2、入力プルアップ禁止 Dcc.pin(0, 2, 0); // DCC初期化・動作有効化関数。以下のいずれかを選んで設定してください。 //アクセサリモード(機関車モードでない) Dcc.init( MAN_ID_DIY, 100, FLAGS_DCC_ACCESSORY_DECODER , 0 ); //※機関車モードの場合は以下の処理を記載 Dcc.init( MAN_ID_DIY, 100, 0 , 0 );
ボードの選択
Arduino Pro miniを選択します。
当サイトから頒布するボードはATMEGA168搭載なので、ATMEGA168 5V 16MHzを選択します。ご自分で入手するボードによっては、ATMEGA328 5V 16MHzの場合もありますので、ボード上のマイコンの刻印をご確認ください。
CV設定
現状、Arduino Pro miniのブートローダの起動時待機時間の影響で、市販のコントローラでは、車両に組み込んだ単体状態で動かす場合にCVが書き込めません。CV書き込みは、PCとのシリアルケーブルを繋いだ状態で書き込みをお願いします。なお、Desktop Stationハードウェアで書き込む場合は、R194以降のファームウェアが搭載された機器をお使いいただくことで単体でも書き込み可能です。
書き込むスケッチによって様々ですが、一番最初に使うときには初期化する必要があります。 EEPROMの値は、初期は不定です。必ず、CVの値をきちんと書き込んでリセットしましょう。なお、条件によってはうまくCVが書き込めない場合もあります。何度か試すか、配線を見直してください。
※注意!※ アドレスなどはDCCの標準仕様に準拠していますが、モーター調整系のパラメータの値の解釈は独自にしています。他のデコーダーとは異なる仕様なのでお気をつけください。
機関車デコーダの場合
・アドレス設定
最初にCV8に1を書き込むと初期化するようにできています。アドレスは、CV1 (Shortアドレス)とCV17, CV18(Longアドレス)の2通りです。CV29でShort/Longアドレス設定切り替えが出来ます。 詳しくはCVの仕様書を確認ください。
・モーターの調整
CV2が始動電圧(0-255, 255が100%の電圧という意味、デフォルトは16。)、CV3が滑らかにするレート(0-255、0は滑らかにしない。数字を大きくするほど、速度が変わったときになだらかに変わります。デフォルトは32。)で使用します。CV4は現状は未使用で、内部ではCV3と同じ値を使うようにしています。
なお、繋がるモーターは千差万別です。たとえば、FK-130SH(マブチ, DC12V標準)の場合は1.2V前後が始動電圧です。12Vが最大として、線路の抵抗やデコーダの内部回路の抵抗を考慮して-1Vととすると、11Vを最大値とします。このとき、始動電圧を比であらわすと、1.2V/11V=0.109です。これに255をかけると、27.8となります。四捨五入すると28となり、この値をCV2に入れると、速度を1としたとき始動電圧1.2Vでモーターを動かす制御を行います。モーターや、ギア、車両の重さなどによって始動電圧は異なりますので、何ボルトで回るかおおよその目安を考えて設定してください。
アクセサリデコーダの場合
CV1(LSB)とCV9(MSB)がアドレス設定用です。 CV9は0、CV1を1とすると、初期値(アクセサリアドレス1)となります。CV1に10と書き込むと、アクセサリアドレスは10になります。CV9は上位ビットをあらわすので、255超の場合はCV9に上位ビット分を書き込んでください。
Keep alive コンデンサ
現状のデコーダキットに無理やりKeep-Aliveコンデンサを取り付ける箇所を図示すると以下の箇所になります。動作がスムーズではないという方は、お試しください。ダイオードブリッジの+、-と書かれた穴がちょうど該当します。また、セラコンの穴も使えます。配線にあわせてお好きなほうの穴を流用してコンデンサを配線ください。なお、+と-を間違えるとコンデンサは破裂・爆発しますので、ちゃんとコンデンサの極性は間違えないようにしましょう。
コンデンサの容量: 1000uF以上、耐圧16V以上であること。推奨は、2200uF以上、耐圧25V以上です。
メーカー | 型番 | 仕様 | 直径 | 長さ | URL | 備考 |
---|---|---|---|---|---|---|
Panasonic | 4700μF50V 85℃ | 23mm | 35mm | url | サイズが大きくHOでも搭載は困難 | |
ケミコン | LXJ | 8200μF16V105℃ | 18mm | 40mm | url | HOには入るサイズ, 耐圧が最低限なので注意,\\容量が大きくkeep alive効果は絶大 |
ケミコン | LXJ | 2200μF35V105℃ | 16mm | 35mm | url | 容量的には問題なし。 |
仕様を見るポイントは以下の通りです。
温度:書いてある温度が高いほど、耐久性が良いです。熱くなりやすい環境で使っても劣化しにくいという意味になります。コンデンサは熱い環境だと劣化して性能が落ちる特性があるので、涼しい環境で使うことが望ましいです。
電圧:動作の限界の電圧値です。この電圧を少しでも超えると劣化して壊れるリスクがあります。産業用機器では、通常は耐圧を使用電圧の2倍以上をとります(安全率)。12Vで使うなら耐圧24V以上のもの、たとえば25Vや35V, 50Vなどを選びます。
時間:メーカーが保証する動作時間です。この時間が長いほど、耐久性に優れています。コンデンサは電子部品の中で一番寿命が短いので、この動作時間を目安に寿命設計するケースもあります。
規約
- 本サイトで頒布している回路データ、ガーバー、スケッチ(転載のNMRA DCCライブラリは除く)は著作権フリーです。改造、二次配布、販売など、ご自由にどうぞ。
- 回路図について、ミスなどのご指摘は修正いたしますが、原則、機能要望などは受け付けません。皆様の手で機能追加をお願いします。追加したら、アップロードしていろいろな方に頒布して、共有いただけると幸いです。
- Arduinoのソフトをベースにしています。GPL2ライセンスのライブラリを使用しておりますので、独自にソフトを作る場合はGPL2への抵触を考慮し十分にご注意ください。
- 本回路、サンプルスケッチ、頒布キットによって損害などが発生しましても補償いたしません。
ダウンロード
基板の回路図、ガーバーデータなど一式は以下です。 回路図エディタは水魚堂様のBSCH、基板エディタはmbeを使用しております。
ファイル | バージョン | url | 備考 |
---|---|---|---|
Schematic for BSCH | R1 | prominidccdecoder_bsch.zip | first version |
Layout for mbe | R1 | prominidccdecoder_mbe.zip | first version |
Gerber file | R1 | prominidccdecoder_layoutr1_b.zip | available to upload to PCB manufacture. |
以下は、Arduino IDE用のポイントと機関車デコーダのソースコード(スケッチ)や、DCCデコーダ機能のベースとなるNMRA DCCライブラリの転載(ミラー)です。
ファイル | バージョン | url | 備考 |
---|---|---|---|
Locomotive decoder sketch | R1 | download | first version |
Locomotive decoder sketch | R2 | download | Support CV configuration of motor drive |
Locomotive decoder sketch | R3 | download | Add CV ack. |
Locomotive decoder sketch | R4 | download | Improve maximum speed stop problem. |
Turnout decoder sketch | R1 | download | first version |
Headlight decoder sketch | R1 | download | first version |
NMRA DCC Library 2014-10-15 | R1 | download | Mirror from mrrwa.org |
基板、キットの頒布
DCCデコーダーキットを頒布しております。安価に頒布するため、頒布は以下の形態に限定しております。価格は、部品の調達状況により随時見直します。みなさまの購入量が増えれば商社と交渉することで部品調達コストが下がり、価格を下げることができます。
- DCCデコーダーキット 750円/個(一般向け)
- 基板のみ 100円/枚
- promini 互換品 200円/個
- 送料は200円/回
注文は、オーダーフォームかメールでどうぞ。
※モータードライバIC BD6231F-E2が不要な場合、キット1個あたり250円引きします。
※BAITE CH340G USB Serialボードを500円で頒布します。手配数は少ないので在庫の有無は注文時に確認ください。
サポートについて
価格を安価にするため、故障交換以外の直接のサポートは原則行いません。使い方の質問等は、ご自分で当ページを参考の上、対応をお願いします。
「説明や解説文書のここが分かりにくいから直した方がいい」といったアドバイスなどは歓迎いたします。
リンク
基板の発注方法
ここでは、管理人がよく使うelecrowでの基板発注方法を解説します。
- ガーバーデータ(Gerber file)をダウンロードします。
- elecrowサイトを開き、お好みの基板のタイプを選びます。たとえば、100x100mm(max), 11.9USDの商品がお勧めですが、予算や基板の使用枚数に合わせて選択ください。
- 厚み、色などはお好みでお選びください。一般的には、厚み1.6mm、色は緑です。
- Surface finishは、Hasl(Lead free)で構いません。
- Panelizingは2-5copyを選びます。基板が小さいため、面付けと呼ばれる余ったスペースに同じ基板を埋めるオプションを足します。うまくいくと(elecrowのさじ加減)、1pcsに5枚分を面付けしてもらえ、合計の基板枚数が5倍に増えます。
- Fileに、当ページでダウンロードしたガーバーファイルをそのまま指定します。
- 住所、クレジットカード(安全面から、paypalをお持ちならpaypalがよいです。)、郵送方法を指定してオーダーします。
- 通常、3週間~1か月ほどでお手元に届きます。中国の長期休暇などが重なると、延びるケースが多いです。
基板のオーダー方法はいろいろなサイトで紹介されています。
よくある質問
Nゲージに対応ですか?
電気的には問題ありませんが、サイズの関係上、車両に入らないケースがほとんどです。
車両以外にお使いください。なお、車両に使うなという意味ではないので、がんばって入れて動かすのもアリです。
wikiの説明がよく分かりません
申し訳ありませんが、分かりにくい部分をご指摘ください。文章を修正します。
○○という製品に組み込めますか?対応ですか?
各メーカーによって、製品の作りは異なります。全てのメーカーをこちら側で検証してサポートすることは困難ですので、ご自分でチャレンジをお願いします。なお、チャレンジ結果は、情報共有するためにご報告いただけると幸いです。
なお、有志の情報などは以下の通りです。順次、追加していきます。
- Tomix Nゲージ用ポイント 動作OK(ただし古いものは動きが悪いので調整要)
- Kato HOゲージ用ポイント 動作OK
- FK-130SH(マブチ, DC12Vモーター) 動作OK, 始動電圧1.2V
- RS-385PH-4045 (Mercury, DC9Vモーター) 動作OK, 始動電圧1.5V
NEM 8pinに対応ですか?
自分で配線して作れば対応できます。こちらではコネクタや配線などの提供はありません。
キットを安くしてほしい
キット等は、諸経費・故障対応費を足した金額になってます。
基板、購入先リンクはすべて掲載済みです。部品価格の関係上、これ以上価格を下げられません。
ご自分で手配すると原価で買えますが、送料などを加味すると少量ではトータルコストはあまり変わらないと思われます。
海外発送可能ですか?
可能です。ただし、初期不良の場合は、代品をSAL便でお送りすることになります(EMSは不可)。
希望するようにデコーダーのソフトを作ってほしい
開発環境や、必要な資料はすべて掲載するようにしますので、本デコーダー用のソフトを改良・カスタマイズはご自分で対応ください。 なお、サポートとしてではなく、ビジネスとしてのご相談は別途承ることは可能です。
壊れました。無償で交換してください。
部品自体の初期不良は対応しますが、使って壊したものは無償交換できません。価格を安価にするため、故障対応などは最低限になります。 なお、故障の原因などをフィードバックして頂けるなど、開発に協力いただける場合は、協力のお礼としてデコーダキットを安価にご提供いたします。
メルクリンに使用できますか?
メルクリンの線路には絶対に使用しないでください。電圧が15~18Vと高いため、デコーダに搭載されている電源ICが過熱で損傷するリスクがあります。本デコーダは12Vでの利用を想定しています。
電子工作は初心者ですが作れますか?
電子工作に詳しい方が近くにいれば、教わりながら勉強することで作ることは可能です。 学生向けの簡易キットレベルで難易度が低くなるように設計しておりますので、初めての方でも写真を見よう見真似で作って頂ければと思います。
電圧不足で稀に転換ミスとはどういう意味ですか?
本デコーダに使用しているブリッジダイオードは、Vf(電圧降下)が1.1V程度あります。よって、コマンドステーションのACアダプタからの供給電圧が12Vだと、10.9V程度に低下します。もちろん、電圧降下要因は他にも、コマンドステーション側のパワー半導体(トランジスタ)の抵抗と出力電流によるもの(オン電圧)、デコーダ内のモータドライバのオン電圧、線路の抵抗成分など、多岐に渡ります。よって、なるべくコマンドステーション側のACアダプタの電圧を少しだけ高くする(+1V程度)というのも対策として挙げられます。
電圧が低いと、ソレノイドやモータに十分な電流が流せなくなり、きちんと動かない場合もあります。ポイントデコーダのスケッチ例では、わざと電流を控えめにしているので、スケッチの修正で改善する場合もあります。