Welcome! Log In Create A New Profile

Advanced

Melzi V2 Board question

Posted by metamargatsni 
Melzi V2 Board question
December 24, 2024 04:28PM
Hi, I'm a new user so not sure if I've posted this in the correct section - sorry if it's in the wrong one! I wasn't sure where it should go so General it is

I have an old RepRap printer that I obtained about a year ago - it was in pieces when I got it. I believe it is / was a RepRap Pro Mendel from about 2012. The PCB was connected to the servos and bed etc but has since been disassembled again, a while ago. I bought it as 'parts'. I now would like to see if I can use the board for another project but I'm having issues communicating with the board. Initially it was missing a jumped which set the power input, but I've now sorted that issue and can get it powered by a 12v external input. If I plug it into my Win 10 PC, I can get a red light to come on, but I can't seem to get any info from it when connected. I've tried - Pronterface, Candle, Lightburn, Arduino IDE and possible others - can't remember. I've also tried changing the baud from 576000 to 115200 and one piece of software was meant to auto search but it wouldn't connect either.

The board I have is one of these -


Any suggestions as to anything else I should try of anything specific I should try with the software already tried?
Thanks!

Edited 1 time(s). Last edit at 12/24/2024 04:28PM by metamargatsni.
Re: Melzi V2 Board question
January 03, 2025 09:30AM
My advice is -- don't. Melzi boards are just not very good design, they kind of work on 12Volt supplies but just tend to flake apart on higher (and they nearly always come with laptop style power supplies, which struggle to give enough amps at the best of times to keep heater temperatures stable).


There is a write up on these, they don't even use Arduino Mega 2560 kind of 8 bit controller, they started on the much older 644 and later 1284P.

[reprap.org]

You might get Marlin onto the thing, 1.X version, but that's it.

Or, you could try Klipper, which does have a Melzi option, but it's still going to be terrible. I gave up the struggle with these things, they just are not reliable.

Arduino Mega 2560 and RAMPs is much nicer, if you change out the MOSFETS for something that can reliably supply amps. Or, the Trigorilla Anycubic, which is pretty much an all in one clone of an Arduino 2560 Mega with RAMPs. Very nice.

There are other clones of mega 2560 and RAMPs and even the poor ones are better than a Melzi, in my opinion.

Edited 4 time(s). Last edit at 01/03/2025 09:38AM by DragonFire.
Re: Melzi V2 Board question
January 03, 2025 11:26AM
Communicating with the board is currently what I'm trying to do and can't - anything further (loading Marlin etc) is a potential next step, but if I can't communicate with it, everything else is pointless.
Re: Melzi V2 Board question
January 04, 2025 04:50AM
Communications with this board is two part

a) the board has a FT232RL serial to USB chip.
Your operating system needs drivers to see this and talk to it.
Also due to ftdigate (google it) , this converter chip may be bricked (its old enough to have been caught by this)

b) the MPU has to be running some code to respond to serial.
This includes the baud rate

Most common baudrate is 115200 or 250000

Also note that some of these board have a very slow startup, 10 seconds or so. Give it a good amount of time to start up.

Pronterface is good for this.

Also Make sure your not using a charge cable! (thosse don't have data wires)

Edited 3 time(s). Last edit at 01/04/2025 05:06AM by Dust.
Re: Melzi V2 Board question
January 04, 2025 08:10AM
Thanks, I wasn't aware of FTDIGate so will do some reading, but I expect my board to be genuine and not affected.

I already own a 3D printer (Creality Ender 3 and 5), a laser engraver (Ortur LM2) and a 3018 CNC engraver, so I'm well aware of drivers, CH340, COM ports, baud rates and other such settings. When I plug the boar din, it is recognised as a COM port and I've tried baud rates from 9600 to 115200. I also know I'm not using a charge only cable as it's the cable I use to communicate with other devices (see above).

I've given more than long enough for my board to startup - I have lots of old hardware that takes time, so I'm aware that things don't start 'immediately'.

Again, as above, I've tried Pronterface and it can't access / see / communicate with the board. My computer sees the board controller but I can't get any info from it / to it via the software I mentioned in my first post above.
Re: Melzi V2 Board question
January 23, 2025 07:46PM
Did you have any luck with this? I'm about to recommission my original 13 year old Reprappro Mendel which came with this same board.
In order for Mattercontrol to communicate with it from my windows computer for the first time I had to set the central jumper to be powered from the USB plug rather than the power supply.
After that first time its now connecting fine after putting the jumper back.
I believe the baud rate it self configured to is 115200.
Re: Melzi V2 Board question
January 24, 2025 07:17AM
No, it's gone onto the back burner and I'm now trying to get to grips with an Arduino Uno and a CNC shield. With that, I've got motion but can't get the limit switches and / or homing to work - but at least I can communicate with it!
Re: Melzi V2 Board question
June 14, 2025 11:37AM
OK, well, I’m not an expert on the Melzi V2, but I’ve got one, and it works, so with a bit of contrast and compare, I guess we should be able to work out why your doesn’t.

First a bit of history. Mine too came as part of a Reprappro Mendel, and I still use the printer today, but it has gone through several updates over the years – both software and hardware; but it it is still the Melzi V2 board controlling it all. My Mendel came as a kit of parts but I think I supplied my own studding, washers, bolts, glass. I think when the board was shipped (in 2013) it came with Marlin 1.0.2 software. I am now running Marlin 2.0.5.3. I discovered early on that the USB interface is a bit iffy, and gave up printing directly from the PC (with pronterface). So for the last 10 or 11 years or so I put the SD card on the PC and copy files directly to that, and then print from the SD card on the Mendel starting the print off with pronterface. One of the hardware upgrades I have done was to add a graphics screen – something called a “RepRapDiscount Full Graphics Controller”. There are some pictures of the thing here.The graphics screen upgrade is the best thing you can do, because after the USB comms dies, you can still monitor progress with the Z co-ordinate. You will probably not find any info about connecting this display to the Melzi board, but I’ve done it, and it’s the best thing I’ve done to the printer. I can either start a print off with pronterface on the PC, or go through the menus on the graphics card and print that way. It is easier with pronterface, but as I say, comms usually dies after a few minutes. Hmm I see my pronterface identifes itself as “printrun 2.0.0rc8”. Wow ! I see I have printed over 23km of filament on just this one PC.

Yeah, OK, so the USB is a bit iffy. Powering up the board it should identify itself as something like /dev/ttyUSB0. I found out that for unknown reasons this would change on the fly, and it might suddenly change to /dev/ttyUSB1 or 2 or whatever. To overcome this I have set up a udev rule in file /etc/udev/rules.d/93-my.rules containing the line
SUBSYSTEM=="tty", ATTRS{serial}=="A602VL3Y", SYMLINK+="reprap"
Now it always shows up as /dev/reprap even when it moves about. Never pinned down why the USB was so iffy, it may be my cable, but I’ve lived with it and worked around it so long, I cannot be bothered to worry about it now.

If you don’t have /dev/ttyUSB0 (or whatever) then the board is scrap, or maybe you’ve got the bluetooth mod – I did see a mod for that kicking about somewhere.

OK, so assuming you’ve got /dev/ttyUSB0 (or whatever) let’s go a bit further.

The board has two sets of jumpers. With the board flat and the USB socket closest to you, there are two basic configurations.

In the centre of the board those jumpers select the power source. Joining together the middle and rear pin selects the exterior power which I assume is the RepRapPro 12V 20A PSU, and joining the middle and the front pin selects the USB power. USB power is not enough to power my graphics display, so I always use exterior power, so I leave middle and rear joined together.

At the right hand end of the board is a two pin jumper. This is the Atmel Reset, and is only used i.e. jumpered together; when reading or programming the atmega1284. Normally it is left open.

OK, so let’s see if the Atmega can be read. Short the two pins on the right hand side. Enter the following command…

$ avrdude -p m1284p -c stk500v1 -P /dev/reprap -b 57600 -U flash:r:flash_backup.hex:i
Reading flash memory ...
Reading | ################################################## | 100% 38.42 s 
Writing 130824 bytes to output file flash_backup.hex

Avrdude done.  Thank you.
$
OK, I guess I should mention at this stage that my avrdude now identifies itself as 8.0. Now try reading the eeprom
$ avrdude -p m1284p -c stk500v1 -P /dev/reprap -b 57600 -U eeprom:r:eeprom_backup.hex:i
Reading eeprom memory ...
Reading | ################################################## | 100% 16.37 s 
Writing 4096 bytes to output file eeprom_backup.hex

Avrdude done.  Thank you.
$ ls -al *.hex
-rw-r--r--. 1 mike mike   9740 Jun 14 16:21 eeprom_backup.hex
-rw-r--r--. 1 mike mike 310744 Jun 14 16:20 flash_backup.hex
These files will be Intel format. Your numbers will probably be slightly different, but that's about the size and shape of the thing.

If you can download this data OK, then I guess, if you cannot talk to the Marlin software, either the program on the chip is corrupt or the comms parameters are wrong. I seem to remember that Marlin did at one time autobaud, so hitting return several times in a pukka comms program like minicom may elicit a response.

When I use pronterface I use a baud rate of 115200.

Err, bit unsure about this next bit, because to program up the board with a newer version of Marlin, I used the Arduino IDE. Problem now is, they’ve changed the Arduino IDE, and it’s all different now. I have some notes about what I did to get it working back in 2020, I had to add lines to .../hardware/sanguino/avr/boards.txt when the IDE changed from 1.0.4 to 1.8.5 and now they are on 2.something I guess it is all changed again, so it may be that file or something else.

If you do get the IDE working, when I programmed up the card back in 2020 my output looked like this...
Sketch uses 102634 bytes (79%) of program storage space. Maximum is 129024 bytes.
Global variables use 3758 bytes of dynamic memory.
/usr/bin/avrdude -C/etc/avrdude/avrdude.conf -v -patmega1284p -cstk500v1 -P/dev/ttyUSB1 -b57600 -D -Uflash:w:/tmp/arduino_build_737028/Mikes_Original_System_With_Display_Compilable.ino.hex:i 

avrdude: Version 6.3, compiled on Feb 17 2019 at 08:49:25
         Copyright (c) 2000-2005 Brian Dean, [www.bdmicro.com]
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude/avrdude.conf"
         User configuration file is "/home/mike/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB1
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega1284P
         Chip Erase delay              : 55000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         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.04s

avrdude: Device signature = 0x1e9705 (probably m1284p)
avrdude: reading input file "/tmp/arduino_build_737028/Mikes_Original_System_With_Display_Compilable.ino.hex"
avrdude: writing flash (102634 bytes):

Writing | ################################################## | 100% 32.06s

avrdude: 102634 bytes of flash written
avrdude: verifying flash memory against /tmp/arduino_build_737028/Mikes_Original_System_With_Display_Compilable.ino.hex:
avrdude: load data flash data from input file /tmp/arduino_build_737028/Mikes_Original_System_With_Display_Compilable.ino.hex:
avrdude: input file /tmp/arduino_build_737028/Mikes_Original_System_With_Display_Compilable.ino.hex contains 102634 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 30.05s

avrdude: verifying ...
avrdude: 102634 bytes of flash verified

avrdude done.  Thank you.

Anyway, good luck. I hope this is of some use to you.

P.S. Somewhat fortuitously I took an archive of the reprappro.com website before it disappeared in 2016, so I have a complete copy of the build instructions of the Mendel and Mendel Tricolour.
Sorry, only registered users may post in this forum.

Click here to login