avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
試了很多方法,即使換了不同版本的 FTDI drver ,還是無法寫入靭體。喂!這塊是全新的板子,完全沒用過吔!浪費了不少時間後,使出最後一招:「用 Arduino UNO 救 Arduino Mega 2560,透過 ICSP 寫入靭體。」,總算讓只會一閃一閃的 MKS Base V1.3 醒過來了。
底下來看看如何進行:
有了未斷電火燒板子的前車之鑑,記得先拔除所有的電源。利用兩端分別為公、母端子的杜邦線,依底下的對應關係,將 Arduino UNO 和 MKS Base V1.3(MEGA 2560)的 ICSP 連接:
- UNO D13 ←→ Mega 2560 ICSP SCK (pin 3)
- UNO D12 ←→ Mega 2560 ICSP MISO (pin 1)
- UNO D11 ←→ Mega 2560 ICSP MOSI (pin 4)
- UNO D10 ←→ Mega 2560 ICSP REST (pin 5)
- UNO 5V ←→ Mega 2560 ICSP +5V (pin 2)
- UNO GND ←→ Mega 2560 ICSP GND (pin 6)
確認接線無誤以後,將 Arduino UNO 以 USB 線與電腦連線(Mega 2560不需另外插電)。執行 Arduino IDE ,利用主選單「File」中的「Example」,將「ArduinoISP」的範例程式開啟。
設定好當「Master端」的 UNO,將「ArduinoISP」的靭體編譯好,並上載至UNO中:
當 UNO 己寫入 ArdunoISP 的靭體以後,我們就將它變成一個燒錄器了。可以打開要寫入 Slave 端的程式了。
我們將板子的類型換成 Slave 端的類型,本例中的 MKS Base V1.3 用的單晶片是 Mega 2560,所以由主選單「Tools」中選「Arduino Mega 2560 or Mega ADK」。
接著指定寫靭體時的「Programming」,由主選單「Tools」中的「Programming」選取「Arduno as ISP」:
經前面的設定後,確認已開啟我們要寫入「MKS Base V1.3 」的靭體──「Marlin」後,準備要編譯及上載囉!
不過,別太衝動,和平常直接按「Upload」不同,這次要由主選單「File」中的「Upload using Programmer」來進行上載靭體的工作:
如果選了「Upload using Programmer」,當Master 端的 Ardunio UNO 會幫我們將編譯好的靭體寫入 Slave 端的「MKS Base V1.3 」中。
新靭體上載完畢後,就可以將當 ISP 的 Arduino UNO 拆除,把 「MKS Base V1.3 」重新插上 USB 線測試囉!還好 3D printer 的 Marlin 不用常常重新上載,不然,為了更新靭體,拆拆裝裝,也是滿煩人的。
後記 (2020.12.18)
MKS 的板子不能直接透過 USB 燒錄 Marlin , 原來是這塊沒有安裝 Bootloder ,透過前述的方法和 Uno 連接好線,燒錄器一樣用 Arduino as ISP ,並選取「工具」選單中的「燒錄 Bootloader」,將 Bootloader 寫入 MKS 板子中後,就可以正常使用了。
沒有留言:
張貼留言