文書の過去の版を表示しています。
目次
Desktop Station decoder (DSdec) R2
About this
オープンなNMRA DCC ArduinoライブラリとArduinoベースの回路を用いた、カスタマイズ自由な自作のDCCデコーダキットについて解説します。
This page describes customizable DCC decoder based on Arduino software and hardware, related DCC library which is NMRA DCC library.
Features / 特徴
- Arduinoベースで完全にハードウェアもソフトウェアもオープンソース、完全フリー
based on open source and open hardware. - NMRA DCC Arduino Libraryベースの回路例よりもDCCの入力回路が単純化され、コンパクト&低コスト
Very cheap! - 改造が容易、機能拡張も可能
Customizable - ソフトウェアの変更と小規模な回路を加えるだけで、ポイントデコーダ、ファンクションデコーダ、機関車デコーダの何でもなる柔軟性
Strong capability. This decoder can be a turnout decoder, function decoder, locomotive decoder, sound decoder. - オプションでサウンド機能が追加可能。Sound Optionページを参照ください。
Sound function is available. - コンデンサ端子を装備。悪条件の線路でも走行を可能にするコンデンサを容易に追加できます。
You can add a keep alive capacitor. - 自分で基板を発注すれば、秋月電子にある部品だけでも組める
- 日本語で情報提供が行われている
- 12-20V対応 (※搭載レギュレータの最大絶対定格による)
DC12V to 20V is available. - CV書き込みで設定変更可能。CV読み込みには現在非対応。
CV write is available. CV read is not supported. - Arduino UNOとブレッドボードを用意すればマイコンの書き換えが可能。
You can program your sketch via Arduino UNO.
Checked stations / 動作確認済みコマンドステーション
Name | Result | Locomotives | Turnouts | Notes |
---|---|---|---|---|
Marklin MS2 | OK | OK | OK | |
Roco MultiMaus | OK | OK | OK | Offset adjustment is required. |
DSmain | OK | OK | OK | |
Kato DCS50K(D101) | OK | OK | OK | |
Digitrax DCS100 | OK | OK | OK | |
NCE PowerCab | OK | OK | OK | |
Roco Z21(Black) | OK | OK | OK | |
Nagasue system office DP1 | OK | OK | OK |
※上記は全て、ACアダプタは12Vを使用。
The above condition uses DC12V power supply.
※全ての運転パターンをチェックしたわけではないのでご注意ください
Please attention the above experiments are not satisfied the all condition.
Parts list / 部品表
Parts No | Parts | url |
---|---|---|
D1 | Vishay DF08M | url |
D2 | Fairchild 1N4148 | url |
C1,C2 | 1-10uF 50V MLCC | url |
R1 | 100kOhm | url |
R2 | 270kOhm (100kOhmでも可) | url |
IC1' | DIP28 socket | |
IC1 | ATMEL ATMEGA328P | url |
IC2 | Rohm BD6231F-E2 | url |
IC3 | JRC NJM78L05 | url |
X1 | Murata Ceralock 16MHz | 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の低いダイオードに変更してください。ただしダイオードのコストは上昇します。
Schematics and layouts / 回路図、レイアウト
サイズ比較
組み立て方法
・表面実装部品から先に!
背の低いものから半田付けがセオリーです。100円ショップで売っているクランプ(洗濯バサミのようなもの)があると、表面実装部品を簡単に固定できて半田付けの際に便利です。なお、洗濯バサミでも代用可能。
・表面実装部品 BD6213F-E2について
表面実装なので、半田付けが大変です。ピンセットと、細いコテ先の半田ごてと、0.3~0.4mmΦの細い半田を使うと、だいぶ違います。半田付け手順としては、まず1番ピンに少々の半田を流してやり、ピンセットでICを乗せて保持したまま、半田ごてを当てて1番ピンを固定します。固定したら、他のピンを順番に半田付けします。
なお、以下のようにピンが浮いてしまう場合があります。この場合、モータなどに正常に電流が流れませんので、半田付けをやり直してください。
・抵抗、コンデンサー
極性はありません。部品番号を間違えないように半田付けしてください。
・ダイオード
極性があります。写真を見ながら方向に注意して半田付けしてください。 間違えると最悪、ショートして故障します。
・セラロック
極性はありません。
・マイコン(ATMEGA328P)
基板のシルク印刷を見て方向を間違えないようにしてください。 最悪、マイコンが故障します。
・レギュレータ
基板のシルク印刷を見て方向を間違えないようにしてください。
絶縁処理
Wiring example / 配線例
機関車用: (for locomotives)
IN: 線路から2本を配線 (from Rail)
OUT: P モーターの+、N モーターの-, (Motor's positive pin and negative pin.)
ポイント: (for turnouts)
IN: 線路から2本を配線 (from Rail)
OUT: P 赤(red), N 黒(black)
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 UNO R3ボード
- (キットに付属)AVRマイコン(ATMEGA328P)
- (キットに付属)セラロック 16MHz または 水晶発振子16MHz+22pFセラコン2個
- ブレッドボード or 低背ピンソケット
- ジャンパ線
以下のように配線します。ご自分で書き込み用のシールドを作成したり、有志が頒布しているISPシールドでもOKです。
ブレッドボードを使う場合:
DSdec基板のISP用ピンを使う場合(低背ピンソケットが別途必要):
Arduino UNOを選択します。
Arduino ISPのexampleスケッチを開く
Arduino ISPをArduino UNOに書き込む。Arduino UNOを、マイコンの書き込み器にするスケッチを書き込みます。
書き込みたいスケッチを開く。DSDCCDecoderなど、Desktop Stationページで公開されているスケッチや、ご自分で作ったデコーダスケッチを読み込ませます。
Arduino ISPを書き込み装置に選択する。書き込み装置をArduino ISPを書き込んだArduino UNOにするため、以下のようにArduino ISPを選択します。いろいろな機器で書き込み出来ますが、ここではArduino UNOを使うのが一番分かりやすいのでこうしております。
Arduino ISPの準備は、1度行えば良いものです。Arduino UNOに他のスケッチを書いていなければ後はここから始められます。 ブートローダーを書き込む。ブートローダーは実は使わないのですが、ヒューズビットの設定をしてもらうために、この作業をします。 この作業を忘れると、ちゃんと動きませんのでご注意ください。
書き込みたいスケッチを「書き込み装置」経由で書き込む。「マイコンボードにアップロード」ではなく、「書き込み装置経由でアップロード」です。こうすることで、ArduinoUNOではなく、ArduinoUNOに繋がったATMEGA328Pにスケッチを直接書き込み出来ます。
マイコンを抜き出して、DSdec R2の基板に差し込めば作業完了です。
CV設定
ご注意(CV書き込みについて)
Arduinoのブートローダをマイコンに書き込んでいる場合、ブートローダの起動時待機時間の影響で、市販のコントローラでは、車両に組み込んだ単体状態で動かす場合にCVが書き込めません。ブートローダ書き込みを行っている場合は、Desktop Stationハードウェアで書き込む場合は、R194以降のファームウェアが搭載された機器をお使いいただくことで単体でも書き込み可能です。 なお、Arduino ISP経由で書き込んだりしている場合は特に問題はありません。
初期化について
書き込むスケッチによって様々ですが、一番最初に使うときには初期化する必要があります。 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コンデンサを接続できる端子が用意されています。CAPと書かれた端子で、+と書かれたピンが+側です。 ダイオード(1N4007)と100~470Ω(1/2W)を用意していただき、+側の配線に挿入することで安全にコンデンサを使用できます。
コンデンサの容量: 1000uF以上、耐圧16V以上であること。推奨は、2200uF以上、耐圧25V以上です。
メーカー | 型番 | 仕様 | 直径 | 長さ | URL | 備考 |
---|---|---|---|---|---|---|
Panasonic | 4700μF50V 85℃ | 23mm | 35mm | url | サイズが大きくHOでも搭載は困難 | |
ケミコン | LXJ | 8200μF16V105℃ | 18mm | 40mm | url | 耐圧が最低限なので注意,容量が大きくkeep alive効果は絶大 |
ケミコン | LXJ | 2200μF35V105℃ | 16mm | 35mm | url | 容量的には問題なし。 |
ルビコン | PK | 1000μF25V85℃ | 10mm | 16mm | url | Nゲージ向きか |
仕様を見るポイントは以下の通りです。
温度:書いてある温度が高いほど、耐久性が良いです。熱くなりやすい環境で使っても劣化しにくいという意味になります。コンデンサは熱い環境だと劣化して性能が落ちる特性があるので、涼しい環境で使うことが望ましいです。
電圧:動作の限界の電圧値です。この電圧を少しでも超えると劣化して壊れるリスクがあります。産業用機器では、通常は耐圧を使用電圧の2倍以上をとります(安全率)。12Vで使うなら耐圧24V以上のもの、たとえば25Vや35V, 50Vなどを選びます。
時間:メーカーが保証する動作時間です。この時間が長いほど、耐久性に優れています。コンデンサは電子部品の中で一番寿命が短いので、この動作時間を目安に寿命設計するケースもあります。
原産国:寿命にセンシティブなコンデンサは日本製がベストです。チャレンジ精神に溢れる方は、中国製、台湾製などお選びください。
サウンド機能
DSdecには、スピーカーやアンプモジュールを追加することで、サウンド機能に対応できます。モータ用スケッチでは対応しておりませんが、ヘッドライト用デコーダースケッチの拡張版として、サウンド機能を搭載したものを公開しています。 標準では、E233系の電子警笛(2sec)およびブレーキ解除音の合計3種が入っています。手順に従って、入換えることができます。
詳細は、Sound Optionページをご覧ください。
規約
- 本サイトで頒布している回路データ、ガーバー、スケッチ(転載のNMRA DCCライブラリは除く)は著作権フリーです。改造、二次配布、販売など、ご自由にどうぞ。
- 回路図について、ミスなどのご指摘は修正いたしますが、原則、機能要望などは受け付けません。皆様の手で機能追加をお願いします。追加したら、アップロードしていろいろな方に頒布して、共有いただけると幸いです。
- Arduinoのソフトをベースにしています。GPL2ライセンスのライブラリ(NMRA DCC Library)を使用しておりますので、独自にソフトを作り、販売や頒布をされる場合はGPL2への抵触を考慮し十分にご注意ください。
- 本回路、サンプルスケッチ、頒布キットによって損害などが発生しましても補償いたしません。
ダウンロード(基板など)
基板の回路図、ガーバーデータなど一式は以下です。 回路図エディタは水魚堂様のBSCH、基板エディタはmbeを使用しております。
ファイル | バージョン | url | 備考 |
---|---|---|---|
Schematic for BSCH | R2 | first version | |
Layout for mbe | R2 | first version | |
Gerber file | R2 | available to upload to PCB manufacture. |
Download sketches for Arduino / ダウンロード(ファームウェア、スケッチ)
以下は、Arduino IDE用のポイントと機関車デコーダ等のソースコード(スケッチ)例や、DCCデコーダ機能のベースとなるNMRA DCCライブラリの転載(ミラー)です。
This decoder sketches are based on NMRA DCC library. Please install the library before use.
File | Version | url | Notes |
---|---|---|---|
Locomotive decoder sketch | R4 | download | Improve maximum speed stop problem. |
Locomotive decoder VVVF sketch | K3(2015/5/24) | download | Improved by Fujigaya-san |
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 |
サウンド関連スケッチはSound Optionを参照ください。
Sound related sketches are described in Sound Option
About distribution / 基板、キットの頒布
DCCデコーダーキットを頒布しております。
We distribute DCC decoder kit. The price is the following. International shipping is available.
- DCC decoder kit: DSdec R2 1000円/個 (9EUR/pcs)
- DCC decoder kit DSdec R2 with Sound kit 2000円/個(18EUR/pcs)
(超小型スピーカー、超小型アンプ基板、配線、各種ヘッダ、コンデンサ、E233スケッチ書き込み済ATMEGA328Pが付属します。)
(including micro speaker, micro amp module, wire, header and sockets, capacitor, programmed ATMEGA328P)
- 基板のみ 150円/枚
- 送料は200円/回
注文は、オーダーフォームかメールでどうぞ。
The order is available at the order page or mail.
サポートについて
価格を安価にするため、故障交換以外の直接のサポートは原則行いません。使い方の質問等は、ご自分で当ページを参考の上、対応をお願いします。
「説明や解説文書のここが分かりにくいから直した方がいい」といったアドバイスなどは歓迎いたします。
リンク
基板の発注方法
ここでは、管理人がよく使う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は不可)。
希望するようにデコーダーのソフトを作ってほしい
開発環境や、必要な資料はすべて掲載するようにしますので、本デコーダー用のソフトを改良・カスタマイズはご自分で対応ください。 なお、サポートとしてではなく、ビジネスとしてのご相談は別途承ることは可能です。
壊れました。無償で交換してください。
部品自体の初期不良は対応しますが、使って壊したものは無償交換できません。価格を安価にするため、故障対応などは最低限になります。 なお、故障の原因などをフィードバックして頂けるなど、開発に協力いただける場合は、協力のお礼としてデコーダキットを安価にご提供いたします。
メルクリンに使用できますか?
使用できますが、プロトコルはDCCとなります。DCCとMM2の両方を同時に混在して使用できるコマンドステーションをご利用下さい。 なお、Desktop Stationのハードウェア(DCC/MM2シールド, DSpi, DSmain)は混在利用が可能です。
電子工作は初心者ですが作れますか?
電子工作に詳しい方が近くにいれば、教わりながら勉強することで作ることは可能です。 学生向けの簡易キットレベルで難易度が低くなるように設計しておりますので、初めての方でも写真を見よう見真似で作って頂ければと思います。
電圧不足で稀に転換ミスとはどういう意味ですか?
本デコーダに使用しているブリッジダイオードは、Vf(電圧降下)が1.1V程度あります。よって、コマンドステーションのACアダプタからの供給電圧が12Vだと、10.9V程度に低下します。もちろん、電圧降下要因は他にも、コマンドステーション側のパワー半導体(トランジスタ)の抵抗と出力電流によるもの(オン電圧)、デコーダ内のモータドライバのオン電圧、線路の抵抗成分など、多岐に渡ります。よって、なるべくコマンドステーション側のACアダプタの電圧を少しだけ高くする(+1V程度)というのも対策として挙げられます。
電圧が低いと、ソレノイドやモータに十分な電流が流せなくなり、きちんと動かない場合もあります。ポイントデコーダのスケッチ例では、わざと電流を控えめにしているので、スケッチの修正で改善する場合もあります。また、Keep aliveコンデンサを挿入することで、改善する場合もあります。