Lengthened PTFE from 360 to 510mm; how to change MMU code?
 
Notifications
Clear all

Lengthened PTFE from 360 to 510mm; how to change MMU code?  

Page 1 / 2
  RSS
Kryssie
(@kryssie)
Trusted Member
Lengthened PTFE from 360 to 510mm; how to change MMU code?

Hi all,

I have lengthened the between-selector-and-head PTFE tube on my MK3MMU2 to 510mm instead of the 360 that is standard. When I read in the manual that the length of this tube was set by the user I was overjoyed, but alas it's not that simple. Sure, the exact length is adjusted by the user, but the MMU board has a predetermined length that it will wind through and it won't go over the limit of about 450mm. And that brings the tip of the filament within about 50mm of the extruder gear, but no closer.

So my question is: does anyone know how to change this limit within the MMU board firmware? I've been trying to, for the last few days, but I can't get past the errors. I have Arduino 1.8.5 and I have followed the instructions at https://github.com/prusa3d/MM-control-01 as best I can but it still doesn't work properly. Please, if anyone is au fait with this kind of coding, I would greatly appreciate your input...

Fairfarren 🙂

Fair farren

Posted : 06/12/2018 7:21 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Ok, I've had a breakthrough, I found how to make the code verify without errors. 😀 Now all I need to do is find where the bit of code that defines the calibration length is. Could still use a heads-up with that, if anyone knows anything....?

Also, does the MMU1 operate differently than the MMU2? Because the MMU board behaves differently the when it is running MMU1 firmware as opposed to MMU2 firmware. Is there anywhere someone who knows how to access the calibration settings on the MMU1 firmware? The MMU1 doesn't do the idler screw back-and-forth motion upon start up that cues access to the calibration menu....

Fair farren

Posted : 07/12/2018 1:47 am
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

There is no MMU1 firmware; that is part of the printer firmware.

The MMU1 is completely different to MMU2; MMU1 control board was a "simple" switch to pass the current/pulses to the relevant extruder motor.

As for MMU2 feed distances; you may want to take a look at motion.h and motion.cpp

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 07/12/2018 10:57 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Good to know! I will try as you suggested, thank you 🙂

Fair farren

Posted : 07/12/2018 9:51 pm
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?


Good to know! I will try as you suggested, thank you 🙂

One more think; the MMU drives the filament at (very) approximately 20 steps/millimetre. So you will just need to increase the two (primary) loop values by about 20 times the additional length (in millimetres). One loop is for loading, the other for unloading.

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 08/12/2018 12:03 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Aha! thanks for the unit explanation. I didn't know about that. The motion.cpp tab wasnt' much use, but I found something that makes a difference to the extrusion length under in the permanent storage.cpp...
30 static const uint16_t eepromLengthCorrectionBase = 7900u; //!< legacy bowden length correction base
31 static const uint16_t eepromBowdenLenDefault = 8900u; //!< Default bowden length
32 static const uint16_t eepromBowdenLenMinimum = 6900u; //!< Minimum bowden length
33 static const uint16_t eepromBowdenLenMaximum = 10900u; //!< Maximum bowden length

I don't if this is the *right* thing to edit, but I've played with these number a bit and it's definitely improved the performance. The filament gets to *just* above the extruder gears in the head now, instead of stopping within the PTFE 50mm above the head! Still some refinement to do though, obviously.

Thing is, when running on firmware that I upload via Arduino, the MMU unit doesn't do the back-and-forth start-up sequence as described on page 4 of the Service Menu manual. Which is annoying because I don't know exactly what sequence of buttons to use to get into the calibration menu. It works sometimes, when I get the sequence right by accident! Not the most reliable system 🙄 but better than before!

Still happy for any suggestions 😀

Fair farren

Posted : 08/12/2018 11:23 am
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Whenever I have compiled the MMU firmware, it behaves exactly as the original.

I like to speed up some filament movements (stiff filaments) and slow down others (soft filaments) so I do compile it quite often and it's the motion.cpp that I go to first for this.

When compiling, I either use "Leonardo" or (more recently) the MMU board. Anything else will cause problems or not compile properly. I also upload directly from Arduino IDE.

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 08/12/2018 11:56 am
ruud.r
(@ruud-r)
Active Member
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Yes, Line 33 is the Line tot change..

Novice that I suggested this to change in pull request #75, and this has been merged by the prusa team.. I also changed the speed for calibration. This is also merged and improved in change #85 by prusa. (In Buttons.cpp).

Posted : 09/12/2018 1:29 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Thanks. I have another issue now, I don't know if it's spoken of elsewhere... When I run the XYZ calibration it works perectly but hte Z height is not registered as a number, only shows '?' and when I run the First Layer Calibration (now that I can because I can get the filament into the head - yay!) it still shows the Z height as '?' and I can't adjust the height off the bead. Why is this happening???

Fair farren

Posted : 10/12/2018 3:22 am
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?


Z height is not registered as a number, only shows '?'

That's because you compiled the printer firmware without following the instructions 🙁

See section 1. c. of this page: https://github.com/prusa3d/Prusa-Firmware

modify platform.txt to enable float printf support:
add "-Wl,-u,vfprintf -lprintf_flt -lm" to "compiler.c.elf.flags=" before existing flag "-Wl,--gc-sections"
example:
"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 10/12/2018 9:58 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Ok, I'm obviously stupid, but where is the platform.txt located?

Fair farren

Posted : 10/12/2018 11:13 pm
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Well, I did a search of my C: drive and found about 6 of them.

I think it's the one on the Arduino folder in Programs (x86)

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 11/12/2018 8:50 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

I have 10 in all! But that also include those for version 1.8.5.

The only place I can find that there is a "compiler.c.elf.flags=" is in E:\arduino-1.6.9-windows\arduino-1.6.9\hardware\arduino\avr
That bit of code says "compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,--gc-sections", as opposed to the "compiler.c.elf.flags=" before existing flag "-Wl,--gc-sections" suggested by https://github.com/prusa3d/Prusa-Firmware

I am not a coder (at all!). I have been through all the pages of code in all the platform.txt files that have anything to do with Arduino1.6.9 (I printed them out and perused them the old-fasioned way - with a red pen and a ruler to keep my place 🙂 and this is the only reference I can find that includes the all-important "-Wl,--gc-sections". But I'm confused: what of the braces? do I slip the "-Wl,-u,vfprintf -lprintf_flt -lm" inside the braces? Replace the braces and "compiler.warning_flags" with "-Wl,-u,vfprintf -lprintf_flt -lm"?

Fair farren

Posted : 12/12/2018 5:38 am
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

The folder where I found the Platform.txt to change: C:\Program Files (x86)\Arduino\hardware\arduino\avr

The line in the file is now this:

compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections

But I am pretty sure that when I made the change the "{compiler.warning_flags}" was not present, but a "-w" was there.

However, you only need to do this if you want to compile the main printer firmware; it's not needed to compile the MMU firmware.

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 12/12/2018 9:55 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

I need to edit the printer firmware as well, because the Z-axis is now 350mm high, thereby needing a longed bowden. I thought I had got it right, but apparently not 😉

I have modified the fifth line in E:\arduino-1.6.9-windows\arduino-1.6.9\hardware\arduino\avr to read "compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,-u, vfprintf -lprintf_flt lm -wl,--gc-sections", launched Arduino and re-flashed the MK3 firmware but still "?" to show height, even after the full wizard calibration...

Any more suggestions?

I'm going to flash the original, Prusa-supplied firmware tonight to see if I can get the Z axis to show up as normal, then re-try flashing 'my' firmware.

Fair farren

Posted : 13/12/2018 3:49 am
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Yep, so I flashed the original Prusa 3.5.0 firmware HEX file and the Z height reads as 0.00. Yay. Unfortunately I can't use that firmware because the z-axis doesn't go high enough. So I re-flashed the printer with the modified firmware and the Z height reads ?. My only conclusion is that I screwed up somewhere else in the firmware when I was trying to get the height changed, so I will go back to the untouched source code from Github and do it ALL OVER AGAIN. 😥 Sigh. Hopefully that will negate the problem, because I've tried all that you have suggested and the problem remains...
Any other suggestion are of course welcome...

Fair farren

Posted : 13/12/2018 10:25 am
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

No, the X value of "?" is caused by the platform.txt, and the compiler not being able to use the "fprintf" function.

You will probably have to search your whole PC for the platform.txt file and change them all 🙁

However, I seem to recall that I did just that; it was only when I re-installed the Arduino software that I was able to change the relevant file and it then worked.

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 13/12/2018 11:47 am
maxx78
(@maxx78)
Estimable Member
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Jakub just postet the RC of the 1.0.3 Firmware. it now supports bigger lengths for the PFTE to the extruder.

Look here:

https://shop.prusa3d.com/forum/general-discussion-announcements-and-releases-f53/firmware-1-0-3-rc1-for-the-mmu2-unit-t26512.html

Posted : 13/12/2018 1:07 pm
PJR
 PJR
(@pjr)
Moderator
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?


Jakub just postet the RC of the 1.0.3 Firmware. it now supports bigger lengths for the PFTE to the extruder.

But not the additional height that requires the longer Bowden 🙁

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 13/12/2018 4:38 pm
Kryssie
(@kryssie)
Trusted Member
Topic starter answered:
Re: Lengthened PTFE from 360 to 510mm; how to change MMU code?

Thanks PJR, I have uninstalled Arduino 1.6.9, reinstalled it cleanly and gone through the three 1.6.9-asocciated platform.txt files. There is only one to do with version 1.6.9, found in E:\arduino-1.6.9-windows\arduino-1.6.9\hardware\arduino\avr" that has "compiler.c.elf.flags={compiler.warning_flags}" in it, which I modified to read "compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections". (I searched within the text of all three files and this was the only one.) And then flashed the firmware and viola! Still ?.

I also found "compiler.c.elf.flags={compiler.warning_flags} -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections" in Arduion 1.8.5 but I didn't change anything because I don't use that version for the printer, only the MMU and it looks like it has a job already, what with "fuse linker plugin"...

I'll try other things later, if I can think of any... Maybe uninstall everything Arduino-related and just load 1.6.9...

Edit: Ok, I've uninstalled EVERYTHING to do with Ardiuno, and just re-installed 1.6.9, edited the only applicable platform.txt file, selected the correct .json resources and board, flashed the firmware and again, ?

Edit#2: I've done this: In E:\arduino-1.6.9-windows\arduino-1.6.9\hardware\arduino\avr, open platform.txt. Modify platform.txt to enable float printf support: compiler.c.elf.flags={compiler.warning_flags} -Os -Wl,-u, vfprintf -lprintf_flt lm - wl,--gc-sections

Copy the 1_75mm_MK3-EINSy10a-E3Dv6full file from E:\Users\My Pictures\Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0\Firmware\variants into
E:\Users\My Pictures\Prusa-Firmware-3.5.0\Prusa-Firmware-3.5.0\Firmware. Rename it Configuration_prusa.h. Open Firmware Arduino file. Change //Travel limits after homing #define Z_MAX_POS from 210 to 350. Verify and upload.

I also tried it without changing ANYTHING in the firmware, and still...

Z axis is ?

Fair farren

Posted : 13/12/2018 11:15 pm
Page 1 / 2
Share: