Kossel xl custom built. Ir sensor coding fixed

  • DC42 will give you a much better answer than I ever could, what I can tell you is that when I had this problem, I had incorrect values for my probe points because I measured the diagonal length from the wrong spot and tried probing a much larger bed than I actually had (or thought my printable diameter was larger than it really was). My acceleration and travel speeds were also way too high initially. If I am not mistaken, David's sample config file from github is just that, his config file. It is a smile, to be used as an example not as ready to go….I made that mistake...more than once haha. I would be curious to see your config.g and your bed.g (bed.g right?) The file responsible for probing/tramming/calibration in relation to your printable diameter and what the machine coordinates say as you attempt to go to that position.

    Marlin to RepRapFirmware is a bit of a change, I do really like marlin, it is great in a lot of ways...I do still feel the Duet Wifi and David's fork of RepRapFirmware is far...far better in a lot of ways. The Duet Wifi also crushes the ramps. You shouldn't give up on this board and firmware.

    Also, printer looks great!

  • Well I used RRF Configuration Tool for the files and replaced the bed file with the Escher 3d file produced.

    Now my linear rails are only 300mm long so my print height has been reduced do be able to print bigger things rather then taller ones just until i receive my 750mm ones

    Config File:

    ; Configuration file for Duet WiFi (firmware version 1.17)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool on Tue May 16 2017 21:36:43 GMT+0800 (W. Australia Standard Time)
    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M555 P2 ; Set firmware compatibility to look like Marlin
    ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration.
    M665 R200 L310 B130 H215.5 ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0 ; Put your endstop adjustments here, or let auto calibration find them
    M208 Z-2 S1 ; Set minimum Z
    ; Endstops
    M574 X2 Y2 Z2 S1 ; Define active high microswitches
    M558 P1 X0 Y0 Z0 H10 F120 T2400 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
    G31 P500 X11 Y34.5 Z1.933 ; Set Z probe trigger value, offset and trigger height
    M557 R130 S20 ; Define mesh grid
    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S1 ; Drive 2 goes forwards
    M569 P3 S0 ; Drive 3 goes backwards
    M350 X16 Y16 Z16 E16 I0 ; Configure microstepping without interpolation
    M92 X80 Y80 Z80 E450 ; Set steps per mm
    M566 X1200 Y1200 Z1200 E1200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X18000 Y18000 Z18000 E1200 ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z1000 E1000 ; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E1200 I60 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout
    ; Heaters
    M143 S285 ; Set maximum heater temperature to 285C
    M305 P0 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4388 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    ; Tools
    M563 P0 D0 H1 ; 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
    ; Network
    M550 PMiniKossel ; Set machine name
    M552 P192.168.1.14 S1 ; Enable network and set IP address
    M553 P255.255.255.0 ; Set netmask
    M554 P192.168.1.254 ; Set gateway
    ; Fans
    M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S0 I0 F500 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    ; Custom settings are not configured
    ; Miscellaneous
    M501 ; Load saved parameters from non-volatile memory
    T0 ; Select first tool

    Bed Config File:

    ; bed.g file for RepRapFirmware, generated by Escher3D calculator
    ; 10 points, 7 factors, probing radius: 130, probe offset (0, 34.5)
    G30 P0 X0.00 Y102.74 Z-99999 H0
    G30 P1 X97.41 Y56.24 Z-99999 H0
    G30 P2 X112.58 Y-65.00 Z-99999 H0
    G30 P3 X0.00 Y-130.00 Z-99999 H0
    G30 P4 X-112.58 Y-65.00 Z-99999 H0
    G30 P5 X-97.41 Y56.24 Z-99999 H0
    G30 P6 X0.00 Y42.46 Z-99999 H0
    G30 P7 X56.29 Y-32.50 Z-99999 H0
    G30 P8 X-56.29 Y-32.50 Z-99999 H0
    G30 P9 X0 Y0 Z-99999 S7

  • change your G31 line from
    G31 P500 X11 Y34.5 Z1.933
    G31 P500 X0 Y0 Z1.933

    And try again


  • @Dougal1957:

    change your G31 line from
    G31 P500 X11 Y34.5 Z1.933
    G31 P500 X0 Y0 Z1.933

    And try again


    Thank you so much Doug this with a reduced probing radius has solved it.

    Now I have never got this far
    what does this all mean I probed 3 times does this seem like a good result? sorry this is my first printer with an IR probe.

    Endstop adjustments X-2.06 Y-5.23 Z7.29, tilt X0.00% Y0.00%
    Diagonal 378.596, delta radius 206.251, homed height 215.403, bed radius 130.0, X 0.526°, Y -0.009°, Z 0.000°
    Calibrated 7 factors using 10 points, deviation before 0.078 after 0.037
    Endstop adjustments X-2.16 Y-5.31 Z7.47, tilt X0.00% Y0.00%
    Diagonal 376.585, delta radius 205.905, homed height 215.447, bed radius 130.0, X 0.161°, Y -0.175°, Z 0.000°
    Calibrated 7 factors using 10 points, deviation before 0.103 after 0.041
    Endstop adjustments X-2.41 Y-5.32 Z7.73, tilt X0.00% Y0.00%
    Diagonal 387.617, delta radius 208.397, homed height 215.359, bed radius 130.0, X 0.401°, Y 0.100°, Z 0.000°
    Calibrated 7 factors using 10 points, deviation before 4.209 after 0.117

  • That is a pretty good deviation but on the final line in your Bed.g

    this G30 P9 X0 Y0 Z-99999 S7

    Change to G30 P9 X0 Y0 Z-99999 S8 (this will calibrate for any tilt but will leave your Diagonal rods untouched which you will be able to calibrate later with a test cube)

    And not sure if this is strictly required but add M500 after it to save the params especially if you know the precise length of your rods (This may need to be reset in your M665 line to the actual value (in Config.g) and M502 running manually first)

    Doug (David will probably be along to comment soon enough)

  • Thank you Doug this is the results I got when i changed the S7 to S8.

    Endstop adjustments X-0.54 Y-2.28 Z2.82, tilt X0.62% Y-2.94%
    Diagonal 375.057, delta radius 205.677, homed height 215.573, bed radius 130.0, X -0.835°, Y 0.026°, Z 0.000°
    Calibrated 8 factors using 10 points, deviation before 0.073 after 0.017

  • Now what makes it a good result? is it the deviation being as low as possible or is it to do with with the m665 results being close as possible to the M666?

  • Getting better time to try a test print eh

  • As excited I as I am to do a test print I have to get ready for job number 2

  • @Luxmotion:

    Now what makes it a good result? is it the deviation being as low as possible or is it to do with with the m665 results being close as possible to the M666?

    The deviation is a measure of the statistical variance over the probed points compared to what the algorithm predicts them to be. You have a deviation over the bed of just 0.017mm between all of your probed points. Mine's running at 0.02 which I was very pleased with (with Doug's lovely aluminium effector) I had it this low before when I used to have the k800 effector and magnets. The metal carriages and effector (and linear rails obviously) really do reduce play.

    No M665 is just some of your delta parameters and M666 are the endstops. Some firmware roll them all into one command (like Rich Cattels marlin), its arbitrary.

    Whats important now as Doug said leave it on 8 factors.

    Measure your rods as accurately as you can (from centre of rotation at each end) and enter that rod value in M665 L parameter (in config_override.g, not config.g). Do autocalibration. Then print a test cube. If its 10% too big in X and Y lower your rod length by 10%,autocalibrate, and print another (in reality its more likely to be 1%). If the cube is too small, increase rod length and print again. If the cube is wrong in Z (and its not due to squashed first layer, so print one at 20mm tall and one at 40mm tall see if the error remains constant - first layer squash, or doubles - steps/mm are wrong change x,y and z steps/mm). It transpires that unless your belts are really tight a gt2 belt's pitch is a fraction less than 2mm. Hence some people use 80.5 steps/mm (assuming 1/16 stepping and 20t pulleys).

  • But at least we have got the OP somewhere close now!!

  • Thank you guys so much for your help I was pretty much ready to just bin it and give up. Also the information you provided has helped full most of the black hole in my understanding of what to do next.

    I'm running gt2 belt and pulleys that are 16 teeth with 1/16th stepping.

  • So 100 steps /mm then, see how your test cube comes out. If it's perfect then enjoy printing some accurate stuff. And turn on interpolation in config.g (M350 X16 Y16 Z16 E16 I1) you'll be pleased that you did.

  • Thank you so much guys I really appreciate all the help. I'll keep this all in mind when I can finally get to do the test prints on Friday.

  • Ok sadly this thing has decided to act up once again. I managed to get some time to sit down and try the cube test. So I figured I'd double check my z height and do another calibration preprint.

    With the paper test the height still had 40mm to go before it hit zero. So I 're adjusted the height within the config file and double checked it.

    It was paper perfect, so I thought ok time to auto calibrate and it came back with a devation of before 5.002 after 1.236. Then I recalibrated untill I managed to get it down to 0.2xx I can't remember exactly. Then it climbed all the way up to 9.xxx.

    I restarted the printer to get back to the 0.2xx that was saved And tested the z height and once agian it wanted to go through the bed.

    I spent about an hour going back and fourth with this before I lost my temper in pure frustration I turned everything off and walked away. This is what it was doing before the rebuild but now I have no idea what to do because it feels like it just doesn't want to work.

    What do you guys think is the issue?

  • administrators

    Could it be that you have the acceleration set too high, so that the amount that each carriage moves is not consistent? Or motor current much too low?

    Another possibility is that you have at some stage saved incorrect M665 and M666 parameters into config-override.g using the M500 command, and the parameters are being reset to those parameters every time you restart. The config-override.g file behaves like EEPROM does in Marlin. You can open config-override.g in the System Files Editor to check what's in it. It is only used if you have a M501 command in config,g (or M98 Pconfig-override.g).

    I suggest you start by getting the printer to the point that you can home it, then run G1 Z50 and it will move to 50mm above the centre of the bed every time - even after a restart. Use the M665 H parameter to adjust the height.

    When you have done that, measure the trigger height of the IR sensor as described at https://duet3d.com/wiki/Calibrating_a_delta_printer#Measuring_the_trigger_height and put the trigger height in the Z parameter of the G32 command in config.g. Again, be aware that it can be overridden by an entry in the config.g file.

    After that, set the H parameter in your M558 command to 30 (so that probing starts 30mm above where the bed ought to be) and run auto calibration several times.

    If you are using a config-override,g file, you can then run M500 to save those values. If you are not, then run M665 and M666 to read off the values found by auto calibration, and manually edit the M665 and M666 commands in config,g to match.

    HTH David

  • Thank you David, I did try that last night following your guide and it didn't help but this printer seems to be like night and day, and today is a new day so I'll try again when I get home.

    Thank you for the help.

  • administrators

    If you still have problems when you try again, let me know which step you get stuck at. You mentioned "night and day" - are you sure that the IR sensor is giving a consistent trigger height regardless of the lighting conditions?

  • @dc42:

    If you still have problems when you try again, let me know which step you get stuck at. You mentioned "night and day" - are you sure that the IR sensor is giving a consistent trigger height regardless of the lighting conditions?

    Yeah I followed your guide on checking for consistent triggers and it aligns to the guide. I finaly have a few hours to work on it so ill start fresh with endstop adjustments set to zero and see if it will play ball today.

    Thank you David

    I just want to print something haha

  • Ok I tested the trigger height 10 times now and 5 times it came up with Z1.363 and 5 times it came up with Z1.403

    I was going to just test it 5 times to make sure it was consistent but on the 5th time it came up with Z1.403.
    So I did one more test as piece of mind and it went back to Z1.363. then from the 7th time to the tenth time it produced Z1.403

    So ill use 1.403 as the trigger height since it was the last set that showed up but is this something that I should be worried about?

  • administrators

    You have a trigger height variation of 0.04mm, which is higher than ideal. If you see only those 2 values, this suggests that your Z resolution is only 0.04mm, which is unusually high. The steps/mm in your config.g file is 80, which would give 0.0125mm. Perhaps you have binding in one of your carriages, or play in the joints.

    However, this should not stop you printing.

    As I said before, do make sure that settings in config-override.g are not overriding changes you make. If in doubt, clear out or delete the config.override.g file.

  • I have changed my Step/mm to 100 as DjDemonD suggested.

    I have a Feeling its the linear rail on Z now that you mention it when I was installing it it didn"t seem quite as smooth as the others so i washed the bearings down with brake cleaner and re-lubed them with some lithium grease rebuilt the carriage which seemed to help but i guess it wasn't enough. luckily I have some Hiwin Linear rails coming to bad they aren't black but function over form

  • administrators

    If your steps/mm is 100 (which implies you are using 1.8deg motors and 16-tooth pulleys) then your Z resolution is 0.01mm. So I would expect the trigger height measured by repeated probing at the same point to vary by +/- 0.01mm if your mechanics is working really well.

  • I think it's the z linear rail as after I do a calibration I home the printer then go to check the z height and it's set too high.

  • Just a side note, according to Thomas Slanderer (a YouTuber passionate about 3D printing and an engineer) tested the IR probe and measured that it varies when the bed is heated vs when the bed is cold. See here: https://youtu.be/il9bNWn66BY

    It is something that I never would have thought of, but good to keep in mind when setting up the macros for preparing your printer.

Log in to reply