Release status: working
A compact all-in-one controller board for RepRaps with one extruder head, optimized for mass production.
The point of RepRap is to make itself, of course. But sometimes people just want plug-and-play RepRap electronics so they can concentrate on the other aspects of the machine, or just because they are more software or mechanics oriented than electronics oriented.
Melzi is designed to be a complete set of RepRap electronics that should be very cheap to mass produce. It was originally based on the Arduino Leonardo (Francesco Melzi was Leonardo's pupil).
Melzi Version 2.0
- Processor: ATMEGA1284P (Sanguino compatible)
- All screw connectors - no soldering
- Micro SD card slot for GCode files
- Mini USB interface
- 4 x A4982 stepper drivers
- 3 x MOSFET drivers for hot end, bed and cooling fan
- Dimensions: 210mm x 50mm x 17mm
- Weight: 70g
If you need to replace the chip on your Melzi, this is the technique RepRapPro uses:
- Remove old Atmel ATMEGA1284P chip - we find a hot air soldering iron is easiest; be careful not to overheat the crystal that is right next to the chip. You can heat it up in a solder oven, but be careful not to nudge other components.
- Solder on new chip - make sure it is the right way around! Use a flux pen to put plenty of flux on the board first, then solder the chip in place. You can do this with a fine tipped soldering iron, hot air soldering iron, or solder oven.
- Check there are not bridges on the pins with a strong magnifying glass or microscope
To upload the bootloader:
- The chip comes blank; you will need to flash/burn a bootloader onto the chip. When it's blank, it can't even talk via USB, only via the ISP pins on the board.
- To burn the bootloader, you will need an AVR programmer, like http://www.atmel.com/tools/AVRISPMKII.aspx This is the official one, and quite expensive, but cheaper ones are available on ebay. Check that you get one that is compatible with ATMEGA1284P chip; the USBtinyISP does NOT work with these chips.
- Download the latest version of Arduino IDE software (at time of writing 1.0.5) from http://arduino.cc/en/Main/Software
- Make sure you download the latest 'Sanguino' folder from https://github.com/reprappro/Marlin and put it in your Arduino/hardware folder (there should already be other folders called 'arduino' and 'tools' in this folder)
- Connect the AVR programmer to your PC, via USB. Connect the programmer to the Melzi, via the SPI pins. Connect USB to the Melzi - it needs power from the USB.
- Open Arduino IDE. Under 'Tools | Board' menu, select 'Sanguino W/ATmega1284p 16 mhz'. From the 'Tools | Serial Port' menu, select the port your AVR Programmer is on. From 'Tools | Programmer' select your AVR Programmer type.
- From 'Tools' menu, select 'Burn Bootloader'. You may well receive an error; search the internet with the error message to troubleshoot what part isn't working properly. it mostly depends on the AVR Programmer you are using. Of course, there may also be a problem with your board...
There is a version of the Marlin RepRap firmware for Melzi on RepRapPro Ltd's Github repository here. It contains the extra files needed for the Arduino IDE to talk to a Sanguino (and hence to the Melzi). These also allow you to flash the bootloader using an appropriate programmer.
There are more detailed firmware instructions on the RepRapPro site here.
Melzi Arduino Pin Numbers
#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
Melzi with Bluetooth
In order to get rid of the USB connection between Melzi and the PC one may like to use Bluetooth. There is a cheap module available in the market called 'JY-MCU' (vendor Shenzhen Jiayuan Electronic Co.,Ltd.).
Before the module can be used the default setting has to be changed. Connect the module from PC via USB<->RS232 (RxD/TxD) interface with default settings (9600, N, 8, 1). The module shouldn't be paired at that moment. Apply with a terminal program the following AT commands:
AT OK AT+BAUD8 OK115200BAUD (set baud rate for Melzi) AT+NAMEHUXLEY OKsetname (optional set name, default: linvor) AT+PIN0000 OKsetPIN (optional set pin, default: 1234)
More details about the configuration you will find here []
On Melzi one of the unused buffer of soldered 4050D takes over the mandatory level-shifting (5V -> 3.3V). Overall only 5 wires have to be soldered.
Connect via Bluetooth
Once you have setup your BT devices you can select from drop down list and control your RepRap as usual.
Broken your Melzi? Maybe this will help:
(Feel free to add your fixes)
Mini-USB connector detached from board
A repair by Kevin T: http://forums.reprap.org/read.php?4,239276
How to get it
Gert added a lcd+rotary encoder on his Melzi, here is some pictures