2017年8月19日土曜日

小型工作機CNC2418 その26(ATmega328P-AU交換)

数々の難関(失敗とも言う)を乗り越え
やっとシリーズ最終回にたどり着きました。
前回、ATmega328P-AU単体にブートローダーを書き込めたので
この前、GRBL v1.1f Upgradeに失敗してチップが死んだ
「もう1枚のWoodpecker」に載せ替えです。

ここまでくれば、すんなり行くと思ったら
またトラブルで長くなってしまいました。
まあ、トラブルは、後で読み返すとそれなりに面白いのですが。

まず、壊れているチップを外しに掛かります。
丁度、交換後のギターの弦がありました。
錆びているのでハンダが付かなくてよさそうです。
3弦 .016ゲージの径0.4mmです。
これをチップの両側のピンの下に通します。
ハンダゴテで熱してチップを引き上げて外すためです。
もう少し上手く取る方法があればいいのですが。
先に作っていたハンダゴテの先っぽ
この様に当てて外すつもりです。
100Wのハンダゴテに装着します。
このハンダゴテで熱しながら
ロングノーズプライヤをワイヤーに引っ掛けて
持ち上げて外そうかなあと。
外れました。
が、熱が強すぎたか、コテの当て方が悪かったのか
無残な姿に。(T_T)
TQFPアダプタシールドを使って
チップ単体で書込み修復できないかとも思っていましたが
完全に逝かれました。
Woodpeckerのランドに残ったハンダ跡が汚い、
パターンは大丈夫だろうか?
ハンダ吸取線でランド部のハンダを除去します。
綺麗になりました。
パターンの損傷はなく、ほっと一息。
マイクロスコープ画像4枚の合成です。
スルーホールの穴のハンダも取れています。
次は、ソルダーペーストを塗るマスク作りにいきます。
ランドに合わせて薄く塗るためです。
このPDFを見ていると
ピッチ 0.8mmでは、
150~200μm辺りがいいようです。
出典:KOKI COMPANY LIMITED
通常、メタルマスクというので金属で作るのでしょうが
レーザーでカットするしかなさそうなので
必然的に紙を使うことになります。
ハガキが頭に浮かびました。
マイクロメーターで測ると 220μm
よ~し、ハガキでいきましょう。

ATmega328P-AUの仕様書で外径寸法を見ると
実は、このマイクロスコープの付属品に

これが入っていました。
最小目盛0.1mmのスケールです。
名刺サイズです。
これでATmega328P-AUを実測します。
ピッチ:0.8mm
ピン幅:0.4mm - スケールの線幅 ⇒ 0.37mm位かな。
仕様書のBのセンター値は、単純計算で0.375mm。
全幅は、仕様書D、Eのmax値 9.25mmより広いです。
アダプタソケットに装着する時に
ピンを整形したので全幅は広くなっています。
Woodpeckerのランドをノギスで測ったりして
マスクのサイズは、これにします。
・D、E:11mm
・D1、E1:8mm
・e:0.8mm
・B:0.4mm

Fusion360でマスクを描きます。
一応、厚み0.5mmでモデルを作りました。
両端の穴は、周辺の水晶発振子などを避けるためです。
Fusion360 CAMの[切削]アイコンを初めて使います。
”レーザー”とあります。
移動の時にレーザーをON/OFFしてくれるはずです。
工具はタイプ:レーザーカッターで作ります。
「ノズルクリアランスの直径」は説明を調べることができず
適当に小さな値を入れています。
シミュレーションをしてみます。
移動の所でレーザーがOFFになっています。
これはいいですね~。
動画で
所が、ポスト処理でGcodeを吐出そうとすると
エディタ:BRAKETSのウインドウが出てきますが
エラーがでました。
 ”ファイルを開く時にエラーが発生しました。
 ”・・・UTF-8でエンコードされたファイルのみです・・・
と表示され、その他は何も見れません。
試しに同じものを[2D]-[輪郭]で
0.6mmエンドミルにしてポスト処理すると
エラーはでずGcodeはちゃんとできます。

ここにUTF-8...の対策用ファイルがあったので試してみます。
このファイルを保存します。
「brackets-shizimily-multiencoding-master.zip ‏1804 KB」
Brackets の [ ファイル ] > [ 拡張機能マネージャー ] にて
インストールします。
Bracketsの下の方に
「.zipをここにドラッグするか、URLからインストール...」が
あるので
(出ない場合は、Brackets自体のウインドウの縦幅を広げます)
AUTODESKの参考サイトの説明の通りに
ダウンロードしたzipファイルをドラッグします。
インストール成功とでました。
一旦、Bracketsを終了して、再度、ポスト処理します。

エラーの表示は消えましたが、Gcodeはできず
代わりにログが表示されました。
中を見ていくと
何と
"Error: Waterjet, laser, and plasma cutting toolpath is not supported by the post configuration."
とあります。
う~残念。(T_T)」
まだ、この[切削]アイコンは使えないのですね。
シミュレーションうまく行ったので期待したのですが...
しかたないので、いつもの切削でGcode吐き出して
Z軸が退避移動する箇所を探して
レーザーOFF/ONを手動で編集することにします。
[2D]-[輪郭]で
工具は、レーザーとして作ってた、これを使います。
そうすると今度はこんなエラーが!
どうやら[2D]-[輪郭]では
工具にレーザーカッターが使えないのです。
結局
擬似的に直径0.1mmの小さいエンドミルを作ります。
設定はこれです。
1000rpmで100%なので
レーザーパワー 10%
5.5Wの10%で50mWです。
以前に厚紙をカットした時の設定
今回は、0.22mmなので1回でカットできるはずです。
Z軸は動かない方がいいので
全て「0」にします。
で、この黄色の退避の所に
スピンドルOFF、スピンドルONを追加していきます。
黄色の退避のツールパスは
ここの[セーフ距離]2mmになっているので
上に退避しています。
0mmにしても警告が出るだけでGcodeは作れますが
そのままにしています。
できたGcodeをメモ帳で開きます。
中身を眺めて、レーザー加工用に編集します。
メモ帳の置換コマンドは使いますが...
スマートじゃないですね~
**********
パワー設定、ON
S100 M3 ーー→ S100 M5

G54
M9

Z軸ぞのままで開始点に移動
G0 X-5.3 Y0.55
Z軸 セーフ高さ
Z2 ーー→ Z0

切削移動命令、Z軸を下げF300で切削開始
G1 Z-0.5 F300 ーー→ F300 M3 G1
四角を切削
X-5.45
Y0.25
X-4.05
Y0.55
X-5.3


Z軸 送り高さへ
G0 Z2 ーー→ M5 G0
次の切削開始位置へ
Y1.05
G1切削命令、Z軸を下げF300で切削開始
G1 Z-0.5 F300 ーー→ F300 M3 G1

四角を切削
X-4.05
Y1.35
X-5.45
Y1.05
X-5.3

以降、①~②の繰り返し

Z軸 退避高さへ
G0 Z0 ーー→ M5
M9
M30
**********
Candle v1.1.7に読み込みます。
まずは練習、壁掛けカレンダーでやってみます。
スパナは押さえの重しです。
レーザーパワー 0.5% 28mWで焦点調整します。
見学者が来てもいいように赤ゴーグルは3つあります!
焦げ過ぎで~す。
S50のパワー5%でも強すぎ。
随分前に0.75mm厚紙を0.25mmずつ3回で切った時と
明らかに違う感覚です。
おかしいですね~
同じS値でもv1.1fでは、明らかにレーザーが強くなっています。
v1.1fで追加された新規の項目
$32 - Laser mode, booleanに関係しているのかもです。
詳しくは、GRBL laser documentation にあるのですが
英語なのでまだ読んでいないのです。
その内、調べる必要がありそうです。
Candle上で
GcodeをS100 → S20に変更します。
Candleは、Command表示部で
直接編集することができるので便利です。
S100 → S20、弱すぎました。
色々条件を変えるも失敗続き
右上の方にも残骸だらけ...
実は、何故か途中で止まるのです。
RESETスイッチ押さないと復活しないのです。
すんなり行くはずだったのに、ここでつまづくとは予想外です。
長くなるので詳しくは調査していませんが
GRBL 0.9jに戻すと止まらず最後までできるのです。
GRBL 1.1fにするとやっぱり途中で止まります。
波形は見ていませんが
同じS値で、パワーは、0.9j→1.1fでほぼ倍の感じです。
これが落ち着いたらじっくり腰を落ち着けて調査しなければ。
取り敢えず、ちょっと材料を変えてみます。
丁度、目についたファディの広告DMハガキ
3つ折りで中は薄いビニールコーティングの
あの剥がす時、気持ちいいやつです。
そうすると
止まらずに最後まで完走したのです。
なぜカレンダー用紙だけ途中で止まるのか非常に不可解です。

DMハガキです。
動画で。
最後の方でエラーが出て、切る位置がズレてしまってます。
途中で止まる程のエラーはありませんが
これもエラーがでていました。
何故か、DMハガキでは、この時以外は、エラーはでていません。
パワーを下げたいのですが
S35より小さいとレーザー出力が不安定になり
スポットサイズが変化して安定しません。
これも調べるのは別の機会にして
仕方ないので
S40でスピードをどんどん上げていきます。
さすがにOverridingの可変範囲200%maxを超えているので
メモ帳でFxxxを一括置換で編集します。

S40 F1000(真中の)
でようやくいい感じになってきました。
これがそのDMハガキです。厚み110μm。
ちなみに11日の冷凍ハンバーグ、安くて美味しいんです!
赤丸の上か、下か良さそうです。
左右は、F500やF800で穴が焦げて繋がっています。
下側の拡大
S40 F1000
ちょっと穴が大きい所があります。
マイクロスコープ画像の4枚合成です。
上側の拡大
S40 F1500
かなり綺麗になりました。
エンドミルの切削ではここまで速くすることは
まずあり得ませんが
F1000とF1500では、
明らかに違うのでステッピングモーターは追従しているようです。
$110=2000 (x max rate, mm/min)
$111=2000 (y max rate, mm/min)
にしています。
更に拡大
短辺の幅:0.4mのハズですが
真中に島が残っているのからして
切削代(このスピードでのスポット径という所ですか)を推定すると
0.1mm位ですね。
一方、明らかに一時的に切削代が大きくなっている所があります。
S30とかパワーを落とすと
目視でスポット径が変わっているのがわかるのです。
S40でも頻度は少ないですが発生しているということです。
理由はわかりません。
ドライバーが悪いのだろうか??
予定より薄いけど、これでやってみることにします。
チップを乗せてみます。
いいかも!
拡大
ん~ん、いいですねー
かなり良い精度です。
これに決定!
レーザーなかったら到底無理でした。
この設定で元のカレンダーでやってみますが
まだ、強すぎるし、やはり途中で止まります。
何が違いに影響しているのだろうか?
このビニールコーティングされた紙がいいのは何故?不思議です。
ただ、厚みが、110μmです。
薄すぎるかも、というのが心配事であります。
さて、初めて使うソルダーペースト、
新品ですが、買ってから3年は経っています。
開けると
ありゃー!干乾びて固まっています。
ソルダーペーストは「生物なので冷蔵庫で保管!」なのですね~
開けたら早く使わないといけないとか...
今頃知りました。
どうしたもんかと、表面を突いてみると
表面だけで中は固まっていません。
何とか使えそうです。
PCBの切れ端とペインティングナイフです。
TQFPアダプタシールドの基板を取り出した余りです。
ペインティングナイフは、
美大出身の方にいただいたもので
厚み0.15mm、とても薄くてしなやかです。
KOTELYZERです。
ガスライターの補充用ガスを使います。
これは、ホットブローを装着しています。
ハンダゴテチップ装備にすると
調子が悪く、すぐに火が消えることが多いので
眠っており存在を忘れておりました。
結構高かった記憶が。
チップ取る時もこれにしていたら...
ペインティングナイフの先にすこ~し(米粒くらい)
ソルダーペーストを乗せます。
紙マスクをセロテープで固定しています。
練習なので紙マスクも部分的に失敗のものです。
一発目!
ムラが多すぎました。
次はこれ
ちょっと多すぎるかな~?
試しにホットブローしてみます。
やはりダンゴになりました。
今度は、かなり薄く塗りました。
これが手技の限界か?
一部ボールになっていますが
汚れのせいでしょう。
これくらい薄くていいようです 。
チップのピンがあるので
これくらいで大丈夫かと思われます。
マスクの厚み100μm位が丁度良かったようです。
もう一度、この表を見て考えるに
このピッチとはパターンの幅と箔間距離の事らしく
ピッチ 0.4mmの120~150μmが
妥当だったと今頃気づくマーティーでした。
出典:KOKI COMPANY LIMITED
いざ本番、
Wooodpeckerのチップを外した所に
紙マスクをセロテープで丁寧に固定します。
塗り終わりました。
周りの部品があるのでとても塗り難いです。
大丈夫かな~?
そ~っとマスクを外します。
ぎりぎりセーフという感じ。
チップを載せるのがこれまた難しい~~!
ピンセットで掴んで上からそーっと乗せ、若干の位置修正。
手が震えていたらイッカンの終わりでした。
ホットブローで20~30秒、チップの周りをぐるぐる
ソルダーペーストが溶けた所で終了です。
何とか、まあまあですね。
ピン間は隙間が空いているので大丈夫でしょう。
心配なのでピンの上から
ハンダゴテを当ててハンダを一瞬溶かして仕上げです。
何箇所か浮いている所がありました。
仕上げをしてよかったです。
でかい錆物は、愛用のハンダゴテです。
これです。この手のハンダ付けには大き過ぎます。
先端だけはいつもメンテしているので綺麗なのですが。
小型のものを新調したくなりました。
無洗浄フラックスを塗ってたので
それが光ってまともに撮れたのはこれくらい。
これでハンダ付けは問題ないでしょう。
最終段階です。
PCとUSBで接続して
GRBLの書き込みに入ります。
Arduino IDE 1.8.3を起動
やりかたは、ここと一緒なのですが
このチップは、ブートローダーだけ入っています。
GRBL 0.9jなど何も入っていない状態です。
以前にインストールしていたGRBL v1.1fスケッチを開きます。
設定です。
ボード:Arduino Nano
プロセッサ:ATmega328
書込装置:AVRISP mkll
書き込み開始します。

まずは、コンパイルが進んでいきます。
書き込みに入りました!
無事に書き込みされています。
###がズンズンと気持ちよく進んでいきます。
Verifyのリードです。
###がズズズっと進んでいきます。
完了です!
成功です!
”Thank you”の文字が嬉しさを盛り上げてくれます!
デバイスマネージャーのCOM3は19200のままでよかったです。
一応、記念写真っと
ログも記念に残しておきます。
*****

~~コンパイルの所は省略~~

最大30720バイトのフラッシュメモリのうち、スケッチが30428バイト(99%)を使っています。
最大2048バイトのRAMのうち、グローバル変数が1633バイト(79%)を使っていて、ローカル変数で415バイト使うことができます。
スケッチが使用できるメモリが少なくなっています。動作が不安定になる可能性があります。
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b57600 -D -Uflash:w:C:\Users\xxx_X~1\AppData\Local\Temp\arduino_build_981149/grblUpload.ino.hex:i

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53

         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"


         Using Port                    : COM3

         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled

           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino

         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions


Reading | ################################################## | 100% 0.00s


avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: reading input file "C:\Users\xxx_X~1\AppData\Local\Temp\arduino_build_981149/grblUpload.ino.hex"
avrdude: writing flash (30428 bytes):

Writing | ################################################## | 100% 8.59s


avrdude: 30428 bytes of flash written

avrdude: verifying flash memory against C:\Users\xxx_X~1\AppData\Local\Temp\arduino_build_981149/grblUpload.ino.hex:
avrdude: load data flash data from input file C:\Users\xxx_X~1\AppData\Local\Temp\arduino_build_981149/grblUpload.ino.hex:
avrdude: input file C:\Users\xxx_X~1\AppData\Local\Temp\arduino_build_981149/grblUpload.ino.hex contains 30428 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 6.42s


avrdude: verifying ...

avrdude: 30428 bytes of flash verified

avrdude done.  Thank you.

*****

このまま、WoodpeckerのRESETボタンを押します。
書き込んだGRBL v1.1fが起動しているはずです。
シリアルモニタを起動します。
"$$"を送信
やりました!
GRBL v1.1fのデフォルト設定値がでてきました!
ここもデバイスマネージャーのCOM3設定は関係ないんですね。
一番下の設定のボックスだけでOKです。
 "$I"を送信
[VER:1.1f.20170717]
[OPT:V,15,128]
と出てきました。
Arduino IDEは終了します。
まだ、設定がGRBL v1.1fのデフォルトのままなので。
Candle 1.1.7を起動し
ConsoleでCNC2418の設定に変更します。
変更は、この前のv1.1f Upgradeと同じように
*****
$3=5 (dir port invert mask:00000101)
$10=3 (status report mask:00000011)
$100=800 (x, step/mm)
$101=800 (y, step/mm)
$102=800 (z, step/mm)
$110=2000 (x max rate, mm/min)
$111=2000 (y max rate, mm/min)
*****
CNC2418に装着して
Candle v1.1.7で動きを確認します。
X、Y、Z、スピンドル、ゼロ調整
全てOKです!
長~い時間がかかりましたが
これで目出たく
「もう1枚のWoodpecker」がGRBL v1.1fとして蘇りました!
それにしても長かったです。
思えば、たった$3ケチって発生したこのトラブルですが
得たものも多いです。

ここまでの出費
・生チップ:$1.19
・水晶発振子:$0.093
・Aiduno Uno:$2.86
・生基板:$0.448
  合計 : $4.591

もう一枚、オリジナルのボードを修理しなければいけませんが
超細かい作業で疲れたのでまたにします。

所で
このボード、ブートローダーを書き込んだチップに交換したら
USB経由でv1.1fをUploadできたということは!
ここのKnown IssueのCH340Gの”時折伝送エラー不具合”とは
無関係ということになります。
元から、このWoodpeckerは、
ブートローダーが入ってなかったんですね~。
マーティーが最初に購入したDZT's storeの
CNC2418のオリジナルWoodpeckerとは違い
これは、チップ部品が全て表側についています。
GitHub情報を改めて見ると
最初のv1.1f Upgradeの時に見ていたGitHubのissuesが進んでいました。
これ自体はリミットスイッチの接続についてですが
いつの間にかv1.1 Upgradeの話題にすり替わっているようです。
ここの 21 days agoの所(8月19日時点)に
こんな写真が!
マーティーが失敗した上のと同じボードです。
チップ部品が表側についています。
ZenとYenの間のチップ部品もありません。
これにチップのピンを浮かせてリード線を出しています。
やはりこのボードは、ここまでしないとUploadできないんですね。
AVCCピンは、5VにUPしなくていいみたいです。
また
GitHubのGRBL v1.1のリミットスイッチの解説を見ていると
最後の方に「Woodpecker PCB」って青文字があります。
ここをクリックするとAliExpressに飛んで行くのですが
何と「DZT's store」に飛びました。
最初にGRBL v1.1f Upgradeに成功したWoodpeckerです。
これが、GitHub公認の「Woodpecker」ということなのかな?
少なくともGRBL v1.1対応ということなのでしょうね。
売られているのは、まだGRBL 0.9jです。

0 件のコメント: