Melzi/zh tw

From RepRap
Revision as of 23:30, 27 July 2015 by Ethan42411 (talk | contribs) (快拆端子座融化)
Jump to: navigation, search
Crystal Clear action run.png
Melzi

Release status: working

Melzi2.jpg
Description
Release Version 2.0
License
unknown
Author
Contributors
Based-on
Categories
CAD Models
External Link

介紹

一個集RepRaps功能於一身,並且包含擠出頭控制、最佳化生產製造的控制板

當然RepRap的宗旨為自己動手做,但是有時候使用者只是想要即插即用RepRap控制器,使他們可以更專注於在機器的其他地方,或是專注在機械設計或是軟體的操作。

因此Melzi是一片完整的RepRap控制板,它應該是很便宜並且適合大量生產的控制板。 它是以Arduino Leonardo為基礎來進行開發,並且以Leonardo da Vinci的學生 - Francesco Melzi來命名。

版本

確認您的Melzi控制板版本:

控制板名稱 ATMEGA微控制器 步進馬達驅動器 生產者 年份
RepRap Melzi 2.0 1284P A4982 RepRapPro 2012-至今
"Melzi 2.0 1284P" (eBay hybrid) 1284P A4988 Various eBay vendors 2012-至今
Melzi Ardentissimo 1.0 644P A4988 RepRapPro 2011

Melzi Version 1.0 (Ardentissimo)

Melzi-ardentissimo.jpg

第一版Melzi使用ATMEGA 644P微處理器, 與4顆A4988 步進馬達驅動器。 然而,因為趕工使得印刷電路板上的線路變得不可靠。常常出現熱敏電阻讀數不準確,或者無法讀取。

注意! 有些便宜的網路賣家仍然在販售這個Melzi版本! 詳見本頁最下面的'如何購買'。

Melzi 1.0/2.0 拍賣上的變種版本

Melzi V03.jpg

網路上大部份的都是"Melzi 2.0 1284P"或是"Melzi V03"實際上是使用1.0的電路圖,包括"Melzi Ardentissimo"標誌與像第一版的A4988步進馬達驅動器,但是使用與2.0相同的ATMEGA 1284P微控制器。 因此2.0的韌體可以被使用在這些變種版本的控制板上。

Melzi Version 2.0

Melzi2.jpg

規格:

  1. 微處理器: ATMEGA1284P (相容Sanguino)
  2. 全快拆接頭,不需要焊接
  3. 讀取GCode檔案的Micro SD card插槽
  4. Mini USB 介面
  5. 4 x A4982 步進馬達驅動器
  6. 3 x MOSFET 驅動器控制熱床、擠出頭、冷卻風扇
  7. 尺寸: 210mm x 50mm x 17mm
  8. 重量: 70g

Melzi-circuit.png

Melzi-pcb.png

原始檔案

第一版的Melzi是由Joe Mosfet所開發。

第二版的Melzi是從Joe Mosfet基於RepRapPro Ltd的原創開發。 可以在這裡找到: https://github.com/reprappro/melzi

設定Melzi

通常絕大部分的控制板都已經安裝好bootloader與韌體,以及設定好步進馬達驅動器的電流大小。 如果沒有,請繼續往下閱讀吧...

Bootloader上傳

如果您的控制板上的ATMEGA晶片是空白的,或是您不得不更換Melzi的微控制器(例如,如果您把ATMEGA晶片弄短路了),您將需要更新/燒錄一個bootloader到晶片。

更換Melzi的Atmel ATMEGA1284P晶片,這需要以下的RepRapPro技術:

  1. 移除舊的Atmel ATMEGA1284P晶片 - 我們發現使用熱風槍來進行焊接是非常的容易的;注意不要對周遭的晶體過度加熱。您也可以使用錫爐來進行解銲,但是必須注意不要輕推到旁邊的元件。
  2. 銲接新晶片 - 確定擺放的腳位是正確的! 在電路板上使用助銲劑,然後銲接晶片。 您可以透過使用細尖鉻鐵,熱風槍,焊錫或烤箱做到這一點。
  3. 使用放大鏡或是顯微鏡,檢查各接腳是否有短路。

上傳bootloader:

  1. 如果晶片是空白的;您將需要燒錄一個bootloader到晶片中。當晶片是空白時,它是無法透過USB來進行上傳韌體,只能透過電路板上的ISP腳位進行上傳。
  2. 燒錄bootloader,您需要一台AVR燒錄器,像是 http://www.atmel.com/tools/AVRISPMKII.aspx 這是官方的一台燒錄器,當然它的售價比較昂貴,不過有一些便宜可代用的燒錄器可以在購物網站上找到。 記得確認這類的燒錄器是否支援ATMEGA1284P晶片; 像是USBtinyISP就不支援。
  3. http://arduino.cc/en/Main/Software 下載最新版本的Arduino IDE軟體
  4. 確定您已經從 https://github.com/reprappro/Marlin 下載最新的'Sanguino'資料夾,並已經將它放置到您的Arduino/hardware資料夾(它有可能已經被放置資料夾下的'arduino'或'tools'資料夾)
  5. 透過USB連接AVR燒錄器到電腦。 燒錄器透過SPI接腳連接到Melzi。 連接USB到Melzi - 它需要使用USB提供電力。
  6. 開啟Arduino IDE。 點選'Tools | Board',選擇 'Sanguino W/ATmega1284p 16 mhz'。 接著點選'Tools | Serial Port'選單,選擇您的AVR燒錄器通訊埠; 或是選取'Tools | Programmer'選擇您的AVR燒錄器。
  7. 選取'Tools'選單,選擇'Burn Bootloader'。 如果不順利,您可能會看到錯誤訊息,您可以透過網路來查詢排除這些錯誤。錯誤訊息可能會因為您所使用的燒錄器而不同。 當然,這也有可能是您的控制板有一些問題...

使用Arduino UNO當作ISP燒錄器上傳bootloader:

  1. 您可以透過Arduino UNO開發板來燒錄bootloader。 首先您必須先上傳ISP程式到Arduino UNO開發板上。
  2. 下載最新版本的Arduino IDE軟體。
  3. 開啟Arduino IDE。 載入ISP程式'File | Examples | ArduinoISP'。 在'Tools | Board'選單下,選擇'Arduino UNO'。 最後選擇開發板的序列埠。
  4. 點選上傳按鈕,來將Arduino UNO變成ISP燒錄器。

使用Arduino UNO當作ISP燒錄器與Melzi的連接如下,共四條線:

 * pin 1 MISO (Melzi) on pin 12 (Arduino)
 * pin 3 SCk  (Melzi) on pin 13 (Arduino)
 * pin 5 Reset(Melzi) on pin 10 (Arduino)
 * pin 4 MOSI (Melzo) on pin 11 (Arduino)
Arduino as ISP.jpg
  1. 連接Arduino UNO開發板與Melzi控制板到您的電腦上(Melzi開發板需要電力)。
  2. 下載最新的'Sanguino'資料夾並像上面的敘述一樣進行安裝。
  3. 開啟Arduino IDE。 選取'Tools | Board'選單選擇有著Sanguino的板子,如果您不知道該選擇哪一片板子,您可以先隨便選一個,如果選到了錯誤的板子,Arduino UNO將會無法燒錄bootloader並且出現錯誤。
  4. 選取'Tools | Serial Port'選單,選擇Arduino UNO開發板的序列埠。 接著至'Tools | Programmer'選擇'Arduino as ISP'。
  5. 如果您之前選擇的板子並不是正確的,您將會得到錯誤訊息,像是板子的id 'XX' 是不正確的,這裡的XX為十六進位。 如果'XX' 為 'FF',請再三檢查連接的線路,再來嘗試從'Tools | Board'選擇另一片板子,或是到搜尋引擎搜尋'XX'所代表的意思。

韌體上傳

有一個Marlin版本的RepRap韌體在RepRapPro Ltd's Github repository。 它包含了使用Arduino IDE上傳到Sanguino(包括了Melzi)所必需的額外檔案。 而這些額外的檔案在您要使用燒錄器燒錄bootloader時也非常的必要。

這裡有更詳細的韌體介紹與說明 RepRapPro 網站.

除了Marlin以外還有Repetier這個韌體,他在我的Melzi上運作甚至比Marlin還要棒。 想要了解更多有關Repetier的資訊可以在這裡找到。 另外還有一個有著不錯功能的韌體設定工具(v0.92)。 如果您喜歡Repetier,您可以考慮贊助Repetier。

Melzi Arduino 接腳編號

#define X_STEP_PIN         15
#define X_DIR_PIN          21
#define X_MIN_PIN          18

#define Y_STEP_PIN         22
#define Y_DIR_PIN          23
#define Y_MIN_PIN          19

#define Z_STEP_PIN         3
#define Z_DIR_PIN          2
#define Z_MIN_PIN          20

#define E0_STEP_PIN         1
#define E0_DIR_PIN          0

#define LED_PIN            27

#define FAN_PIN            4 

#define HEATER_0_PIN       13 // extruder

#define HEATER_BED_PIN     10 // bed (change to 12 for breakout pin on header)
#define X_ENABLE_PIN       14
#define Y_ENABLE_PIN       14
#define Z_ENABLE_PIN       26
#define E0_ENABLE_PIN      14

#define TEMP_0_PIN          7   // Analogue pin
#define TEMP_BED_PIN        6   // Analogue pin
#define SDSS               31

#define SLAVE_CLOCK	   16

設定馬達電流

這部分請參考: RepRapPro_Setting_Motor_Currents

Melzi使用藍芽(Bluetooth)

為了擺脫電腦與Melzi之間麻煩討厭的USB連接線,可以使用藍芽(Bluetooth)模組來取代這條USB傳輸線。 這裡有一片便宜的藍芽(Bluetooth)模組 - 'JY-MCU' (供應商 Shenzhen Jiayuan Electronic Co.,Ltd.).

Jy-mcu f.jpg Jy-mcu b.jpg

更改藍芽(Bluetooth)設定

使用藍芽(Bluetooth)之前可以改變一些預設設定值。 透過模組USB<->RS232 (RxD/TxD)介面與電腦連線,預設的通訊埠設定值為(9600, N, 8, 1)實際可能不同,請參閱藍芽(Bluetooth)模組的手冊。 此時藍芽(Bluetooth)模組要為未配對的狀態,再使用終端機程式輸入以下的AT指令:

AT OK 
AT+BAUD8 OK115200BAUD (設定成Melzi控制板的序列埠鮑率)
AT+NAMEHUXLEY OKsetname (選用, 設定名稱)
AT+PIN0000 OKsetPIN  (選用, 設定密碼, 預設: 1234)

更多設定項目,您可以在這裡找到[[1]]

連接藍芽(Bluetooth)線路

Melzi控制板上的4050D有一組尚未使用的電平轉換(5V -> 3.3V)。 整體需要銲接五條線路。 需要注意的是並不建議直接與TXD腳位連接,在Arduino開發板上的序列晶片是透過一顆1kOhm的電阻來與微控制器連接,但是在Melzi控制板並沒有這樣的設計。

BT Connection.png

透過藍芽(Bluetooth)連接

您可以像是平常使用RepRap一樣,從下拉式選單選擇您的藍芽(Bluetooth)通訊埠即可。

液晶顯示器

Gert為他的Melzi增加了液晶顯示器與旋轉編碼器,這裡有一些照片

可以透過I2C介面連接一片純文字的液晶顯示器,如這個部落格裡的圖。 最新的Marlin版本已經可以支援一些I/O擴充IC (PCA8574, PCF8574, MCP23017, MCP23008).

Panelolu2液晶顯示器與旋轉編碼器可以透過簡單的轉接板來與Melzi進行連接。

Melzi修復

弄壞了您的Melzi? 也許這裡有一些維修方法可以幫得上忙(方便的話也請透過編輯來分享您的解決方法吧):

Mini-USB連接座從電路板上脫落

A repair by Kevin T: http://forums.reprap.org/read.php?4,239276

無法與Melzi連接(FTDI驅動問題)

There has been an issue where a FTDI driver update, pushed out through Microsoft update, disables Melzi controllers that have a non-genuine FTDI chip. This chip is used for USB communication, so the board may look like it's working (LED flashing) but doesn't show up correctly, and Arduino IDE/Pronterface can't connect to it.

This thread describes the problem in detail: http://hackaday.com/2014/10/24/ftdi-screws-up-backs-down/
Apparently, the only way to visually check the chip is described here: http://hackaday.com/2014/10/24/ftdi-screws-up-backs-down/#comment-2059852
There is a thread about it on the reprap forums here: http://forums.reprap.org/read.php?1,417199
There is a work-around for the problem (forcing driver installation, for Windows) here: http://forums.reprap.org/read.php?1,417199,418768#msg-418768

If the chip has been effected by the driver (ie deemed fake), the device PID is set to '0000'. You can check this in the Mac System Profiler, or on Ubuntu open a terminal window, run "lsusb" and it should show a device at "0403:0000". If you use Ubuntu, there is a tool for resetting the device PID correctly: http://www.minipwner.com/index.php/unbrickftdi000 Then update the FTDI drivers on your machines so it doesn't rebrick the FTDI chip.

快拆端子座融化

有時候,Melzi控制板上的螺絲端子座會出現融化的狀況,通常這是因為熱床的連接線接觸不良、沒鎖緊所造成, ie loose in the screw terminal. It can also cause the MOSFET to fail, as it cannot dissipate heat generated as it switches on and off. RepRapPro advises customers to check the screw terminal connections periodically: https://reprappro.com/documentation/mendel-tricolour/maintenance/#Regular_maintenance

If the Melzi PCB is undamaged, you can simply replace the screw terminal. There are a couple of different screw terminal blocks, these are the most common:
This is the most common one - http://uk.farnell.com/multicomp/mc000048/terminal-block-pcb-5-08mm-2way/dp/2008019
this one is a bit taller, and easier to get the wires into - http://uk.farnell.com/phoenix-contact/mkdsn2-5-2-5-08/header-pcb-screw-5-08mm-2way/dp/1792766

The heated bed power cable carries about 10A at 12V, so any poor connection will tend to heat up. Check that your power and heated bed wires are stripped back far enough to go well into the screw terminals, and it's always worth checking that the screw terminals are well-tightened occasionally. Also, wire the printer with enough slack on the heated bed power wire so that it can be attached to frame, and there shouldn't be any movement of it at the Melzi end. But strain relief on any moving wire is necessary - try to make the movement in the actual wire, rather than at a connection point, to avoid the wire fatiguing.

熱床或擠出機出現錯誤或不正常的數值

如果當您的加熱床或是擠出機,在沒有連接熱敏電阻時就會有數值出現,這可能是電容已損壞,試著移除或是更換電容。

請參閱RepRapPro Mendel/Huxley 故障排除文件來解決其他已知的溫度問題請按此連結

燒錄韌體後出現avrdude錯誤

當我嘗試上傳韌體時avrdude出現"avrdude: stk500_program_enable(): protocol error, expect=0x14, resp=0x50...)"

這時候可以檢查當控制板與電腦連接時是否有出現新的序列埠,然後確定您已經燒錄了bootloader到控制板中,這部分可以參考上面的'Bootloader上傳'。

X軸向只能朝一方向移動或是限位開關無法運作

這可能是錯誤的664P Fuse設定值所造成。
Fuse設定值來自sanguino資料夾下的"hardware/arduino/boards.txt"檔案。
正確的644P Fuse設定值如下:

 atmega644.bootloader.low_fuses=0xFF
 atmega644.bootloader.high_fuses=0xDC
 atmega644.bootloader.extended_fuses=0xFD

然後您需要以上述的設定值重新燒錄bootloader。

Melzi已知問題(Geeetech)

Below is a list of issues encountered with the Geeetech Melzi boards. These boards currently retail for as low as $50 USD (The v2.0 from other manufactures and some Sanguinololu's cost upwards of $80-90). My personal opinion is that the Geeetech boards are inferior, and will cost more in rework/repair/time than if a more expensive controller board were purchased instead (e.g. Melzi 2.0, Sanguinololo, or RAMPS). I purchased 5 of these back in January 2014, have repaired/reworked all of them, and have already replaced/upgraded two with other controllers --FlyingLotus1983 (talk) 19:47, 23 March 2014 (PDT)

  • Random short-circuits on the PCB traces. This is a manufacturing defect that happens to cheap boards that are not electrically tested. For example, one board had a short between the X direction logic signal and ground, which caused the X axis to only move in one direction. Another board had one of the microstepping jumper signal wires shorted to ground, so when I set the jumper (MS1-3), this shorted out the 5V rail to ground, which is very bad and dangerous.
  • The BTEMP and ETEMP resistors (R4 and R5) are the wrong value. The original Melzi was also 10K but changed to 4.7K over two years ago (The Melzi 2.0's use the correct value), however Geeetech is still using the wrong value. This hurts the precision of the thermistor, therefore it is better for to rework and replace with 4.7K than use 10K and change the thermistor tables in the Marlin firmware.
  • The voltage regulator is not capable of 24V input voltage. This is understandable if it was designed this way, but the board should still say somewhere in the documentation "only supports up to 18V input" or something like that. It doesn't. The "fix" for this is to set the jumper ("PWR-SEL") to USB, and also to possibly disable/remove the 7805 voltage regulator. Another fix would be to buy a 7805 that is actually capable of 24V input, from Digikey or another distributer.
  • The MOSFET transistors used will literally let out magic blue smoke if used with a standard Mk2b PCB heated bed wired for 12V. With 12V input voltage, and the Mk2b bed wired for 24V, the bed does not get hot enough to be useful. And when wired for 24V and given 24V input voltage, it does work, but only if an external heatsink is added to the MOSFET. This is very dangerous, and at the very least, the specifications of voltage and current should be disclosed to the user so they can add appropriate external MOSFET or solid-state relay. Obviously, as mentioned before, there are no specs anywhere on what sort of current/power the heated bed circuit can handle. The Geeetech boards do not use the RFP30N06LE's like the original Melzi board spec'd out, so I am unsure of exactly how much current and power it is capable of. Please use caution when hooking up a heated bed to this board.
  • One of the boards resets when the SD card is plugged in. Have not yet gotten around to trying to troubleshoot this one. (This is standard on all Melzi boards, and is because the SD socket shares the reset pin, I think. However, it may be because the SD socket runs on 3.3V, which it gets from the FTDI chip.)
  • The LED is really dim. They should use around 390 ohm for R25 but for some reason they use 1K.
  • The stepper motor trim pots used to set current (T1-T4) are not set to a low value from the factory. If they are not set to something reasonable (say 0.4V) before the stepper motors are plugged in and power applied, the board will get really hot and may be damaged. Instead the board should be powered up at 5V using USB and the voltages at the trim potentiometer wiper should be measured with a DMM, and tweaked until they read 0.4 volts. This should be done for all four trim pots, preferably before shipping to the customer. Since this step is not done, do not forget to do it. They do not come with instructions.

Please note that after contacting Geeetech, they have issued a product recall for a batch of boards (From 12/2013 to 03/2014). They have posted on their blog how to get the replacement components.

They say that "the main problems are the heatbed and extruder thermistors are using resistors that are 10kohms instead of 4.7Kohms. Secondly, The MOSFTEs for the heatbed used the 10N06 which can only take 10A current (now changed to the 35N06). For customers who are facing the Melzi boards issues, please contact GEEETECH service team via [email protected], and we will ship you the components for replacement free of charge."

This probably means installing them yourself, but its quite good.

Digikey供應Geeetech Melzi的維修零件:

P4.7KECT-ND (4.7 OHM 1/4 Watt 電阻)

IPD035N06L3 GCT-ND (MOSFET N-CH 60V 90A)

如何購買

RepRapPro - Melzi V2.0