Da Vinci 1.0AのRepetier化に失敗した... orz

 ※ この記事は、avr6502さんと、ふぁらおKJさんのスポンサードで公開されています。

 書き込みとベリファイは成功しているのだけど、起動してこないわぁ...  というわけで、以下、失敗の記録。

 はじめて使った3Dプリンタは、XYZprintingのDa Vinci 1.0Aだった。
 同じものを家にも導入して、使い始めたのは2015年あたりだろうか。
 精度がイマイチで、だいぶ古くなったので、現在はDelta型のプリンタを導入して、そちらをメインに使っている。
 手持ちのDa Vinci 1.0Aは、現在では販売も終わって、サプライ品が細々と供給されているだけである。
 フィラメントは未開封品がいくつか残っているので、そのまま放置するのももったいない。

 オープンソースのrepetierをベースにしたDa Vinci用のファームウエアを公開してくれている方がいるので、書き換えを試してみることにした。

 Da Vinciで使えるフィラメントは、ABSだけである。
 また、フィラメントカートリッジに独自のチップが内蔵されていて、専用のカートリッジしか使えない。そのカートリッジは、ちょっと割高になっている。
 というわけで、ほとんどゴミなので、もし改造に失敗して壊してしまっても、部品取りくらいの感じ。

 Da Vinci Firmware based on Repetier (0.92.10) Beta  https://github.com/luc-github/Repetier-Firmware-4-Davinci

 repetier Firmware 0.92をベースにしている。だいぶ古いw
 開発開始は5年前のタイムスタンプになっている。
 各ファイルのタイムスタンプを見ると、最近まで少しだけ更新されている。まだ、たまにメンテナンスはされているみたいな感じ。
 「Beta - so far so good」ということで、ほどほど使える感じか。
 元のファームウェアに戻す手段は提供されていない。

 対応プラットフォームは、Da Vinciシリーズの ・1.0/A ・2.0 single fan ・2.0/A dual fans ・AiO の4つ。  AiOについてはスキャナは完全には動作しないので、1.0/Aと同等レベルの対応になる。同じDa Vinciシリーズでも、PROやJrやMiniには対応していない。

 git cloneするほどでもないので、masterをzipでダウンロードする。右上の"Clone or Download"ボタンを押して、Download Zipを選ぶ。

 5.6MBくらいのzipファイルがダウンロードされる。展開すると、Dockerファイルとか入っている。使わないものも多いのだろうな。src/ArduinoDUE/Repetierがあるので、使うのはこれっぽい。その中にRepetier.inoも入っている。

 諸般の事情により、今回使用するArduino IDEは少し古い1.8.5になる。
 Da Vinci のメインボードは、Arduino DUE互換品。DUEのボード情報はデフォルトではインストールされていないので、ボードマネージャから追加する。
 ツール->ボード->ボードマネージャから、開いたウインドウでDUEで検索。

 "Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino"が見つかるので、インストールボタンを押してインストールする。インストールが終わったら、閉じるボタンで終わる。すると、ボードの選択肢にDUEが出てくる。

 ファイル->開くで、先程のRepetier.inoを指定すると、たくさんのタブを含んだウインドウが開く。

 とりあえず、ビルドだけしてみる。左上のチェックボタンを押してビルドテストをする。特に問題なくビルドできるようだ。

 ボードへのアクセスは、背面のトルクスネジ2本で固定されたバックパネルから行う。
 ネジサイズはT-10が適合した。わりとゆるいネジ止めで、ネジロックは使われていない。
 パネルは、少し引き出すと真ん中に爪が見えるのでそれを抑えながら取り外す。下に3ヶ所差し込みになっている部分があるので、破損しないように注意する。

 制御ボードには二種類あるようで、第1世代はJ1、第2世代はJ37をショートすることでArduino IDEから書き込み可能になる。
 ボードを眺める。結構広い基板だ。シルク印刷でF1.0 MB R4と書かれているので、第1世代のようだ。
 ジャンパ、どこやねん... AtmlのCPUの左下にJP1と書かれた部分が見える。これか。このボードでは、ショート用のピンは立ってないようだ。

 JP1をショートしてから電源を入れ、数秒してから切る。内臓ファームがリセットされる。再度電源を入れても、以前のように内部のLEDが点灯したり、液晶が明るくなったりしない。さようならダビンチ。

 ファームウェアの書き込みの際には、フィラメントカートリッジを抜いておく。差し込んだまま書き込みを行って、起動しなくなった人がいるようだ。

 ボードが判明したので、ソースコードの機種設定を変更しておく。機種判別は自動ではやってくれないようだ。
 Arduino IDEから、Configuration.hを開き、DAVINCI、MODEL、REPURPOSE_FAN_TO_COOL_EXTRUSIONSの3ヶ所を設定する。

#define DAVINCI 1// "0" if not DAVINCI, "1" For DAVINCI 1.0, "2" For DAVINCI 2.0 with 1 FAN, "3" For DAVINCI 2.0 with 2 FAN, 4 for AiO (WITH NO SCANNER SUPPORT)

 書かれているコメントに従うと、モデルは1になるので変更は必要がない。

#define MODEL  0//"0" for first generation (jumper JP1 to reset ) , "1" for new generation   (jumper J37 to reset)

 ボードはJP1でショートしたので、0のままで変更は必要がない。

#define REPURPOSE_FAN_TO_COOL_EXTRUSIONS 0 //Setting this to 1 will repurpose the main Extruder cooling fan to be controlled VIA M106/M107
                                           //Warning: for DaVinci 1.0 need to add a permanent fan with power supply to cool extruder

 これは...
 g-codeのM106とM107でエクストルーダーのファンが制御できるオプション。
 Da Vinci 1.0は、エクストルーダーのファンを別に付ける必要があるような記述だな。とりあえず1にしておく。

 USBケーブルをMacに差し込み、シリアルポートを確認する。/dev/cu.usbmodem1421というのが生えているので指定する。
 ボード情報を取得してみるが、不明なボードと出るだけ。

	BN: 不明なボード
	VID: 03EB
	PID: 6124
	SN: 取得するには任意のスケッチをアップロードしてください

 書き込み。
 「ボードへの書き込みが完了しました。」と出れば書き込みは成功。
 自動でリブートはしないようだ。
 一度電源を切って、起動してみる。
 起動してこない...
 シリアルポートも上がってこない...
 終わったw

 もっかい、ジャンパリセットしてみる。
 おっと、シリアルが生えてきた。
 再度書き込み。

(snip)
[==============================] 100% (837/837 pages)
Verify successful
done in 12.748 seconds
Set boot flash true
readWord(addr=0x400e0a08)=0x1
readWord(addr=0x400e0c08)=0x1
writeWord(addr=0x400e0a04,value=0x5a00010b)
readWord(addr=0x400e0a08)=0x1
readWord(addr=0x400e0c08)=0x1
CPU reset.
readWord(addr=0)=0x20088000
readWord(addr=0xe000ed00)=0x412fc230
readWord(addr=0x400e0740)=0
readWord(addr=0x400e0940)=0x285e0a60
writeWord(addr=0x400e1a00,value=0xa500000d)

ダメか...
シリアルポートは見えないので、リセットはしたのかも。

ボードを1.6.8にしてみる。現在は1.6.12。
ダメ。

さようならダビンチ。

実は、同じものをもう一台持っているのだがw

つづく(かもしれない)

オリジナル投稿:
Da Vinci 1.0AのRepetier化に失敗した... orz|kinneko|pixivFANBOX
https://kinneko.fanbox.cc/posts/615646