2017年7月30日日曜日

小型工作機CNC2418 その25(もう1枚のv1.1f UpgradeはISCPでも失敗)

もう1枚 後から購入したCNC2418用のボードWoodpeckerの
GRBL v1.1f Upgaradeへの挑戦は続きます。

TxD、RxD端子の通信ではブートローダーが必須で
前回、結局、できませんでした。
事前に、Arduino Unoをブートローダー書込機にしたし
今度は、ISCPを使ってWoodpeckerのGRBL v1.1f Upgradeをやってみます。

この前のGRBL v1.1f Upgrade成功の時に
ここでみつけた
Woodpeckerの回路図を見ます。
WoodpeckerのボードのままISCPで書き込みできないか検討するためです。

USB接続でArduino IDEからGRBL 1.1fにUpgradeできなかったボードです。
マーティーが最初に購入したDZT's storeの
CNC2418のオリジナルのものとは違います。
チップ部品が全て表側についています。
今更ですが、AliExpressの写真(上)と違いますね~
上のボードは、表面にチップ部品が見当たりません。
ISCPの結線は、公式サイトのここの
下の方の右側(水晶発振子がついている方です)


もうひとつ
ここも参考にさせていただきました。
やはり日本語の方が安心できます。

これらは、ターゲットがDIPパッケージなのでピンが異なります。
Woodpeckerに付いているATMEGA328P-AUの
データシートを見ます。
パッケージは、32pin TQFPなので
ピンアサインはこれです。
書込機側のArduino Unoと
ATMEGA328P-AU(32pin TQFP)との接続は
[Uno]--[328P]
 D10  -- RESET(29pin)
 D11  -- MOSI/PB3(15pin)
 D12  -- MISO/PB4(16pin)
 D13  -- SCK/PB5(17pin)
 5V  -- AVCC(18pin)
 5V    -- VCC
 GND  -- GND
残り
XTAL1、XTAL2は、16MHz水晶発振子がついているのでOK。

これらのISCPで使う端子についてWoodpeckerを見てみます。
まずは、回路図で
・RESET:ヘッダーピンがでています。
・MOSI/PB3(15pin):D11
 Spindle DriveのPower MOSFET Gateに繋がっています。
 MOSFETのGate容量が気になる所です。
 Infinion IRF540のCissは1960pFでした。
 19200bpsでは、問題ないでしょう。たぶん。
・MISO/PB4(16pin):D12
 Zend端子でヘッダーピンがでています。
 0.1μFコンデンサがGNDに入っているので
 ISCP接続するには削除する必要があります。
・SCK/PB5(17pin):D13
 何も繋がってなく、ヘッダーピンのRSTとA6の間にでています。
・AVCC(18pin):
 GND間に0.1μFがついているだけです。
 Datasheetを見ると
 "AVCC is the supply voltage pin for the A/D Converter, PC[3:0], and PE[3:2]"
 これだったら、5Vに繋がなくていいはずです。
所が私が追加購入したWoodpeckerボードは、
これらが、少し違っています。
私が購入したDZT's storeのCNC2418のボードと違うのです。
どこが違うかというと

RS232C~TTL変換ボードを付けている時から
ちょっと気にはなっていたのですが
書き込みできないボードは、
D12の0.1μFが付いてないのです。
拡大すると外されたのか、接着剤だけなのか
チップ部品がありません。
パット見、目視ではわかりません。
しかもZenのシルク印刷が1個しかないのです。
CNC2418のオリジナルボードは
この右側もZenのシルクがあるのです。
Yenの所は、ちゃんと2つあります。Xenもです。
拡大。
後から取ったような感じもしますね~?
真相はわかりません。
そして、本来、もう一つのZen端子であるべき所は
ISCPで使う
D11であるMOSI/PB3(15pin)から来ているのです。
もう一つ、部品がついていない所が、
A6とGND間のパターンです。
何とD13と繋がっていて
そのD13~GND間の部品が取り外されています。
ここの回路図には出てこない部品ですが
ISCPに不都合なので取り外されていると思われす。
D13はスピンドル回転方向制御端子なので
本来は、ノイズ低減用に0.1μFがついていたと思われます。
結局、ISCPに必要な端子が全てヘッダーピン上に揃うのです。
しかも、書込に支障をきたすD12の0.1μFが削除されています。
オリジナルのボードは、そうはいきません。
D11は、出ていないし、D12に0.1μFが付いています。
これは、もう部品組立後にISCPでGRBL 0.9jを
書き込んでいるとしか、考えられません。
ということは、ブートローダーは入っていない可能性大です。
この時マーティーはできる気満々でワクワクしています。

いよいよ
書込機(Arduino Uno) と Woodpeckerの接続です。
ArduinoISPを書き込んだArduino Uno(”書込機”)とします。
配線は、6本です。
書込機 -- ターゲット
 D10 -- RESET
 D11 -- D11(Zenの右)
 D12 -- D12(Zen)
 D13 -- D13(RstとA6の間)
 5V -- 5V
 GND-- GND

実際の配線はこれです。
このクリップ、便利なのですが
クリップとリード線の色が違って分かり難いです。
公式サイトに注意書きがあるので
Arduino UnoのRES~GND間にタンタルコンデンサ 10μFを入れています。
注意:あくまでもこのWoodpeckerボードはCNC2418純正ではありません
チップ部品が全て表側についているタイプです。
少なくとも先に成功したDZT's storeのものとは異なっています。
では、書き込みます。
[ツール]-[書込装置]から
「Arduino as ISP」にします。
そして、同じく
[ツール]から[ブートローダーを書き込む]をクリック!
OH MY GOD!
エラーです!
*****
Arduino:1.8.3 (Windows 10), ボード:"Arduino/Genuino Uno"

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM3 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

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              : stk500v1
         Overriding Baud Rate          : 19200
         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 : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         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.02s

avrdude: Device signature = 0x1e2b02
avrdude: Expected signature for ATmega328P is 1E 95 0F
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.
*****
Device(ATmega328P)が正常に認識されていません。

念の為、COM1を19200にセットして
今度は、[ツール]-[ボード]で
Arduino Nanoに設定します。
おっ!いけたかっ!
と思ったのも一瞬。
エラーです。
ここで輝かしい成功の記録にしたかったのに~~
*****
Arduino:1.8.3 (Windows 10), ボード:"Arduino Nano, ATmega328"

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM3 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m

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              : stk500v1
         Overriding Baud Rate          : 19200
         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 : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         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.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0xFD"
avrdude: writing efuse (1 bytes):

Writing |  ***failed;
################################################## | 100% 0.05s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFD:
avrdude: load data efuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xfe != 0xfd
avrdude: verification error; content mismatch

avrdude done.  Thank you.

ブートローダの書き込み中にエラーが発生しました。
*****
いいとこまで行っていた感じでしたが
最初の1Byte 0x3Fを書き込んでだものの
Verifyでエラーです。
中途半端な書き込みだから死んだだろうなあ~?

Arduino IDEのシリアルモニタで確認します。
「おーい!」・・・応答がありません。
死にましたーーー!(T_T)

ということで
このWoodpeckerは、チップを載せ替えないと
v1.1fへのUpgradeはできないという始末になってしまいました。

重ねて言いますが
この失敗したGRBLコントロールボード(Woodpecker)は
先に成功したAliExpressのDZT's storeで購入したものではありません。
別のセラーから購入したボードです。
一見、同じものですが違う方法で作られている可能性大です。
たまたまこのボードだけができなかったのかもしれません。
たまたまDZT's storeのボードができたのかもしれません。
”v1.1f Upgrade可能”とは、セラーは謳っていないので
壊れても自己責任であります。

今思えば、手を抜いてしまった手順
ステッピングモータードライブシールドを外しておけばーー
ケーブルを短くしておけばーー
等も考えられますが、後の祭りです。

幸運にも?、まだ最終手段が残っています!
ATMEGA328P-AU 32pin TQFP単体に
ブートローダーを書き込んだものを
Woodpeckerに載せ替えてGRBL1.1fをアップロードする方法です。

それにしてもTQFP単体に
どうやって書き込もうかな~~~~
TQFPアダプタソケット買うしかないのだろうか?
そもそも数$をケチって安いボードを買ってこの始末なのです。
何だか高くつきそう。

ということでまた失敗の記録となりm(_ _)m

2017年7月29日土曜日

Arduino UnoをBootloader書込機にする

Arduino Unoが到着しました。
小さな袋です。
いつの間にかポストに入っていました。
初めて手にするArduino Unoです。
マイコンは、Atmel MEGA328P-AU
USBは、CH340Gが載っています。
CNC2418のWoodpeckerと同じです。
そうです、今頃気づいたのです(笑)
親しみが湧くとともに
CH340G通信エラーのトラウマで若干の不安も...
Arduino UnoにBootloader書込用のスケッチを入れて
Bootloader書込機にするのです。
CNC2418のWoodpeckerの生チップにBootloaderを書き込むためです
ここを参考にさせていただきました。
非常に丁寧に説明されているので助かりました。

購入したArduino Unoはこれです。
では、Arduino UnoをUSBで接続。
Arduino IDE 1.8.3を起動します。
[ファイル]-[スケッチの例]-[11.ArduinoISP]から
ArduinoISPを開きます。
これが、Bootloader書込機にするスケッチです。
このようなウインドウがもう一つ出てきます
[ツール]-[ボード]で
[Arduino/Genuino Uno]を選択します。
[ツール]-[シリアルポート]で確認します。
私の場合、既にCNC2418を接続していて
Arduino Unoは、同じUSBチップCH340Gなので
COM3が自動的に選択されています。
[書込装置]は"AVRISP mkII"のままでいいようです。
このボタンで書き込みを開始します。
[スケッチ]-[マイコンボードに書き込む]と同じことです。
まず、コンパイルが始まります。
続いて書き込みが始まります。
Overriding Baud Rate:115200 です。
Writingです。
###がさっと走っていきます。
続いてReadingで
###がさっと走っていきます。
Writeの後のReadということはVerifyを行っているようです。
無事終わりました!
心臓に悪いです。
Arduino Unoが不良ではないか?
またエラーが出るのではないか?
トラウマでドキドキです。
これで
Arduino UnoがBootloader書込機になりました。

公式サイトの最初に妙な記述があります
「Note for Arduino 1.0: you need to make one small change to the ArduinoISP code. Find the line in the heartbeat() function that says "delay(40);" and change it to "delay(20);".」
インストールしたのはArduino 1.8.3です。
確認すると
heartbeat()の行に
"delay(40);"
というのは、無いので
なにもしなくて大丈夫そうです。

そうそう
参考したサイトに書かれていますが
Arduino UnoをBootloader書込機にする場合は
RESET~GND間に10μFのコンデンサを追加しておく
必要があるということです。
忘れない内に付けておきます。
RESET:コンデンサの+側
GND:コンデンサの-側 です。
手持ちで最初に見つかったタンタルを付けていますが
電解コンデンサで大丈夫です。
※ Arduino Unoを書込機をして使う時だけです。
最初に参考にさせて頂いたここには、
「新品の328Pには一度だけ水晶発振子回路無しでBootloaderを書き込めるが
一度Bootloaderを書き込むと水晶発振子回路無しでは
Bootloaderを上書きすることはできない」
ということですので
Bootloaderを書き込むターゲットの条件に注意しないといけません。
というか
単体で書き込む時には、
常に水晶発振回路は付けていた方が安心ですね。
となると
パッケージ TQFP 32pinに書き込むには
一工夫いりそうです。(´-﹏-`;)

2017年7月28日金曜日

小型工作機CNC2418 その24(もう1枚 v1.1f Upgrade失敗)

新しいボードもGRBL v1.1fにUpgradeします。
やり方忘れない内にっと!
このボードです。
GRBL 0.9jです。
CNC2418のオリジナルボードとちょっと違いっています。
前回成功した手順でやります。
あっりゃーっ! 書き込みエラーです。

以下、失敗の長~~~い、苦難の記録です。
最後まで成功はしませんのでご了承の程を。

試しに
ボード:Arduino Unoでやってみます。
チップが同じなのでNanoと同じ結果になると思いきや
99%だったのが94%になっています。
フラッシュサイズを調べてみると
Uno:32KB(内0.5KBはbootloader用)
Nano:32KB(内4KBはbootloader用)@ATmega328
ちょっと違うんですね。
で、書き込みをすると
やっぱし書き込みエラーです。
Arduino IDEのシリアルモニタ機能
[ツール]-[シリアルモニタ]では、
ボードと通信できてGRBL設定が出るので
ボードがは死んでいません。

より詳細なエラーメッセージを見れるということで
環境設定で[コンパイラ]と[書込]にチェックを入れます。
こんなエラーがでています。
*********
Arduino:1.8.3 (Windows 10), ボード:"Arduino Nano, ATmega328"
~中略~
最大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\xxxx_X~1\AppData\Local\Temp\arduino_build_403558/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
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x8e
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x0d
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x2a
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xc5
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x46
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x48
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x48
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x0e
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xbc

avrdude done.  Thank you.

スケッチの書き込み中にエラーが発生しました
********
"not in sync"どうも通信の同期が取れてないみたい?
特に"Overriding Baud rate: 57600"
ってのが気になります。
書込の時だけ 115200 から 57600にするのだろうか?
デバイスマネージャーで
COM3のBaud Rateを57600にしてみるもダメ!です。
そもそも最初に成功したオリジナルのボードは
このCOM3 115200のままでもうまくいったのです。
Arduino IDEでは書込時はこの設定をスルーして
内蔵のドライバを使うようです。
そう言えば、インストールの時になんかドライバ入っていきました。
エラーメッセージにあるように
Arduino IDEは、書込時にインストールフォルダ内の
avrdude.exeを実行しています。
そのconfigファイルが
C:\Program Files (x86)\Arduino\hardware\tools\avr\etc
の avrdude.conf だとわかったので、
baudrate = 115200
を追加できないかやってみます。
*****
programmer
  id    = "avrispmkII";
  desc  = "Atmel AVR ISP mkII";
  baudrate = 115200;  これを追加
  type  =  "stk500v2";
  connection_type = usb;
*****
結果、
Overriding baud rate: 57600 で変化はありません。
この avrdude.conf では変更できないのですね。
ここにコマンドで書き込む方法がありました。
コマンドプロンプトでavrdude.exeを直接使うというものです。
Baud rateを指定できるようです。

まずコンパイルされたバイナリデータを準備します。
コンパイルした後、
[スケッチ]-[コンパイルしたバイナリを出力]します。
こんなエラーがでますが
適当なフォルダを指定します。
[grblUpload]というフォルダができます。
中には3つファイルが入っています。
そのフォルダごとCドライブのルートに移動します。
C:\Program Files (x86)\Arduino\hardware\tools\avr\etc
のavrdude.confを
avrdude.exeのあるフォルダ
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin
にコピーします。
コマンドプロンプトでフォルダパスを指定するのが面倒だからです。
(終わったら削除するのを忘れないようにしなきゃ)

コマンドプロンプトで
”cd c:\program files (x86)\arduino\hardware\tools\avr\bin”

avrdude.exeのあるディレクトリに移動します。
"dir /w"
でフォルダ内のファイルリストを確認します。
次のコマンドを叩きます。
この引数でOverriding Baud rateを変えられます。
Baud rateを-bで115200にしています。
”avrdude.exe -C avrdude.conf -v -p atmega328p -c arduino -P COM3 -b 115200 -D -U flash:w:C:\grblUpload\grblUpload.ino.hex:i”
しばし間を置いて
エラー出ますね~、ちょっと違いますが、
「program is not responding」の文字が増えています。
試しに 57600にしてみます。
”avrdude.exe -C avrdude.conf -v -p atmega328p -c arduino -P COM3 -b 57600 -D -U flash:w:C:\grblUpload\grblUpload.ino.hex:i”
Arduino IDEのメニューから書き込んだ時と同じエラーになります。
少なくとも
115200では、エラーメッセージに
「programer is not responding」ってのが増えていて
57600では、ないので通信だけはできているのかなあ?
このエラー、調べるといっぱい出てくるんです。
皆さん悩んでおられます。
でもずばり解決できたのは、ないようなのです。

ここのKnown Issueに
*****
Clone Arduino boards using the CH340G USB to Serial chip experience occasional transmission errors and their use is at your own risk. There is no current fix for this problem on CH340G equipped boards.
*****
「CH340G USB to Serialチップを使用してArduinoボードを複製すると、
 時折伝送エラーが発生します。自己責任で使ってください。
 現在(2017.5.13時点のもよう)、
 CH340G搭載ボードでは、この問題に対する修正はありません。」
ということが書いてあります。
この”時折”ってのが引っかかりますね~。

先に成功したオリジナルのボードは、CH340Gです。
そしてこの失敗しているボードもCH340Gです。
最初のは、偶然成功したというのだろうか?
マーティーは”時折”に引っかかったのでしょうか?

チップを取り外して直接書き込むしか方法がないのだろうか?

色々検索しているとこんな情報
Baud rateを微妙に変えたらいいみたいなのもあるので。

avrdude.exe -C avrdude.conf -v -p atmega328p -c arduino -P COM3 -b 57850 -D -U flash:w:C:\grblUpload\grblUpload.ino.hex:i

そううまくはいきませんね~
「non-standard baud rate」ってのが追加されますが
57600と同じ結果です。

半分の28800ではどうか
avrdude.exe -C avrdude.conf -v -patmega328p -carduino -PCOM3 -b28800 -D -Uflash:w:C:\grblUpload\grblUpload.ino.hex:i

エラーですが、違ったコメントが
「avrdude.exe: serial_baud_lookup(): Using non-standard baud rate: 28800avrdude.exe: stk500_recv(): programmer is not responding」

ここに
avrdude.exeのserial_baud_lookup()のテーブルがあります。
1200, 2400,4800,9600,19200,38400,57600,115200, 230400
このテーブルを変えれば
違ったBaud rateもできるのでしょうが
どこのファイルにあるか探せませんでした。

これらを試してみる
遅いやつならタイミングにも余裕があると思われるので
4800、9600で試すもだめー。
念の為、COM3も設定しているのです。

どうやら57600以外では
「programmer is not responding」がでます。

しばし考え.....そうだ
Serial変換ボードを持っていた気がする。
ありました!RS232C~TTL変換ボードでした。
チップは、Maxim MAX3232 9pinDSUBです。
10年位前に確か秋月電子で買ったかと。
流石にもう売ってないですね~
シリアルかあーー
Arduino IDEの
C:\Program Files (x86)\Arduino\hardware\tools\avr\etc
avrdude.confを見ると
"avrisp”がserialになっています。
*****
programmer
  id    = "avrisp";
  desc  = "Atmel AVR ISP";
  type  = "stk500";
  connection_type = serial;
;

programmer
  id    = "avrispv2";
  desc  = "Atmel AVR ISP V2";
  type  =  "stk500v2";
  connection_type = serial;
;

programmer
  id    = "avrispmkII";
  desc  = "Atmel AVR ISP mkII";
  type  =  "stk500v2";
  connection_type = usb;
;
*****
[書込装置]を[AVR ISP]にすればできそうな気がします。
一方、Woodpeckerボードの方は、
v1.1f Upgrade成功の時に偶然見つけた
ここのほぼ最後に回路図があります。
Linksprite CNC1610=Woodpeckerと同じはずだ、
の回路図を見ます。
schematic 2.pdf にチップ周りが載っています。
USBのCH340G と ATMEGA328P とは
RxDとTxDの2本だけで繋がています。
Woodpeckerボードの表は
赤枠で囲んだピンがRxDとTxDです。
CH340Gのピンを浮かせることは何とかできそうですが
その下のランドにリード線をハンダ付けするのは無理そうです。
ほとんど脳外科手術の世界。
そこでパターンを探っていくと
CH340G と ATMEGA328P は、この赤線のパターンだけで
繋がっています。
ここをカットすれば、リード線も引き出せそうです。
脳外科医でないマーティーも手術できるでしょう。
とは言うものの
今時のPCには、シリアルポートがない。
ありました!
DestTopのWindows7です。
Core2 Duo E7500 2.93GHz ご老体です。
USBカメラで監視カメラとして使っていたものです。

でWin7機にArduino IDE 1.8.3をインストールします。
この前やった手順です。
デバイスソフトウェアは、Win10の時の3つ以外に
libusb-win32
Genuino USB Driver
Linino ポート(COM と LPT)
ってのもインストールされました。

Arduino IDEを起動して
GRBL v1.1fのライブラリをインクルードします。
この前の手順です。

まずは、USBで接続してみたいので
江苏沁恒股份有限公司のHPから
CH341SER.ZIPをダウンロードして
解凍してsetup.exeでインストールします。
で、普通通りUSBで接続して
Arduino IDEのメニューから普通の手順でやってみます。

だめですね~
結果は同じです。
CH340Gのドライバーの日付が
CNC2418付属のより新しかったので
少~し期待したのですが

では、RS232Cボードの取り付けに入ります。

回路図をよく眺めます。
TxDとRxDが逆にならないように
対抗なのでひねる必要があります。
340G:TxD -- 328P:RxD(30pin)
340G:RxD -- 328P:TxD(31pin)
となっているので
328P:RxD(30pin)--MAX232ボードのTxD
328P:TxD(31pin)--MAX232ボードのRxD
でいいはずです。

パターンをカットします。
もはやこれなしでは無理です。
レンズ2つの最高倍率の6倍にしています。
カットしました。
微妙に繋がっているといけませんので
念の為、テスターで確認します。
TxDとRxDのLEDがあったので
そこから細ーいリード線を引き出します。
5V、GND、TxD、RxDの4本を
RS232Cボードと接続しました。
Windows7機に接続します。
電源はUSBから取ります。

SerialのCOM1に設定します。
一度、シリアルモニタで確認したいので
115200に設定します。

”$$”を送るとGRBLの設定が出てきました。
通信は成功です。
結線に間違いはなかったということです。

書き込みに入るため
COM1を57600に設定し
書込装置:”AVR ISP”にして
いざ書き込み!
だめですね~
同じエラーがでます。
書込装置を色々変えてみてもだめです。

もう一度、回路図を眺めていると
CH340GのDTRが、328PのRESETに繋がっています。
リセット端子が怪しい気がしてきました。

ありました!
DTRとArduinoの関係
「DTR 信号線の電圧降下のタイミングは
スケッチのアップロード開始のタイミングと一致するよう調整。
スケッチのUploadのタイミングでDTR信号が1から0になる。」
と書いてあります。
だから、DTR信号をC6で微分してリセット信号を作っていたわけです。
WoodPeckerのCH340GでのRESET回路を見落としていました。
今頃気づくマーティーであります。(-_-;)
ここにブートローダー起動の詳しい説明が
なるほど~~~
シリアルのDTR信号でRESETをかけるんですね。
Arduinoのブートローダーは、リセットがかかると、
まず、スケッチが来ていないか見るんですね。
一定時間が経過すると内部のスケッチを起動するのか~。

先程のRS232C~TTL変換ボードは
DTRはDSUB 9pinの4番pin
しか~し Openになっています。
だめだー

よーし、ここまでくれば意地でも
232C-TTL変換ボードに
DTRをつけてやるしかありません!

RS232C to TTL 変換回路を調べます。
トラ技の試読み?にありました。

RS232Cの電圧レベルです。
受信では、
データの”1”:-15V~-3V
データの”0”:+15V~+3V
レベル変換と反転が必要です。
丁度いいことにトランジスタによる
TTLレベルへの変換回路もありました。
これ付けることにします。
それくらい自分で考えよう!と言われそうですが...
まず、WoodPeckerボードのCH340GのDTRピンを浮かせる必要があります。
13ピンがDTRです。
ついでにTxD、RxD(2、3ピン)も浮かせます。
ルーペ越しに撮影しましたが何とか見えるでしょうか?
2、3ピンを浮かせたので
この前カットしたパターンはもとに戻します。
細いワイヤーで繋ぎます。
RS232C~TTLレベル変換回路の実体配線図を書きます。
得意の空中配線です!
まあ急ぐ時はこれに限ります。
急がない時もよくやるのですが(-_-;)
配線完了!
手書き配線図に空中配線、なかなかいいでしょう!(笑)
Woodpeckerボードと接続します。
これで最後か?
DeskTop Windows7機に繋ぎます。

Arduino IDE 1.8.3を起動して
Arduino Nano、書込装置:AVRISPでgrblUploadを書き込みます。
だめで~す。
同じエラーです。

シリアルのプロトコル・アナライザで調べると
何かわかるのでしょうが
ちょっとそこまでは踏み込めずーー

この方法は、諦めるしかなさそうです。

中のブートローダーとの通信がうまくいっていないですね~
Arduino IDEは、ブートローダーがあるかどうか判らないのでしょう。
どうもこのWoodpeckerの328Pには
ブートローダーが入っていないような気がしてきました。
入ってないとしか考えられません。

ブートローダーを書き込むには
PICと同じようにISCPライターが必要です。
Arduino UnoをISCPライターにしようと思っているので
注文しておいたArduino Unoの到着を待つしかないです。
しかもWoodpeckerに装着された状態で
328Pチップに書き込みできる保証はありません。

それでだめなら
生チップ単体に書き込んでから
付け換えるしかないですね~。

まあ、収穫はあります。
Arduinoの書き込み方、avrdude.exe、RESETの謎
RS232Cでのやり方等々
この知識は今後役立つことでしょう?

そうこうしている内に
Arduino UNOが届きました!
格闘はまだ続きそうです(T_T)/~~~