Converting a Flashforge Creator Pro to use Duet
-
I swapped my FFCP to DuetWifi almost a year ago, and I am very happy with the conversion.
Wow…
So, I think I finished. (At least with the wiring.) I ran into some serious issues, though, and wanted to post about them (so they might help future people doing the same project):
1. Mine only had a 320W PSU in it, and that's just not enough power for 2 extruders and the HBP. That's been replaced with a Mean Well SE-450-24 450W unit. (That has an always-on fan. ) To be completely honest, even the 350W PSU in most FFCP's is insufficient for running the factory HBP heater and two 40W extruder heaters.
2. Had major issues getting the thermocoupler board working. After falling into "I'll try anything" mode, it turned out I needed to use X150 instead of X100 when setting it up. It'd be useful if a specific version/model was printed on the PCB, as reading the numbers on the chip is extremely difficult for some (most?) of us.
3. Had major issues with the FFCP "Rev J" HBP. Any time the HBP heater was turned on, the PSU would turn off. To make a (very) long story short, the problem is that the FFCP RevJ heater is an extremely low resistance heater that wants to draw over 14amps@24V (yes, that's over 330W in a machine with only a 320W PSU.) When it got turned on, the PSU just couldn't handle the massive inrush of current, and the protection circuits would kick in. The resolution was to steal a hack from the Sailfish firmware and set the heater's max PWM to 85%. (I wonder if I ran at 85% PWM, and then gradually increased the PWM to 100%, if the PSU would handle it. It is (now) a 450W PSU, so it should be doable. I'll need to experiment to see if it's possible to always start the heater at 85% PWM and increase it gradually.)
4. I'm going to have to (eventually) remount the duet board. Currently, I have the bottom half of a mount from thingiverse taped (3M super strength automotive molding tape) to the underside of the case, and the duet board mounted to that. What I eventually want to do is re-print another duet case half, but with mounting holes that match the mightyboard that came out of the FFCP. Then I can mount the case-half to the original mounts, and the duet to the duet mounts.
Some non-major issues I've come across:
1. The duet firmware has wonderful support for z-probes. Without the z-probe, however, there are a lot of useless options in the web interface and gcode.
SUGGESTION: There should be a way to tell the firmware that there's no z-probe installed. If that is selected, then the various "auto-level" things, instead of running "bed.g" could run a "bed-manual.g" instead. The bed-manual.g could contain something similar to my own bed levelling macro. (home the printer, move to Z5, move the extruder to center X/Y, move to Z0, turn off all stepper motors EXCEPT Z, display a message telling the user to move the carriage around and level, etc.2. I'm still trying to decide if I want to have X=0, Y=0 as the center of my build plate (which is how sailfish/makerbot does things - and what I'm used to) or if I want to do things reprap style and set 0,0 to the "home" location (which might make things odd because the FFCP endstops are in the rear right corner.)
3. I really wish the paneldue supported some kind of screen timeout/blanking.
SUGGESTION: It would be nice if the paneldue, when the status (as shown in the upper right) is idle, would turn off the backlight after a configurable number of minutes. This might help extend the life of those cheap LCD screens.4. When testing fans, I keep trying to use M126/M127. (They don't exist in reprap firmware.) I'd love to be able to alias non-existent gcodes to existing ones. (Example: I'd alias M126 to M106 and M127 to M107.)
5. Somewhat related to #2 (0/0 at center or at home), I'm trying to decide how I want to offset my two extruders. (I like having two, and often do dual extrusion.) I can keep things similar to Sailfish where the right tool is T0 and the point of origin (and the left tool, T1, is offset from that) – or -- I can have the point of origin be exactly center between the left and right tools, each of them being offset from it. I suppose if I keep X0/Y0 at the center of the build plate, I'll configure the tool offsets to also be the same as sailfish.
Oh, and of course I need to get everything configured and actually print something.
Take care
Gary -
Gary, thanks for your feedback. I am glad you have your machine working with the Duet. I have a few comments on your feedback:
Firmware configuration for the thermocouple boards: As a result of your comments, I have rewritten the text and provided an additional photo, which I hope will be clearer to the next person.
Insufficient PSU capacity: Another way to get it working with your old PSU would have been be to turn down the voltage adjustment potentiometer on the PSU. But replacing it with one of an adequate size as you have done is better.
Operation without a Z probe: The Duet does support this since firmware 1.19, but configtool doesn't yet. So you should edit your config.g file, changing the P parameter in the M558 command to P0. You can use a normal bed.g file and even do mesh bed compensation. Every time a point needs to be probed, you will be prompted to lower the nozzle until it just touches the bed. You need to install PanelDue firmware 1.20RC1 on your PanelDue to get the prompts on it, or you can use the web interface, or even USB.
PanelDue backlight: I am not aware of the backlight LEDs on the TFT panels having ever failed. So I don't think you need to worry about the backlight wearing out. Dimming the LCD after a number of minutes is on the wish list; meanwhile you can reduce the brightness manually.
M127/M127: These are listed at http://reprap.org/wiki/G-code#M126:_Open_Valve as being "Open valve" and "Close valve", so I don't think it is appropriate for them to control fans.
-
I've replaces the original LCD display to the PanelDue 4.3", which is very handy.
I've made a special mount which enables to install the PanelDue directly instead of the original LCD display.What do you mount that bracket to? Did you also make a part that fits in that front section with mounting holes?
For mine (5" screen), I'm trying to come up with some kind of frankenmount merge between dc42's paneldue mount (as posted on thingiverse) and attaching the rear lid of that to something like this: https://www.thingiverse.com/thing:1452323. The end result would (hopefully) be the 5" panel attached to the front of the FFCP at a 45 degree angle. I hope.
-
Firmware configuration for the thermocouple boards: As a result of your comments, I have rewritten the text and provided an additional photo, which I hope will be clearer to the next person.
Thank you. Even just (in bold text so it's harder to miss) mentioning that "if you have black terminals, use X150. For green terminals, use X100. If your terminals are a different color, pay closer attention to the pictures."
So you should edit your config.g file, changing the P parameter in the M558 command to P0. You can use a normal bed.g file and even do mesh bed compensation. Every time a point needs to be probed, you will be prompted to lower the nozzle until it just touches the bed. You need to install PanelDue firmware 1.20RC1 on your PanelDue to get the prompts on it, or you can use the web interface, or even USB
So, I have all that going on, and even have a M671, but I'm not sure that's what I really want. I guess I'm just so used to my "old way" of doing things, that I'm having a mental block with the newer stuff. Perhaps I'll get a z-probe and see how it works out.
One thing "missing" from the levelling routines (I think) is pre-heating the build surface. If I level my bed on a cold platform, I usually have problems once the bed is heated.
For anyone else, here's my current "manual levelling" macro:
G28 ; home all G90 ; absolute positioning G1 Z5 F800 ; drop the build plate slightly (give room to move past any glass corner clips) G1 X0 Y0 F1800 ; move to center G1 Z0 F200 ; slowly raise the build plate to home position (don't crack glass if too close) M84 ; turn off the motors - this is the wrong command... there's another one that should allow me to turn off X/Y but not Z. M291 P"Please wait while heated the bed" R"Manual Levelling" S0 T0 ; Display message M190 S90 ; heat the bed - this blocks m300 s1500 P200 ; beep M292 ; Hide the message M291 P"Move the carriage manually to level the build plate" R"Manual Levelling" S2 ; after response, lower z to z150. M190 S0 ; turn the bed off G1 Z150 F1200
M127/M127: These are listed at http://reprap.org/wiki/G-code#M126:_Open_Valve as being "Open valve" and "Close valve", so I don't think it is appropriate for them to control fans.
I'm not asking that the gcodes be added to the firmware… I'm asking that the firmware allow a user to create command aliases. It might not be appropriate for M126/M127 to control a level fan, but it IS what sailfish/GPX uses (and I have a lot of gcode based on that.) If I could somehow alias M126 to M106 (and a few other commands) I could reuse that gcode without having to do search/replaces.
-
Another "major" complaint:
Before I installed the Duet, I had captured R2-D2 (you know.. the robot in the original Star Wars movies.) I stuffed him inside my printer, and any time I'd print, he'd make all kinds of noise. My kids loved it.
Since installing the Duet, it appears that either R2 is dead, or he escaped.
Is there any way to get him back?
(non-sarcastic version: OMG, how did a bunch of non-moving circuits make my printer so quiet???? I have the exact same steppers, extruder gears, etc. Now all I hear are fans. )
-
If your kids miss R2D2, you can get him back at least partially by turning off microstep interpolation in the M350 command. But you may still find him quieter than before, because the step generation algorithm generates smoother motion than some other firmwares do.
-
Can you guy
s with the Creator pro
s please post your home xyz and home all .g files please? -
I'd be happy to. Mine tries to operate similar to how Sailfish + Simplify3D did. For hardware, I'm using the FFCP steppers, heaters, thermo-devices, endstops, etc. I have X0,Y0 in the center of my build plate. I'm sure I'm not done messing with this, but I am able to print, so it's a good starting point.
(google drive shared .zip file)
https://drive.google.com/open?id=1x03T6Pf4WdeVBwW9Q0RbWoQ5moN52djS
(Here's just the homeall file… all the rest and some other stuff are in the above linked zip.)
[[language]] G91 ; relative positioning G1 Z5 F6000 ; lift Z relative to current position G1 S1 X266 Y155 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 X-5 Y-5 F6000 ; go back a few mm G1 S1 X266 Y155 F360 ; move slowly to X and Y axis endstops once more (second pass) G1 S1 Z-155 F1800 ; move Z down stopping at the endstop G1 Z5 F1200 ; back off a bit G1 S1 Z-155 F100 ; move back to the endstop slowly G90 ; absolute positioning G92 X150 Y75 Z0 ; set new X/Y/Z position
-
Many Thanks for the info… See how it goes... cheers
-
I've replaces the original LCD display to the PanelDue 4.3", which is very handy.
I've made a special mount which enables to install the PanelDue directly instead of the original LCD display.What do you mount that bracket to? Did you also make a part that fits in that front section with mounting holes?
For mine (5" screen), I'm trying to come up with some kind of frankenmount merge between dc42's paneldue mount (as posted on thingiverse) and attaching the rear lid of that to something like this: https://www.thingiverse.com/thing:1452323. The end result would (hopefully) be the 5" panel attached to the front of the FFCP at a 45 degree angle. I hope.
Hi Gary,
You can download the bracket I made at this link:
https://www.thingiverse.com/thing:2740508
The brackets fit directly into the original bolts holes.If you want the bracket file in another file format (sldprt, X_t), I can send it to you.
Another "major" complaint:
Before I installed the Duet, I had captured R2-D2 (you know.. the robot in the original Star Wars movies.) I stuffed him inside my printer, and any time I'd print, he'd make all kinds of noise. My kids loved it.
Since installing the Duet, it appears that either R2 is dead, or he escaped.
Is there any way to get him back?
(non-sarcastic version: OMG, how did a bunch of non-moving circuits make my printer so quiet???? I have the exact same steppers, extruder gears, etc. Now all I hear are fans. )
HaHa, I liked how you described that.
Indeed the noise difrenece between the original board to Duet is huge.
with the Duet all I can hear is the fans noise, which isn't terrible at all, even in a quiet environment like my room. -
Can you guy
s with the Creator pro
s please post your home xyz and home all .g files please?Here are my home files:
homeall.g
[c]
; homeall.g
; called to home all axesM98 Phomex.g; Calls to the file homex.g
M98 Phomey.g; Calls to the file homey.g
M98 Phomez.g; Calls to the file homez.g
[/c]homex.g
[c]; homex.g
; called to home X axisM913 X30; Set X motor current to 30% of its normal current to avoid ramming in case of crash
G91; Switch to relative positioning
G1 Z5 F300; Lower bed by 5[mm] in travel speed 5[mm/sec] to avoid crashing; First pass (Corse movement)
G91; Switch to relative positioning
G1 X-295 F1200 S1; Move X axis to towards the endstop at travel speed of 25[mm/sec] (F1500) stop when endstop triggers (S1)
G92 X0; Set X to home positions; Go back a few mm
G1 X5 F600; Move X axis by 5[mm]; Second pass (Fine movement)
G1 X-10 F300 S1; Move X axis to towards the endstop at travel speed of 6[mm/sec] (F360) stop when endstop triggers (S1)
G92 X0; Set X to home position
G90; Switch to absolute positioningM913 X100; Reset X motor current to normal current
[/c]homey.g
[c]
; homey.g
; Called to home the Y axisM913 Y40; Set Y motor current to 40% of its normal current, to avoid ramming in case of crash
; First pass (Coarse movement)
G91; Switch to relative positioning
G1 Y-165 F1200 S1; Move Y-axis to towards the endstop, at travel speed of 20[mm/sec] (F1200), stop when endstop triggers (S1)
G92 Y0; Set current Y-axis position to home position
G1 Y5 F600; Move back Y-axis by 5[mm]; Second pass (Fine movement)
G1 Y-8 F300 S1; Move Y-axis to towards the endstop, at travel speed of 6[mm/sec] (F360), stop when endstop triggers (S1)
G92 Y0; Set Y position to home position
G90; Switch to absolute positioning
M913 Y100; Reset Y motor current to normal current 100%
[/c]homez.g (Using dc42 IRProbe)
Note: Don't copy my homez.g script because I do have some problems with it.
for some reason the G30 is not working all the time, maybe my IRprobe is not fixed to the correct height, so I get errors.
[c]
; homez.g
; called to home the Z axis; Prepare for Z-axis homing
M913 Z80; Set Z motor current to 80% of its normal current, to avoid ramming in case of crash
G91; Switch to relative positioning
G1 Z5 F300; Move bed 5[mm] down, at travel speed 5[mm/sec], to avoid nozzle crash in case the bed is above the nozzle
G90; Switch to Absolute positioning
G1 X120 Y70 F3000; Move carriage to bed center, at travel speed 50[mm/sec]
; Home Z-axis
G91; Switch to relative positioning
G1 Z-175 F240 S1; Raise bed all the way up, at travel speed 5[mm/sec], stop when hit the endstop (S1)
G1 Z3; Lower bed by 3[mm]
G92 Z6; Set Z position
G30; Probe the bed at the current XY position. When the probe is triggered, set the Z coordinate to the probe trigger height
G90; Switch to absolute positioning
M913 Z100; Set Z motor current back to 100%
[/c] -
In case someone in the future decides to do this worthwhile conversion, I'm posting a link to an STL I created that allows mounting a Duet Wifi or Duet Ethernet in a flashforge creator pro (using the existing mightyboard standoffs.)
https://www.thingiverse.com/thing:2748835
(Is there someplace in the duet3d wiki for posting these types of things?)
-