Problem setting up core XY



  • I have hit a dead end with this problem that needs some serious help. Have set up Exactly as XY page with axis moving in Correct direction. After homing if I try moving to X25 Y300 Crashes into side -x then X300 Y25 move crashes into end -y Cannot get the movement to go in a straight line which then crashes into the end. please help?


  • Moderator

    Post your config.g and homing files.

    -x should move to the left, +x should move to the right
    -y should move to the front, +y should move to the back
    0,0 should be the front left corner

    Also please tell us where the endstops are located.
    If X is on the left side, then homing move for x should be negative. If it's on the right side, homing move for x should be positive.



  • @Phaedrux said in Problem setting up core XY:

    -x should move to the left, +x should move to the right
    -y should move to the front, +y should move to the back
    0,0 should be the front left corner
    Also please tell us where the endstops are located.
    If X is on the left side, then homing move for x should be negative. If it's on the right side, homing move for x should be positive.

    X Moves correctly
    Y Moves correctly
    0,0 Front left corner
    And stops are located on the left

    Homing file
    ; homeall.g
    G91 ; relative mode
    G1 H1 X-240 Y-240 F3000 ; coarse home X or Y
    G1 H1 X-240 ; coarse home X
    G1 H1 Y-240 ; coarse home Y
    G1 X4 Y4 F600 ; move away from the endstops
    G1 H1 X-10 ; fine home X
    G1 H1 Y-10 ; fine home Y

    G1 X100 Y100 F6000
    G30

    Config file

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Oct 25 2020 20:31:19 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"IronMan3.0 Cube" ; set printer name
    M669 K1 ; select CoreXY mode

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S0 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z320.00 E420.00 ; set steps per mm
    M566 X720.00 Y720.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z250.00 E250.00 ; set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X300 Y300 Z300 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    M574 Z2 S2 ; configure Z-probe endstop for high end on Z

    ; Z-Probe
    M950 S0 C"exp.heater7" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P25 X28.5 Y-5 Z0 ; set Z probe trigger value, offset and trigger height
    M557 X15:285 Y15:285 S20 ; 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 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M143 H0 S100 ; set temperature limit for heater 0 to 100C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp
    M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2
    M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 C"1Fan0" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off
    M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S1 H-1 ; set fan 2 value. Thermostatic control is turned off

    ; Tools
    M563 P0 S"TOOL1" D0 H1 F0 ; define tool 0
    G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C

    ; Custom settings are not defined

    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss



  • please verify with m115 that you are on firmware version 3.1.1



  • Forgive me if this is too basic for you. You have to set up a right-hand -rule coordinate system because that's what CAD software uses, otherwise your prints will be mirrored. The coordinate system is always referenced to an object on the bed, so Z+ is up. Most people put the origin at either the left front or right rear of the printer. If you will ever use multiple slicers, you might want to consider putting the origin at the printable center of the bed.

    The endstops can be put at either end of either axis and are there only to home the machine. When you tell the machine to home, the motors should drive the extruder carriage toward the endstops regardless of where they are (even if they aren't at the origin).

    The axis limits defined in the M208 statements should reflect the physical motion limits of the extruder carriage in your machine without regard to the bed size, but relative to the position you've chosen for the origin. Most machines can move the nozzle beyond the borders of the bed plate. Based on your config file, I'd guess that your bed plate is 300 x 300 mm.

    This is a diagram of my printer showing the origin at the center and the coordinates of the home position (150, 153) and the opposite corner (-151,-185) limits of motion

    alt text

    I suggest you draw a similar diagram of your machine and label the locations of the origin and the coordinates of the bed corners and the limits of motion (which may or may not be the same). It's easy to get confused and a diagram will help in setting things up. Put the maximum and minimum limits of motion in the M208 statements, not the bed size, unless they are the same. In my example, I'd put the minimums at (-151, -185) and maximums at (150, 153). I use:

    M208 X-151:150 Y-185:153 Z 0:690 ; Set axis minima:maxima

    In my case, home is at the maximum end of both X and Y axes. Use the M574 statement to tell the Duet which end of the axes have the endstop switches. I use:

    M574 X2 Y2 Z1 ; endstops at Xmax, Ymax, and Zmin

    Once you get that sorted out, you just have to get the motors turning in the right directions...



  • @Veti M115
    FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.1.1 ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2020-05-19b2



  • @mrehorstdmd No problem with keeping it basic I have accomplished a lot in the last year and a half with Building 3-D printers. This is the first problem I have not been able to overcome. My bottom left corner would be 0,0 Upper left would be 0,300 Upper right 300,300 Bottom right 300,0. Everything seems to be in order and moving in the right direction but my example would be moving from X50 Y50 to X50 Y300 I cannot seem to move in a straight line as it moves toY300 it moves X50 to -number And crashes into the side the same goes for the X-axis move from X50 Y50 to X300 Y50 Moves on the Y-axis also and crashes. Tool Position on the monitor does not show movement on the static axis When make move from X50 Y50 to X300 Y50 crashes on Y but shows Y50 on tool position.



  • @william3d When I had a somewhat similar issue on my CoreXY it turned out that one of the pulleys on the motors was slipping.

    In order to move in X (or Y) only, a CoreXY has to move both motors evenly. If they aren't moving the belts the same distance on each request then the move will not be just X or Y and you'll get what you're seeing.

    Just a thought.



  • @william3d I'm not sure what it means when you say X and Y are moving correctly - does that mean it's OK during homing and then it gets weird only when you try to do other moves? When you home X does the carriage move only in the X direction, and when you home Y does it move only in the Y direction?

    Some possibilities come to mind...

    1. loose drive pulley(s)- inspect
    2. not operating in corexy mode- config looks OK
    3. different size pulleys on the motors - inspect carefully
    4. bad cable/connector to motor(s)- inspect thoroughly
    5. bad driver chip- try swapping another driver
    6. extremely bad layout that lets belt slip on pulley(s)


  • @mrehorstdmd When I say moved correctly I have a Macro created for Test movement
    Test for the correct X motor movement by sending these commands from the console:

    G91
    G1 H2 X10 F3000
    If the head moves diagonally in the +X and +Y directions, all is well. If it moves in the -X and -Y directions, change the S parameter to S1 in the M569 P0 command. If it moves towards +X and -Y, or towards -X and +Y, then either turn the power off and swap the X and Y motor connections, or use M584 in config.g to swap the X and Y motor drivers over.

    When you have the X motor moving correctly, test the Y motor by sending from the console:

    G91
    G1 H2 Y10 F3000
    If the head moves diagonally in the +X and -Y directions, all is well. If it moves in the -X and +Y directions, change the S parameter in the M569 P1 command to S1. [Different rules applies to firmware 1.18 and earlier].

    Important: make sure that you have chosen a right-hand axis system. That is, looking down on the printer the +Y direction should be 90 degrees anticlockwise from the +X direction. If instead it is 90 degrees clockwise, you have a left-hand axis system, which will give you mirror-image prints.

    head moves diagonally in the +X and +Y directions
    head moves diagonally in the +X and -Y directions

    I thought I was onto it I had replaced the motors with the different ones that were different .9 and 1.8 deg So I just put the originals back in that are the same motors on both sides problem still exists.

    Some possibilities come to mind...

    loose drive pulley(s)- inspect DONE
    not operating in corexy mode- config looks OK DONE OK
    different size pulleys on the motors - inspect carefully DONE CHECK
    bad cable/connector to motor(s)- inspect thoroughly DONE CHECK
    bad driver chip- try swapping another driver SWAPPED BOARDS STILL THERE.
    extremely bad layout that lets belt slip on pulley(s : Would not think so created a BLV mgn Cube WITH CNC parts.



  • @markz That was a good thought I realized I change motors in an attempt to solve problems and put in two different size motors Presented the same problem. Change back to two a day at home motors still have the problem.



  • So it works fine using your test commands, and it homes OK. Does it screw up if you give it a file to print?

    Are one or both motors skipping steps? Sufficient/excessive motor current?



  • @mrehorstdmd after changing the M208 do I have to set offsets in simplify3D as well, or does it read the firmware's settings for origin? That's where I'm getting confused on the subject.



  • @william3d

    i am missing test without the H2 command to check correct x and y movements


  • Moderator

    @william3d said in Problem setting up core XY:

    G1 X100 Y100 F6000
    G30

    You should have a G90 before that G1 command in your homeall since you want to place the probe in absolute space.

    Are you sure this is actually a CoreXY printer and not a cartesian? It is a BLV cube?

    Can you show a video of the behaviour?

    With the belts disconnected from the motors are you able to move the print carriage around by hand smoothly? With the belts connected are you able to move the print head around slowly and smoothly? Does the resistance feel even in both X and Y?



  • @william3d Feel free to ignore this if too basic but here's my 2c ->

    When I was having strange issues with my CoreXY the first thing I did was check simple movement. [I did try to use homing as an early test, immediately drove the nozzle into the bed and thought hmmm...]

    Homing is an extreme test because it causes parts to hit other parts and limit out.

    Instead, I placed the head in the center of the bed and turned off homing requirements then used the dashboard to move the carriage left and right and back and forth 50mm at a shot. Make sure only the dimension you expect to move actually changes when you do that.

    Once moving straight was true everything else worked.

    Mark



  • @mmartin I'd be very surprised if S3D can read the Duet board's firmware. You'll have to enter offsets, and different slicers may require different offsets depending on how they reference the home position (?). This sort of issue is one reason I prefer to use the center of the bed for the origin- it seems to be very easy to set up in different slicers.

    Can you post a picture of the printer's XY mechanism?



  • @mrehorstdmd I installed Cura last night and am having much better results with the prints / compatibility of the software. My main issue is I'm not sure what settings are being controlled by the firmware and what settings are being controlled by Cura. Example: Does Cura automatically use my bed leveling mesh or do I need to run it in the starting Gcode?



  • @mmartin Someone else will have to help you with that. I don't use autoleveling, and I operate the printer using the DWC or Panel Due.





  • Here are static photos of the machine and the setup of a BLV CUBE. I am working on videos of the problem



  • One thing that's obvious from the first photo is that the belt running from the left end of the X axis to the extruder carriage (fixed with a purple zip-tie) is not parallel to the X axis guide rail. Are you sure the belt is anchored to the right spot on the carriage? Can you take a picture looking down on the machine, showing the entire corexy mechanism?

    That type of error will at the least cause belt tension to vary with the extruder carriage position, and may create more problems than that depending on how far out of parallel it is. If you tensioned the belts and movement makes them get tighter, your motors may skip steps because the tension becomes too high. It's also possible for belt to slip on the drive pulley if the tension goes the other way when the extruder carriage moves. The belt tension should be constant no matter where the extruder carriage is in XY space. That is accomplished by keeping the belts parallel to the guide rails. See: https://drmrehorst.blogspot.com/2018/08/corexy-mechanism-layout-and-belt.html

    Was that a kit? Make sure you assembled it correctly, and if it's right, I suggest you demand your money back!



  • @mrehorstdmd said in Problem setting up core XY:

    if it's right, I suggest you demand your money back!

    the original blv had a slight problem with that. but in this kit its very bad.

    there is an original metal kit
    https://www.aliexpress.com/item/1005001323243487.html
    that does not have that problem



  • @Veti I was wondering if there was a problem with the parts I purchased from a supplier in China BLV Does not promote that supplier anymore.



  • Does @mmartin == @william3d or are there two different machines/problems/people here?


Log in to reply