looking for someone with a geetech G2S or other delta that has this firmware working

Hey Guys, 

I am the owner of a Geeetech  G2S (dual extruder) and have been able to get my printer working.. from the start i had one problem after the other.. Finally i had the hotend break off.. 
At this point i desided to upgrade the hot ends.. I build in E3D v6. 
Recently i also changed the A4988 driverlooking for someone with a geetech G2S or other delta that has this firmware workings for DRV8825 drivers and set the jumpers for 1/32 steps. (changed the towers steps per mm) from 80 to 160 and the extruder from 93 to 186) 

I tried to adjust the positions of the hotend in the program which seemed to be oke. but had some other major problems getting to work with repetier host. 

So basically what i am looking for is someone who's got his delta printel (preferrably a G2s) working that can guide me though a little so i can find out if there is a hardware or just setup problem. 

Any help would be much appreciated. 

Hope to hear soon. 


  • It is not very helpful to say you have problems without saying which problems exactly. Forum is full of solutions to problems, so how should we know?
  • edited May 2017
    the problem is that there are many problems and it seems nearly impossible for me to differentiate. 
    I tried going for it problem specific but that led to no improvement. 

    Thats why i'm asking for someone who works with the same printer and same software to it will make it easier to see why what is happening. 

    Buty there are calibratrion, homing and positioning problems. 
  • Anyway oke.. I'll try to start from the beginning then again. 
    Repetier host - 2.01
    Repetier firmware - 0.92.9

    Firmware config files: 

    Host settings according to: 

    at this moment the first obstacle i run into that when i manually upper and lower all three carriage go up and down neatly, but when i try to home only the front left carriage (X -pillar?) moves.. (untill it crashes the pillar) 
    when it is high enough that it will hit the endstop before it crashed the pilar it reacts as it has homed, but none of the others pillars have moved / homed yet) 

    any help on this issue and following problems are very much appreciated. 

    Kind regards 

  • To be sure, moving z moves all three or x,y, z move the matching pillar? In latter case you need to slect DRIVE_SYSTEM DELTA to tell firmware you have a delta. 

    Other possible reason is crosstalk so endstops trigger as soon as you start the move causing the 2 to stop immediately. Or endstops are configured wrong. M119 should show x,y and z max endstop with L when untriggered.
  • Oke this i should've been able to figure out myself. apparently the connections of the endstops wires that connect to the mainboard were not functional anymore, leaving a bad contact.. this is the last place where i'd expect problems from and this could be also the 'cause' of more than this problem and might also be the 'cause of many ghostly problems i had before. I'll continue now with the calibration now but this all will take me a few days to do good. after wich i will continue with bed calibration with the probe. anyway, thanks a lot for the help in this first stage. Greatz, Matthieu
  • one odd thing though. I did a quick determination of the Z-length and set is as 180.68 in repetier-host : Home Z: 180.68 (is this correct? it was Max in the older version, seems like a risk for error when by accident different values are entered) Printable Height: 180.68 Repetier Firmware: Z-max-lenght: 180.68 but when i home the printer shows 180.681 it might not make much of a difference but i don't understand where that .001 comes from. as i triple checked the set values.. Greats Matthieu
  • Firmware uses steps as resolution so converting back gives rounding errors in float. Do not think about that.
  • oke thank you ! 

  • Oke, it really seems like the bad contacts were really the main problem here.. so i did my basic calibration and i now started to do the bed height mapping. 

    did it already once.. and i also tried with more measure points. (10x10)
    strangely enough the first time it looked like something went wrong with the first measure point (being +/- 26mm ) instead of the normal +/- 182 mm. 

    for one strange reason it lowers to an extreme right point to what i interpret as approx 25 mm above the bed and then comes back (less extreem, but still) right and lowers to test the bed..
    but in the measurement it takes this 26 mm instead of the 182, which it is supposed to be. 

    anyway.. something clearly goes wrong.. 

    1) the first measurement. '
    2) when start at a lower point it starts at the middle in stead of the first point after which it goes to the second point. for the last row it repeats it's measurement at the centre one spot only. 

    also what i find odd also is that the carriages go all the way back up in between the measure point but doesn't actually home. Also at that point it has a small "jump" and then moves to the new position. this is what i believe the cause for the inaccurated hight mapping. 

    i'll add as much images of the situations as i can. 

    the first image is a normal start.
    the second image is start from a lower point.  
  • Just curious, I realize you want the bed map to look right, but how does it print?
  • Please go down to Z10 before starting G32 or startign height map. If you start from top especially height map you get errors since you can not move to all xy positions at top without hitting endstops.
  • @ repetier: am not sure what z10 and or g32 are but i'll figure that out. 
    i indeed found the errors.. but when i started at a hight lower say a height @ 25 mm (Z25 ?) it had that end point error  but i'll look into the z10 before i try something else. 

    @ roko: 
    I tried to print with my old setup.. did some calibration prints.. (square hollow tower, a temp test, and the little boat. the last one failed massively. from there on i eeded to clesn the hot end. broke it. changed it.. to the E3D v6 hot ends. and while i was working on the conversion i als changed the endstops to more sensitive hot ends and drv8825 stepper controllers) since then i ran into more strange errors and felt like i should run through a propper calibration before i went to the next level being printing, so i really have no answer for that. 

  • Z10 = Z position 10 - so I meant simply go to Z = 10 before doing the z probe stuff.

    What is the endpoint error? You need to set probing reagon where you can reach it with probe of course.
  • sorry i didn't explain that properly.. 

    when i started at lower (say z=25, haven't tried z=10 yet today) i found that (with a (quick) 3x3  matrix) it does the following. 
    1) measurement at centre point (in stead of intended point 1/9). 
    2) measure at normal measure point 2/9, followed by 3/9 
    3) measures the middle row correct (4-6/9)
    4) measure 7/9 at the intended 8/9 point, followed by anther 8/9 (as it should and then stops (so no 9/9)

    so really it measures only 2 correct in the first row, 3 in the 2e row and only 1 in the rd row. 
    i tried this twice.. 
    but as i said it didn't start at z=10
    i will try that tomorrow.. with a 3x3 matrix 
  • Z 10 or 25 makes not real difference. Did you mean with host or G32 as these are completely indiviual solutions with individual settings. For G32 it should do 3 rows if set as grid leveling. But Make sure to position points like in the image of the config tool and that eeprom has the right coordinates or you get a parallelogram with positions you do not expect and cause problems.
  • it was via host. 

    wasn't much aware of the G32 option.. just looked it up and went and go and tried it..
    seemed to work. just didn't do the s2 setup to save in eeprom (didn't set that up).  
    also i will make try to make the grid a bit bigger. 

    but am not sure what you mean with "Make sure to position points like in the image of the config tool and that eeprom has the right coordinates" but i will look into it. 

    kind greats 

  • did G32 S2: 

    the following are the results. 
    13:46:40.147 : plane: a = -0.0011 b = -0.0070 c = 25.4747
    13:46:40.147 : Transformation matrix: 0.999999 0.000000 0.001085 -0.000008 0.999976 0.006971 -0.001085 -0.006971 0.999975
    13:46:40.147 : CurrentZ:25.01 atZ:25.00
    13:46:40.147 : Z after rotation:25.00
    13:46:40.147 : Printer height:180.69
    13:46:41.149 : Info:Autoleveling enabled
    13:46:41.149 : X:45.03 Y:45.17 Z:24.550 E:0.0000
    13:46:41.149 : Info:Autoleveling disabled
    13:46:48.820 : SelectExtruder:0
    13:46:48.848 : X:0.00 Y:0.00 Z:180.694 E:0.0000
    13:46:48.848 : Info:Autoleveling enabled

    still a 5 point matrix, but tried to increase the correction radius from 55 to 90. 
    but am not sure this actually worked (still to small when actually measuring) 

    also i would like that more matrix points
    and know which values (names) to look for to calculate the actual: DISTORTION_UPDATE_FREQUENCY
    max speed = MAX travel speed (X=Y=Z)?? and what is a good value.. it is now set as 400 with resolution at 160 and 1/32. 
    but where do i find updates per second? 

    also to store the transformation matrix in the eeprom should the eeprom mode be enabled (1 or 2) or can it be disabled) 

    Also is there a simple formula to calculate the correct, correction radius  taking the platform diameter and correction points per axis. As this gets a lot more complicated when this will get more then (say 9) 

    Kind regards


  • more or less a bump post.. 

    but i would really like to know what the correct settings are in the firmware (and host) so i can store the transformation matrix in the eeprom. 

    and how to make the matrix more precise if that would have any benefit... 

    Kind regards 

  • From config.h on github

    /** Correction computation is not a cheap operation and changes are only small. So it
    is not necessary to update it for every sub-line computed. For example lets take DELTA_SEGMENTS_PER_SECOND_PRINT = 150
    and fastest print speed 100 mm/s. So we have a maximum segment length of 100/150 = 0.66 mm.
    Now lats say our point field is 200 x 200 mm with 9 x 9 points. So between 2 points we have
    200 / (9-1) = 25 mm. So we need at least 25 / 0.66 = 37 lines to move to the next measuring
    point. So updating correction every 15 calls gives us at least 2 updates between the
    measured points.
    NOTE: Explicit z changes will always trigger an update!

    But this is for distortion correction G33 and has no effect on G32.

    You will need eeprom enabled to store G32 results.

    For D32 5x5 is already overkill if you ask me.

    What do you mean with correction radius? Which variable?
  • edited June 2017
    thank you for your response!! much appreciated, unfortunately it doesn't help me much. 
    Probably because i was unclear. I'll try again and number my problems. 

    1) G32 vs G33

    Oke so clearly my problem here starts with that i have no idea about the difference between G32 and G33. 

    This is the following of what i found on the topic.. but i don't understand when i should use which. 
    from: http://reprap.org/wiki/G-code#G32:_Probe_Z_and_calculate_Z_plane


    This command is implemented as a more sophisticated form of bed leveling (which uses a transformation matrix or motorized correction. Smoothieware uses this code instead of `G29`.

    Each firmware behaves differently. For example, Repetier firmware allows for motorized rotation of the bed whilst ReprapFirmware probes the bed with a transformation matrix.

    S1 Transformation matrix is updated in RAM but is not stored to EEPROM. Printer immediately moves to Z maximum position (Z max endstop required!), and calculates new Z maximum height. You must first issue G28 to home to Z maximum position before issuing G32 Snnn for this to work correctly, or the printer height will be invalid.
    S2 Same as S1, except transformation matrix and Z max heights are also stored to EEPROM.

    When used with no parameters, G33 will measure a grid of points and store the distortion dips and valleys in the bed surface, and then enable software distortion correction for the first few or several layers. The values will be stored in EEPROM if enabled in firmware. You must previously have G28 homed, and your Z minimum/maximum height must be set correctly for this to work. Use the optional parameters to list, reset or modify the distortion settings. Distortion correction behavior can be later turned on or off by code M323.

    What is the benefit of one over the other and whern would i wanna use the one over the other. 

    (i just intend to have just a correction on my print bed so i don't run into problems with printing the first layers untill i need change the bed position at one point, so eeprom storage seems important to mee) 

    2) Eeprom storage: 
    from: v92 firmware configuration tool: 

    EEPROM_MODE (EEPROM usage): If you enable eeprom, you can change the most important parameter after installation over the host. Please be aware that the eeprom values overwrite settings in Configuration.h! To overwrite exiting settings select a different eeprom set.

    option: EEPROM disabled, EEPROM set1, EEPROM set 2

    my problem here is that i understand that mostlikely i need a set 1 or two, but do not understand which of the two or why. (what is the difference of the two.. specially take the last sentence in account "To overwrite exiting settings select a different eeprom set."

    I already found the:  DELTA_SEGMENTS_PER_SECOND_PRINT: 180
    I have problems finding the "fastest print speed"

    under X,Y,Z axis stepper motor i find the following: 
    a) XAXIS_STEPS_PER_MM: 160 = resolution (steps per mm) not mm/s
    b) MAX_FEEDRATE_X:400 = travel speed not print speed 
    c) HOMING_FEEDRATE_X:40 = homing speed not sprint speed (isn't this very slow? )
    d) MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X: 100 = acceleration, not speed
      so without this value i can not calculated the distortion update frequency. but ofcourse the importance of that depends on the answer of question 1)

    also looked at other area's  / tabs in the config tool.. but nothing seems to correlate. 


    i do not understand which of these speeds i have to increase / decrease because of my change from 1/16 to 1/32 stepper angle? 
    ofcourse double steps per mm.. but should i also decrease printing, travel and homing speeds? so i am not demanding to much from the chip? 

    4) What do you mean with correction radius? Which variable?

    Correction radius is visually explaind in the v92 firmware configuration tool and corresponds with: 
    and together with correction points per axis.. does it make up the grid. 


    sorry for so manyy questions, but this seems essential i in want to understand why i'm doin what on this topic. 

    but ofcourse most essential to me are questiosn 1 and 2! 

    Kind regards 


    ps: sorry for the long post. 

  • 1) You use G32 as this makes 90% of the correction. If your plane is even and you have no delta with bad geometry that you can not get fixed to create a real plane this is 100% correction.

    G33 is only used if bed is not planar or from wrong delta geometry extruder goes up/down unpredictable. That G33 will try to measure the bumps so it can follow. Works only for limited bump count.

    2) 1 or 2 is identical. Only if it was 1 and you switch to 2 it will rewrite config settings to eeprom after upload. Not needed anymore as you can send M501 and M500 to do the same as switching eeprom id.

    3) Fastest printspeed is what you have in slicer set as fastest or will use as fastest. This defines the max. distance between corrections. Faster speed = longer distances, higher frequency = lower distances. Is independent of microstepping.

    4) DISTORTION_CORRECTION_R just builds a square left/right/to/front from center with that distance for measurement point and that must be reachable with probe offset activated. You can say to omit edges so you gain a bit of size that you can increase. Only inside this area you will get correct bump correction. Outside the last heights will be used to extrapolate corrections.
  • edited June 2017
    thank you! very informative. 

    last couple of questions.. 

    1): i know the bed to be slightly hollow.. in marlin there was a correction for that (hollowness specific, no bumps) is G32 enough to correct this or should i go for G33 with this? 

    2): to store G32 in eeprom it is enough to put eeprom mode to either set 1 or 2 and use the G32 S2 command. 

    3) i assume that the correct value is then printer specific and that is should've looked it up in the printers manual? 

    4) if G32 is enough then this is not needed (only G33?!)

    kind greetz

  • 1) G32 assumes plane, so G33 is the solution here. Bended or bumps make no difference. Just start with G32 so G33 needs to do less.

    2) yes
    3) Not really. Slower is always better but slower. At some point it will not give a good print at all even for infill where it is not so relevant. So it is more a question of quality vs. printing time. Good compromise is print outer/top shell slow and insides faster since it is not visible there.
    4) G32 always if G33 is needed.
Sign In or Register to comment.