目次
ファームウェア更新方法 (Arduino版)
このページでは、サークル「MT40」で頒布している、「Nゲージ向けDCCデコーダ (第二世代)」のファームウェアを更新する方法についてご案内しております。
これ以外の機種の場合は、該当の機種のページをご参照ください。
この手順書では、Arduino IDEを用いて書き換えを行う方法の案内となります。
これ以外の方法で書き換えを行う場合は、該当の方法の更新方法をご確認ください。
はじめに
この手順では、デコーダとは別に用意したArduinoにjtag2updiを書き込み、AVRライターとして使用することで、ファームウェアのアップデートを行います。
デコーダに書き込むスケッチは、書き換え対象のデコーダ機種を確認したうえで適切なものをダウンロードしてください。
デコーダの型番 | 対応するスケッチ |
---|---|
K3066RA | motordecoder2-arduino-v1.0.5.zip |
K3057RA | |
K3057RA-S | |
K7012RA | |
T-EC215RA | |
M02F0RA | |
M02F7RA | |
K3057-T | funcdecoder2-arduino-v1.0.5.zip |
K3057-ST | |
T-EC215Tc | |
T-EC215F |
更新に必要なもの
ファームウェア更新を行うために必要となるものは、下記となります。
Arduino
マイコンへの書き込み機として、Arduinoを使用します。
(jtag2updiを書き込んで使用します)
この手順でプログラムを書き換えますので、スケッチを消去してもよいものをご用意ください。
互換機等でも対応可能であると思われます。
ArduinoをAVRライターにする
デコーダ側のプログラムポートの確認
デコーダの各機種ごとに、プログラムポートの位置と配線の向きを確認してください。
どの機種も1.27mmピッチとなっておりますので、1.27mmピッチピンヘッダを使ったケーブルを作成すればより確実に書き込みを行うことができます。
配線方法
DCCデコーダ基板のPROG端子の「GND」を、Arduinoの「GND」端子にジャンプワイヤで接続します。
PROG端子の「UPDI」は、4.7kΩの抵抗器を介して、Arduinoの「#6」端子 (Digital #6) に接続します。
線路電源の端子については、ワニ口クリップで線路電源 (コマンドステーション出力やDC12V) 、またはArduino上から供給する+5V電源に接続します。
もっとも単純な接続事例を下記写真で示しますので、参考にしてください。
接続時の注意点
- PROG端子に接続するワイヤと、デコーダ上のPROG端子以外の接点と接触していないことをかならず確認してから通電を開始してください。
PROG端子と関係のない端子が電気的に接触している場合、高確率でデコーダが焼損します。
(特にRail+、Rail-、12Vに接触した場合はほぼ確実に焼損します) - PROG端子に接続するワイヤ2本 (GND、UPDI) 同士が接触している場合は、ファームウェアの書き込みはできませんが焼損はしません。 安心して配線を確認後、書き込み操作をやり直してください。
K3057シリーズで接続される場合の注意
K3057シリーズは構造上、線路端子の裏側に別のパターンが存在しており、そのままワニ口クリップで基板を挟むとはんだレジストが損傷し、意図せず短絡してデコーダ焼損が発生するケースがあります。
そのため、下記例のように適当な厚紙やプラ板などを挟み、線路端子の反対側を保護するように接続してください。
Arduino IDEへボード情報を追加する
先ほど用意したスケッチをビルド・書き込みできるようにするため、Arduino IDEにボード情報を追加します。
megaTinyCoreを使用し、ATtiny1606 / ATtiny806に対応したバイナリのビルド・書き込みを行えるようにします。
megaTinyCoreの追加方法
ボードマネージャのURL追加
ファイル → 環境設定と開き、「追加のボードマネージャのURL」に、「http://drazzy.com/package_drazzy.com_index.json」を入力します。
ボード情報のインストール
MacOSをお使いの場合
一部のメニュー表示が異なります。
Arduino → Preferencesを開くと、環境設定が開きます。
また、2021/7/4現在、最新版のmegaTinyCore (2.3.2)でスケッチの書き込みを行おうとすると、EEPROM関連のライブラリでエラーとなり先に進めない不具合がありますので、バージョン2.2.9を選択してインストールを行ってください。
ファームウェアの準備
こちらのページから、使用しているデコーダに適合するスケッチをダウンロードしてください。
現在の最新バージョン: Version 2021.07.02v2 (v1.0.2)
デコーダの型番 | 対応するスケッチ |
---|---|
K3066RA | motordecoder2 |
K3057RA | |
K3057RA-S | |
K3057-T | funcdecoder2 |
K3057-ST |
zipファイルを展開すると、中にinoファイルが入っていますのでこれをArduino IDEで開きます。
ボードの設定
Arduino IDE側の書き込み設定を、デコーダに搭載されているマイコンに合わせます。
設定が下の表および画像と同じになるように変更します。
設定名 | 設定内容 |
---|---|
ボード | ATtiny3226/3216/1626/1616/1606/826/816/806/426/416/406 (ツール → ボード → megaTinyCore) |
Chip or Board | ATtiny1606 (motordecoder2の場合) ATtiny806 (funcdecoder2の場合) |
Clock | 20MHz internal |
millis()/micros() Timer | Enabled (default timer) |
Startup Time | 8ms 64ms ※どちらでも動きます。 |
BOD Voltage Level | 1.8V (5 MHz or less) |
BOD Mode when Active/Sleeping | Enabled/Sampled (1 kHz) |
Save EEPROM | EEPROM not retained |
UPDI/Reset Pin Function | UPDI (no reset pin) |
Voltage Baud Correction | Ignore (saves flash, almost always fine) |