Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. Eumldeuml
    • Profile
    • Following 0
    • Followers 0
    • Topics 19
    • Posts 78
    • Best 4
    • Controversial 0
    • Groups 0

    Eumldeuml

    @Eumldeuml

    I like to overengineer stuff. I can sit on my printer during a print and it doesn't care lol

    4
    Reputation
    5
    Profile views
    78
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Eumldeuml Unfollow Follow

    Best posts made by Eumldeuml

    • Grounding a frame made of aluminium extrusions?

      Hello all!

      In the process of rewiring my printer (getting rid of the pasta in the back) I did some sanity checks with a multimeter and I was shocked (not literally lol) to see that the ground connection to the printbed does not ground the entire frame (most likely due to the anodising of the extrusions).
      If the anodising is non-conductive is there even a need to ground the entire frame? Or does a stray current penetrate the anodising and trigger the main fuse anyway?
      If not: How can I ground the entire frame without dissassembling the whole printer and sanding away the anodisation at every contact point between two extrusions?

      posted in 3D Printing General Chat
      Eumldeumlundefined
      Eumldeuml
    • RE: Gradual layer shifts with integrated JMC stepper servos

      Thank you all for your answers and your tips, even though I couldn't find a solution after hours of tinkering. That's why I admitted defeat and ordered new, better suited stepper motors. The old ones were 0.9° motors with sub-optimal parameters (according to the EMF calculator) which gave me a lot of reliability issues, mainly random unpredictable step losses. For this reason I wanted to upgrade to the JMC servos that I had lying around anyway, just to open another can of worms 😵
      Live and learn I guess... Thanky anyway! 🙂

      posted in Tuning and tweaking
      Eumldeumlundefined
      Eumldeuml
    • Where do you use machining for 3D printing?

      Just a question out of curiosity 🙂
      Where and what for do you use machining (milling, turning) for your 3D printers or in conjunction with your 3D printed projects?

      I will start with a few parts that I did:

      This is an extruder drive wheel made from brass:
      0_1567711807063_20181121_221725.jpg

      I also made my own heater blocks ('cause I'm cheap and milling is fun). The left one is one from china in comparison:
      1_1567711807063_20190105_200046.jpg

      Here is a custom cooling block for a tilting extruder (which was later replaced with a watercooled one):
      3_1567711807063_20190325_214559.jpg
      For the cooling blocks I also had to make an M7 tap...2_1567711807063_20190316_192735.jpg

      And finally some brackets for an absurdly overpowered 32 mm ball screw that I got from eBay for next to nothing. To be fair, my printer is quite sturdy and heavy (about 25 to 30 kg for the whole thing) but that ball screw still is completely overkill. That's why I'm also using it as a 'guide rod' for the print bed (which in theory isn't very good practice but since it came from a CNC milling center it couldn't care less about the side load). On the other side of the print bed there's a puny 16 mm rod to keep it from rotating.
      4_1567711807063_20190905_211927.jpg

      I'm looking forward to see what you guys do in metal for your hobby! 😄

      posted in General Discussion
      Eumldeumlundefined
      Eumldeuml
    • RE: Request: Check for lost steps

      Obviously it isn't clear... 😅
      The feature isn't something that helps during a print, just during setup and troubleshooting.

      I'll try to make up an example:
      Let's say you command your z-axis to move 10 mm. You look at your printer and you'll see the motors running and the bed moving.
      But unless you put a dial indicator or calipers against the bed you'll never know how much it actually moved.
      If your steps/mm are calibrated right then one could assume that your axis moved the right distance and most of the times that is true.
      But let's say you're tuning in your accelerations or maximum speeds (or maybe even the anti-backlash but on your leadscrew which could produce too much friction if too tight): Unless the motor loses a lot of steps and makes horrible noises of you see the print bed stuttering there is no way of knowing if your motors can handle this speed.

      So what you would do now (with my proposed feature):

      1. Press the button "check for lost steps" (or however it will be called)
      2. the axis (in this case the z-axis) will go to its homing switch
      3. If the motor didn't lose any steps the distance to the homing switch is exactly the distance that you can read in your UI (-> the real position and the assumed position did match).
        But if any steps were lost the firmware would read the endstop as triggered before or after the distance that was displayed. The difference in mm times the steps/mm will give you a value for how many steps weren't performed.

      I hope this makes it clear since I don't know how to make it clearer 😅

      posted in Firmware wishlist
      Eumldeumlundefined
      Eumldeuml

    Latest posts made by Eumldeuml

    • RE: Gradual layer shifts with integrated JMC stepper servos

      Thank you all for your answers and your tips, even though I couldn't find a solution after hours of tinkering. That's why I admitted defeat and ordered new, better suited stepper motors. The old ones were 0.9° motors with sub-optimal parameters (according to the EMF calculator) which gave me a lot of reliability issues, mainly random unpredictable step losses. For this reason I wanted to upgrade to the JMC servos that I had lying around anyway, just to open another can of worms 😵
      Live and learn I guess... Thanky anyway! 🙂

      posted in Tuning and tweaking
      Eumldeumlundefined
      Eumldeuml
    • RE: Gradual layer shifts with integrated JMC stepper servos

      @droftarts Yes, the steps/mm are quite low. I did that temporarily to highlight the issue and to find a clue faster.
      Mechanical issues are most certainly not the root cause, as I checked everything when installing the motors. Good hint though that it might be just one of the motors that has an issue as this will influence movements in both X and Y. Still not sure on how to diagnose this any further. While changing from steppers to the servos I did try to make a few moves with one servo and one stepper but that threw the stepper off almost instantly.

      The R-1 is for silencing these annoying popups about one stepper motor not being connected properly (out of phase or something). I mean, there isn't even a stepper connected. Those popups are appearing anyway, with or without R-1.

      posted in Tuning and tweaking
      Eumldeumlundefined
      Eumldeuml
    • RE: Gradual layer shifts with integrated JMC stepper servos

      I did manage to try the 5V signalling but it also didn't make any difference. That was the last lead and I don't really know what I could try next, which is very frustrating. Other people are using JMCs as well so it should work...
      There might be something wrong with the motors internally but I don't have the money to just buy new ones without really knowing if they are indeed the problem...

      @dc42 Can you think of anything else to try? If not I still want to thank you for your input and your support in this forum 🙂

      posted in Tuning and tweaking
      Eumldeumlundefined
      Eumldeuml
    • RE: Gradual layer shifts with integrated JMC stepper servos

      @dc42 Changing SW5 didn't make a difference sadly.
      I did find out though that the motors do sound very crunchy in some manual jogging moves when setting M569 T3:3:6:0. They also lose steps or rather they don't get transmitted correctly as the servo's encoders are hopefully doing their job. The toolhead crashed when trying to pick up a tool right after homing.
      The documentation on connecting external stepper motors states that for long cables or cables with high capacitance one should increase the timing values, that's why I tried on going higher with those values. There might be something to that, as witnessed by the motors losing their intended position when using short timings.

      That leaves the barely high enough 3.6V signalling voltage as the next possible candidate. As per documentation of the EBB:
      "Connecting STEP+ from your driver to +5V, which is available on the H6_PWM and/or H7_PWM pin headers (see wiring diagram above), and STEP- for your driver to STEP- on the expansion board"
      If I understand correctly, this means there won't be any direct connection from STEP+ on the driver/motor to STEP+ on the EBB? But the signals will still be differential? That doesn't seem to be clear to me.

      posted in Tuning and tweaking
      Eumldeumlundefined
      Eumldeuml
    • Gradual layer shifts with integrated JMC stepper servos

      Hi all!

      (config and hardware at the end)

      My CoreXY DIY toolchanger is running great with the exception of the integrated JMC stepper servos on X and Y that I tried to get working (again). The problem of gradual layer shifts is shown in the pictures. All the cubes are printed one after the other, same gcode, just different motor parameters (M569 mostly).
      A few observations: The leftmost cube was printed with my normal microstepping rate (160 steps/mm), the other ones use the coarsest setting on the motors (20 steps/mm) to highlight the issue. On the second picture you can see that the error is reproducible which rules out random interference. Just increasing the microsteps gets rid of the issue (or rather it doesn't show as much), but the prints are still a lot worse than with stepper motors.
      The parameters changes from left to right are:

      1. base line (see attached config.g)
      2. Microsteps to 20 steps/mm
      3. Connected shield of step/dir differential signal cable to GND
      4. Changed M569 T4:8:12:12 to T4:16:12:12
      5. -> T4:32:32:32
      6. -> T4:32:8:0
      7. -> T8:8:8:0

      P_20250401_185846.jpg
      P_20250401_185907.jpg

      My wild guess is that there might be something wrong with the setting of the direction pin in regards to the step pulses. I tried checking that with the oscilloscope (seperately, not during printing) and it looked like there is ages between a change on the direction pin and the first step pulse. Can't remember the exact number but it was more in the range of milliseconds, not microseconds which is way more than enough. The timing parameters I tried are all well above the minimum stated by the datasheet. I haven't found a way to check the signals during printing, as the connectors don't allow easy access to any pins when connected. I don't think the motor misses any pulses, as that would probably be more random and not reproducible.
      Another guess is that the voltage of the differential signals is just barely enough to set a reliable direction signal. The datasheet states a threshold of 3.5V which is edging the 3.6V differential signals of the Expansion Breakout Board (EBB). My gut feeling tells me though that this also should result in more random errors.

      Hardware and config:
      Duet 2 WiFi with Expansion Breakout Board and Duex5, firmware version 3.6 rc1 (also tried with 3.5.4 stable before, no difference)
      JMC iHSS60 integrated stepper servos, connected with a shielded cable to differential step/dir interface of driver 8 and 9 on the EBB. Supplied with the same 24V as the Duet and the Duex5. Product page and datasheet: https://www.rocketronics.de/shop/en/jmc-closed-loop-steppermotor-3nm-ihss57-36-30-31.html
      In the config there are the lines of gcode for the steppers commented out, as I want to be able to easily revert, if I don't find a solution.

      ; General preferences
      M575 P1 S1 B57600                                           ; enable support for PanelDue
      G90                                                         ; send absolute coordinates...
      M83                                                         ; ...but relative extruder moves
      M550 P"Donald Druck"                                        ; set printer name
      M669 K1                                                     ; select CoreXY mode
      
      ; Network
      ;M552 P"Martin Router King" S1                               ; enable network in client mode
      M552 S1                                                     ; enable networking in client mode
      M586 P0 S1                                                  ; enable HTTP
      M586 P1 S0                                                  ; disable FTP
      M586 P2 S0                                                  ; disable Telnet
      
      ; Drives
      M569 P8 S1 R1 T8:8:8:0 R-1
      M569 P9 S1 R1 T8:8:8:0 R-1
      ;M569 P2 R-1                                                 ; disable driver 2 (normally Z)
      
      M569 P0 S0                                                  ; physical drive 0 (XY1) goes backwards
      M569 P1 S0                                                  ; physical drive 1 (XY2) goes backwards
      M569 P2 S1                                                  ; physical drive 2 (Z) goes forwards
      M569 P3 S1                                                  ; physical drive 3 (B=TC motor) goes forwards
      M569 P4 S0                                                  ; physical drive 4 (T0 Extruder) goes forwards
      M569 P5 S0                                                  ; physical drive 5 (T1 Extruder) on Duex5 goes forwards
      M569 P6 S0                                                  ; physical drive 6 (T2 Extruder) on Duex5 goes forwards
      
      
      ;M584 X0 Y1 Z2 E4:5:6 B3                                     ; set drive mapping (axes A, B and C are rotational axes)
      M584 X8 Y9 Z2 E4:5:6 B3                                     ; set drive mapping (axes A, B and C are rotational axes)
      M350 X16 Y16 Z16 E16:16 I1                                  ; configure microstepping with interpolation
      M350 B8 I0                                                  ; configure microstepping without interpolation
      M92 X20.00 Y20.00 Z1280.00 E400:562:562 B100              ; set steps per mm (might not work for B, as it is a rotational axis?)
      M566 X450.00 Y450.00 Z60.00 E300:300:300 B6                 ; set maximum instantaneous speed changes (mm/min)
      M203 X36000.00 Y36000.00 Z1800.00 E3000:3000:3000 B48000    ; set maximum speeds (mm/min). If step losses occur, it might be due to uneven belt tension.
      M201 X6000.00 Y6000.00 Z300.00 E1200:1200:1200 B12000       ; set accelerations (mm/s^2)
      ;M906 X1800 Y1800 Z1500 E500:500:500 B400 I100               ; set motor currents (mA) and set idle current to 100% (workaround?)
      M906 Z1500 E500:500:500 B400 I100               ; set motor currents (mA) and set idle current to 100% (workaround?)
      
      ;M84 S0                                           ; Disable motor idle current reduction
      
      ; Axis Limits
      M208 X0:470 Y0:412 Z0:355 B0:240 S0                         ; set axis maxima
      M564 H0 S1                                                  ; allow movement without homing and inhibit movement outside soft limits (only applies to homed axes)
      
      ; Endstops
      M574 X1 S1 P"xstop"                                         ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
      M574 Y1 S1 P"!ystop"                                        ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
      ;M574 Z1 S1 P"zstop"                                  ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop
      M574 Z0 P"nil"
      
      M574 B1 S3                                                  ; Stall detect TC motor at low end of its range
      M915 B S3 F1 H400 R0                                        ; TC motor stall detection configuration
      
      ; Z-Probe
      M558 P5 C"zstop" H3 F300 T36000                             ; set Z probe type to switch and the dive height + speeds
      G31 P500 X0 Y0 Z0                                           ; set Z probe trigger value, offset and trigger height
      M557 X40:440 Y20:320 S50                                    ; define mesh grid
      
      ; Heaters
      M308 S0 P"bedtemp" Y"thermistor" T100000 B4138              ; configure sensor 0 as thermistor on pin bedtemp
      M950 H0 C"bedheat" T0                                       ; create bed heater output on bedheat and map it to sensor 0
      M307 H0 R0.1 K0.779:0.000 D2.44 E1.35 S1.00 B0              ; Set heating parameters for the bed (PID)
      M140 H0                                                     ; map heated bed to heater 0
      M143 H0 S120                                                ; set temperature limit for heater 0 to 120C
      
      M308 S2 P"e1temp" Y"thermistor" T100000 B4267               ; configure sensor 2 as thermistor on pin e1temp (E3D thermistor cartridge)
      M950 H1 C"e1heat" T2                                        ; create nozzle heater output on e1heat and map it to sensor 2
      M143 H1 S280                                                ; set temperature limit for heater 1 to 280C
      M307 H1 R2.215 K0.251:0.125 D7.51 E1.35 S1.00 B0 V24.3      ; disable bang-bang mode for heater 1 and set heater parameters
      
      
      M308 S3 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 3 as thermistor on pin e1temp (E3D Revo cartridge)
      M950 H2 C"duex.e2heat" T3                                   ; create nozzle heater output on e1heat and map it to sensor 3
      M143 H2 S300                                                ; set temperature limit for heater 2 to 300C
      M307 H2 R4.287 K0.569:0.000 D2.18 E1.35 S1.00 B0 V24.3
      
      M308 S4 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 3 as thermistor on pin e1temp (E3D Revo cartridge)
      M950 H3 C"duex.e3heat" T4                                   ; create nozzle heater output on e1heat and map it to sensor 3
      M143 H3 S300                                                ; set temperature limit for heater 2 to 300C
      M307 H3 R3.427 K0.417:0.000 D2.29 E1.35 S1.00 B0 V24.3
      
      
      ; Fans                               
      M950 F1 C"fan0" Q500                                        ; create fan 1 on pin fan1 and set its frequency
      M106 P1 S0 H-1                                              ; set fan 1 value. Thermostatic control is turned off
      M950 F3 C"duex.fan3" Q500                                   ; create fan 3 on pin duex.fan3 and set its frequency
      M106 P3 S0 H-1                                              ; set fan 3 value. Thermostatic control is turned off
      M950 F4 C"duex.fan4" Q500                                   ; create fan 4 on pin duex.fan3 and set its frequency
      M106 P4 S0 H-1                                              ; set fan 4 value. Thermostatic control is turned off
      
      
      ; Tools
      M563 P0 S"LGX FF" D0 H1 F1                                  ; define tool 0
      G10 P0 X2.50 Y49.95 Z-11.0                                 ; set tool 0 axis offsets
      G10 P0 R0 S0                                                ; set initial tool 0 active and standby temperatures to 0C
      M572 D0 S0.06                                               ; Configure pressure advance for extruder 0
      
      M563 P1 S"LGX lite 1" D1 H2 F3                              ; define tool 1
      G10 P1 X-0.05 Y36.7 Z-24.75                                 ; set tool 1 axis offsets
      G10 P1 R0 S0                                                ; set initial tool 1 active and standby temperatures to 0C
      M572 D1 S0.03                                               ; Configure pressure advance for extruder 1
      
      M563 P2 S"LGX lite 2" D2 H3 F4                              ; define tool 2
      G10 P2 X-0.25 Y36.35 Z-24.75                                ; set tool 2 axis offsets
      G10 P2 R0 S0                                                ; set initial tool 2 active and standby temperatures to 0C
      M572 D2 S0.03                                               ; Configure pressure advance for extruder 1
      
      M207 S0.4 F2100 T2100 Z0.2                                  ; Configure firmware retraction (S=retraction amount, F=retraction feedrate, T=unretraction feedrate, Z=Z-hop height)
      M302 S160 R80                                              ; Allow extrusion starting from 160°C and retractions already from 80°C
      
      ;G29 S1                                                      ; Enable mesh compensation
      
      
      ; Custom settings are not defined
      ;M955 P0 I65 C"spi.cs2+spi.cs1"                              ; Configure accelerometer (I21 for mounting on Revo, I06 for mounting on LGX FF)
      

      Any help will be greatly appreciated, this is driving me crazy... If more info is needed I'll happily provide.
      Have a lovely evening or rest of your day! 🙂

      posted in Tuning and tweaking
      Eumldeumlundefined
      Eumldeuml
    • RE: Toolchanger printer with DueX5 external stepper drivers

      @dc42 Sorry, apparently I misread your statement somehow. Thanks for clarifying!

      posted in Duet Hardware and wiring
      Eumldeumlundefined
      Eumldeuml
    • RE: Toolchanger printer with DueX5 external stepper drivers

      @dc42
      Two more questions after buying the Expansion Breakout board:

      1. The differential enable pins switch between on and off with 5 kHz when the printer is idle and also when a move command is given (though the motors won't move as they are in alarm state due to the fast switching). Disconnecting the enable wires does work, although I'd like to be able to switch the motors off via software

      2. Do I need to disable the drivers on the Duex5? When moving X or Y, there is a warning in the console that the phases might be disconnected (which they technically are, as there is nothing connected to the outputs). When I disable the drivers, the servo motors start moving very slowly upon startup of the Duet and on the PanelDue there is a warning about overtemperature of those drivers.

      posted in Duet Hardware and wiring
      Eumldeumlundefined
      Eumldeuml
    • RE: Toolchanger printer with DueX5 external stepper drivers

      @dc42 Alright, thank you very much for the information! 🙂

      posted in Duet Hardware and wiring
      Eumldeumlundefined
      Eumldeuml
    • Toolchanger printer with DueX5 external stepper drivers

      Hi all!
      I just wanted to confirm something from the documentation. First of all, my (soon-to-be) printer is a CoreXY toolchanger with six independent tools that runs with a Duet 2 Wifi and a DueX5. That means, from the 10 integrated stepper drivers I need 7 drivers for tools and Z axis. The XY system runs on two JMC stepper servos that I need to connect to one of the boards.
      From what I read in the documentation, this is either done

      • through the expansion header (which is occupied in my case)
      • with the pass-through connector DB S/D/E on the DueX5 (which requires the board to be put into DueX2 mode which limits my available stepper channels?..)
      • or through the CONN_LCD connector.

      I plan to go with the last option as it doesn't seem to have any drawbacks. Is this valid?
      Also I want to use the PanelDue 7i which I intend to connect with the four-pin connector. This won't allow me to use the SD card anymore but I'm pushing gcode over WiFi anyway.

      I'll be very glad if someone could tell me that my approach is good or that I'm overlooking something.
      Thanks and have a great weekend! 🙂

      posted in Duet Hardware and wiring
      Eumldeumlundefined
      Eumldeuml
    • RE: Thought bubble; high flow hot ends for injection moulding

      From my understanding about injection molding it requires very high extrusion speeds. In commercial machines they melt the plastic in the heating/compression zone and then push it into the mold via hydraulics (or maybe also pneumatics) in fractions of a second. So depending on the size of the mold even a high powered extrusion system from a 3D printer isn't gonna cut it sadly. But I like the idea, it's quite novel! 🙂

      posted in 3D Printing General Chat
      Eumldeumlundefined
      Eumldeuml