目次

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.

News! スマイルデコーダ シリーズを2016年4月よりリリースしました。
News! ぬっきぃさんのワンコインデコーダはさらに安いです!(300円~!)

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsdecr2_soundintegrated-thumbnail2.jpg

Features / 特徴

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 / 回路図、レイアウト

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsdecr2_2.jpg

幅(Width): 12mm
高さ(Height): 11mm
奥行き(Depth): 70mm

Size comparison / サイズ比較

buin2gou.sakura.ne.jp_sblo_files_powerele_image_ds_dccdecoder_usbserialcable2-thumbnail2.jpg

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsdecr2_compare001-thumbnail2.jpg

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsdecr2_compare002-thumbnail2.jpg

How to solder / 組み立て方法

・表面実装部品から先に!
Solder SMD parts first!

背の低いものから半田付けがセオリーです。100円ショップで売っているクランプ(洗濯バサミのようなもの)があると、表面実装部品を簡単に固定できて半田付けの際に便利です。なお、洗濯バサミでも代用可能。

buin2gou.sakura.ne.jp_sblo_files_powerele_image_ds_dccdecoder_05.jpg

・表面実装部品 BD6213F-E2について
About BD6213F-E2 Motor driver IC.

表面実装なので、半田付けが大変です。ピンセットと、細いコテ先の半田ごてと、0.3~0.4mmΦの細い半田を使うと、だいぶ違います。半田付け手順としては、まず1番ピンに少々の半田を流してやり、ピンセットでICを乗せて保持したまま、半田ごてを当てて1番ピンを固定します。固定したら、他のピンを順番に半田付けします。

なお、以下のようにピンが浮いてしまう場合があります。この場合、モータなどに正常に電流が流れませんので、半田付けをやり直してください。

buin2gou.sakura.ne.jp_sblo_files_powerele_image_ds_dccdecoder_06.jpg

・抵抗、コンデンサー
Resistor, Capacitor

極性はありません。部品番号を間違えないように半田付けしてください。

・ダイオード
Diode

極性があります。写真を見ながら方向に注意して半田付けしてください。 間違えると最悪、ショートして故障します。

・セラロック
ceramic resonator

極性はありません。

* ATMEGA328P

基板のシルク印刷を見て方向を間違えないようにしてください。 最悪、マイコンが故障します。

・レギュレータ

基板のシルク印刷を見て方向を間違えないようにしてください。

絶縁処理

熱収縮チューブを使うことで、簡単に絶縁処理が行えます。機関車への搭載の際に便利です。

熱収縮チューブをおいた状態:
buin2gou.sakura.ne.jp_sblo_files_powerele_image_ds_dccdecoder_tube1-thumbnail2.jpg

ドライヤーで収縮させた状態(完成):
buin2gou.sakura.ne.jp_sblo_files_powerele_image_ds_dccdecoder_tube2-thumbnail2.jpg

Wiring example / 配線例

機関車用: (for locomotives)
IN: 線路から2本を配線 (from Rail)
OUT: P モーターの+、N モーターの-, (Motor's positive pin and negative pin.)

buin2gou.sakura.ne.jp_sblo_files_powerele_image_e231ho_12-thumbnail2.jpg

ポイント: (for turnouts)
IN: 線路から2本を配線 (from Rail)
OUT: P 赤(red), N 黒(black)

buin2gou.sakura.ne.jp_sblo_files_powerele_image_ds_dccdecoder_01-thumbnail2.jpg

Arduinoでの使い方

ライブラリのインストール

NMRA DCC Libraryを使用します。ZIPファイル内のNmraDccフォルダをフォルダごとArduino IDEのLibrariesフォルダにコピーしてください。本回路基板は、このライブラリのExampleをそのままベースとして使用できますが、以下の点にご注意ください。
Use NMRA DCC library. Unzip it and copy them to Arduino IDE's library folder. This board can use this example sketch including in this library.But please note the followings.

// Dcc.pinのパラメータ:外部割込み0、DCC入力ピンはD2、入力プルアップ禁止
Dcc.pin(0, 2, 0);
  
// DCC初期化・動作有効化関数。以下のいずれかを選んで設定してください。
//アクセサリモード(機関車モードでない) In case of Accessory mode(Not locomotive mode)
Dcc.init( MAN_ID_DIY, 100,   FLAGS_DCC_ACCESSORY_DECODER , 0 ); 

//※機関車モードの場合は以下の処理を記載 In case of Locomotive mode
Dcc.init( MAN_ID_DIY, 100,   0 , 0 ); 

Uploading procedure / 書き込み手順

If you are DSdec R1 user, please see Arduino.cc procedure page.

以下のものを用意します。
Prepare the following parts.

以下のように配線します。ご自分で書き込み用のシールドを作成したり、有志が頒布しているISPシールドでもOKです。
Please connect the following wire. You can use an ISP shield.

ブレッドボードを使う場合:
In case of using breadboard

DSdec基板のISP用ピンを使う場合(低背ピンソケットが別途必要):
In case of using low profile pin socket

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsdecr2_arduinoisp_pins.jpg

Arduino UNOを選択します。
Select Arduino Uno.

Arduino ISPのexampleスケッチを開く
Open Arduino ISP example sketch.

Arduino ISPをArduino UNOに書き込む。Arduino UNOを、マイコンの書き込み器にするスケッチを書き込みます。
Upload Arduino ISP sketch to Arduino UNO.

書き込みたいスケッチを開く。DSDCCDecoderなど、Desktop Stationページで公開されているスケッチや、ご自分で作ったデコーダスケッチを読み込ませます。
Open your sketch.

Arduino ISPを書き込み装置に選択する。書き込み装置をArduino ISPを書き込んだArduino UNOにするため、以下のようにArduino ISPを選択します。いろいろな機器で書き込み出来ますが、ここではArduino UNOを使うのが一番分かりやすいのでこうしております。
Select Arduino ISP as programming device.

Arduino ISPの準備は、1度行えば良いものです。Arduino UNOに他のスケッチを書いていなければ後はここから始められます。 ブートローダーを書き込む。ブートローダーは実は使わないのですが、ヒューズビットの設定をしてもらうために、この作業をします。 この作業を忘れると、ちゃんと動きませんのでご注意ください。
You only prepare Arduino ISP once.

書き込みたいスケッチを「書き込み装置」経由で書き込む。「マイコンボードにアップロード」ではなく、「書き込み装置経由でアップロード」です。こうすることで、ArduinoUNOではなく、ArduinoUNOに繋がったATMEGA328Pにスケッチを直接書き込み出来ます。
Write the sketch via programming tool. Do not use upload.

マイコンを抜き出して、DSdec R2の基板に差し込めば作業完了です。
Unplug ATMEGA328P chip and plug it to DSdec R2 board.

CV設定

Note for CV write / ご注意(CV書き込みについて)

Arduinoのブートローダをマイコンに書き込んでいる場合、ブートローダの起動時待機時間の影響で、市販のコントローラでは、車両に組み込んだ単体状態で動かす場合にCVが書き込めません。ブートローダ書き込みを行っている場合は、Desktop Stationハードウェアで書き込む場合は、R194以降のファームウェアが搭載された機器をお使いいただくことで単体でも書き込み可能です。 なお、Arduino ISP経由で書き込んだりしている場合は特に問題はありません。

If you programmed Arduino's bootloader to ATMEGA328P, almost every command stations can't write CV because the bootloader prevents to CV write procedure. Then you need Desktop Station and Desktop Station Hardware with R194 or later.

Factory default / 初期化について

書き込むスケッチによって様々ですが、一番最初に使うときには初期化する必要があります。
Factory default initialization is required.

EEPROMの値は、初期は不定です。初めて使用する際は必ず、CV8に1を書き込んでリセットしましょう。なお、条件によってはうまくCVが書き込めない場合もあります。何度か試すか、配線を見直してください。
First time, write 1 to CV8.

※注意!※ アドレスなどはDCCの標準仕様に準拠していますが、モーター調整系のパラメータの値の解釈は独自にしています。他のデコーダーとは異なる仕様なのでお気をつけください。

Locomotive decoder / 機関車デコーダの場合

・アドレス設定 Address configuration

最初にCV8に1を書き込むと初期化するようにできています。アドレスは、CV1 (Shortアドレス)とCV17, CV18(Longアドレス)の2通りです。CV29でShort/Longアドレス設定切り替えが出来ます。詳しくはCVの仕様書を確認ください。
CV1 is short address value. CV17 and CV18 is long address values. A flah of CV29 can select short address and long address. This specification is same as NMRA DCC CV specification.

・モーターの調整 Motor configuration

CV2が始動電圧(0-255, 255が100%の電圧という意味、デフォルトは16。)、CV3が滑らかにするレート(0-255、0は滑らかにしない。数字を大きくするほど、速度が変わったときになだらかに変わります。デフォルトは32。)で使用します。CV4は現状は未使用で、内部ではCV3と同じ値を使うようにしています。
CV2 is start voltage value. 255 equals 100 percents speed value. Default is 16. CV3 is smooth ratio. Large number means more smoothly. default value is 32. CV4 is not assigned.

なお、繋がるモーターは千差万別です。たとえば、FK-130SH(マブチ, DC12V標準)の場合は1.2V前後が始動電圧です。12Vが最大として、線路の抵抗やデコーダの内部回路の抵抗を考慮して-1Vととすると、11Vを最大値とします。このとき、始動電圧を比であらわすと、1.2V/11V=0.109です。これに255をかけると、27.8となります。四捨五入すると28となり、この値をCV2に入れると、速度を1としたとき始動電圧1.2Vでモーターを動かす制御を行います。モーターや、ギア、車両の重さなどによって始動電圧は異なりますので、何ボルトで回るかおおよその目安を考えて設定してください。

Accessory(Turnout) decoder / アクセサリデコーダの場合

CV1(LSB)とCV9(MSB)がアドレス設定用です。
CV1(LSB) and CV9(MSB) means turnout address value.

CV9は0、CV1を1とすると、初期値(アクセサリアドレス1)となります。CV1に10と書き込むと、アクセサリアドレスは10になります。CV9は上位ビットをあらわすので、255超の場合はCV9に上位ビット分を書き込んでください。
If CV9 sets 0 and CV1 sets 1, turnout address means 1. If you want to set the address 255 or more, you need to write CV9 the upper bit value.

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などを選びます。
時間:メーカーが保証する動作時間です。この時間が長いほど、耐久性に優れています。コンデンサは電子部品の中で一番寿命が短いので、この動作時間を目安に寿命設計するケースもあります。
原産国:寿命にセンシティブなコンデンサは日本製がベストです。チャレンジ精神に溢れる方は、中国製、台湾製などお選びください。

Sound option / サウンド機能

DSdecには、スピーカーやアンプモジュールを追加することで、サウンド機能に対応できます。モータ用スケッチでは対応しておりませんが、ヘッドライト用デコーダースケッチの拡張版として、サウンド機能を搭載したものを公開しています。 標準では、E233系の電子警笛(2sec)およびブレーキ解除音の合計3種が入っています。手順に従って、入換えることができます。
DSdec R2 can add sound function. We distribute some locomotive's sounds example. Please check Sound Option page.

buin2gou.sakura.ne.jp_sblo_files_powerele_image_dsdec_sound-thumbnail2.jpg

詳細は、Sound Optionページをご覧ください。

規約

ダウンロード(基板など)

基板の回路図、ガーバーデータなど一式は以下です。 回路図エディタは水魚堂様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.

2015年7月21日をもって、DSdecR2, SoundOptionの頒布は終了しました。

サポートについて

価格を安価にするため、故障交換以外の直接のサポートは原則行いません。使い方の質問等は、ご自分で当ページを参考の上、対応をお願いします。

「説明や解説文書のここが分かりにくいから直した方がいい」といったアドバイスなどは歓迎いたします。

連絡・注文先:

リンク

基板の発注方法

ここでは、管理人がよく使うelecrowでの基板発注方法を解説します。

  1. ガーバーデータ(Gerber file)をダウンロードします。
  2. elecrowサイトを開き、お好みの基板のタイプを選びます。たとえば、100x100mm(max), 11.9USDの商品がお勧めですが、予算や基板の使用枚数に合わせて選択ください。
  3. 厚み、色などはお好みでお選びください。一般的には、厚み1.6mm、色は緑です。
  4. Surface finishは、Hasl(Lead free)で構いません。
  5. Panelizingは2-5copyを選びます。基板が小さいため、面付けと呼ばれる余ったスペースに同じ基板を埋めるオプションを足します。うまくいくと(elecrowのさじ加減)、1pcsに5枚分を面付けしてもらえ、合計の基板枚数が5倍に増えます。
  6. Fileに、当ページでダウンロードしたガーバーファイルをそのまま指定します。
  7. 住所、クレジットカード(安全面から、paypalをお持ちならpaypalがよいです。)、郵送方法を指定してオーダーします。
  8. 通常、3週間~1か月ほどでお手元に届きます。中国の長期休暇などが重なると、延びるケースが多いです。

基板のオーダー方法はいろいろなサイトで紹介されています。

よくある質問

Nゲージに対応ですか?

電気的には問題ありませんが、サイズの関係上、車両に入らないケースがほとんどです。
車両以外にお使いください。なお、車両に使うなという意味ではないので、がんばって入れて動かすのもアリです。

wikiの説明がよく分かりません

申し訳ありませんが、分かりにくい部分をご指摘ください。文章を修正します。

○○という製品に組み込めますか?対応ですか?

各メーカーによって、製品の作りは異なります。全てのメーカーをこちら側で検証してサポートすることは困難ですので、ご自分でチャレンジをお願いします。なお、チャレンジ結果は、情報共有するためにご報告いただけると幸いです。

なお、有志の情報などは以下の通りです。順次、追加していきます。

NEM 8pinに対応ですか?

自分で配線して作れば対応できます。こちらではコネクタや配線などの提供はありません。

キットを安くしてほしい

キット等は、諸経費・故障対応費を足した金額になってます。
基板、購入先リンクはすべて掲載済みです。部品価格の関係上、これ以上価格を下げられません。
ご自分で手配すると原価で買えますが、送料などを加味すると少量ではトータルコストはあまり変わらないと思われます。

海外発送可能ですか?

可能です。ただし、初期不良の場合は、代品をSAL便でお送りすることになります(EMSは不可)。

希望するようにデコーダーのソフトを作ってほしい

開発環境や、必要な資料はすべて掲載するようにしますので、本デコーダー用のソフトを改良・カスタマイズはご自分で対応ください。 なお、サポートとしてではなく、ビジネスとしてのご相談は別途承ることは可能です。

壊れました。無償で交換してください。

部品自体の初期不良は対応しますが、使って壊したものは無償交換できません。価格を安価にするため、故障対応などは最低限になります。 なお、故障の原因などをフィードバックして頂けるなど、開発に協力いただける場合は、協力のお礼としてデコーダキットを安価にご提供いたします。

メルクリンに使用できますか?

使用できますが、プロトコルはDCCとなります。DCCとMM2の両方を同時に混在して使用できるコマンドステーションをご利用下さい。 なお、Desktop Stationのハードウェア(DCC/MM2シールド, DSpi, DSmain)は混在利用が可能です。

電子工作は初心者ですが作れますか?

電子工作に詳しい方が近くにいれば、教わりながら勉強することで作ることは可能です。 学生向けの簡易キットレベルで難易度が低くなるように設計しておりますので、初めての方でも写真を見よう見真似で作って頂ければと思います。

電圧不足で稀に転換ミスとはどういう意味ですか?

本デコーダに使用しているブリッジダイオードは、Vf(電圧降下)が1.1V程度あります。よって、コマンドステーションのACアダプタからの供給電圧が12Vだと、10.9V程度に低下します。もちろん、電圧降下要因は他にも、コマンドステーション側のパワー半導体(トランジスタ)の抵抗と出力電流によるもの(オン電圧)、デコーダ内のモータドライバのオン電圧、線路の抵抗成分など、多岐に渡ります。よって、なるべくコマンドステーション側のACアダプタの電圧を少しだけ高くする(+1V程度)というのも対策として挙げられます。

電圧が低いと、ソレノイドやモータに十分な電流が流せなくなり、きちんと動かない場合もあります。ポイントデコーダのスケッチ例では、わざと電流を控えめにしているので、スケッチの修正で改善する場合もあります。また、Keep aliveコンデンサを挿入することで、改善する場合もあります。