1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Solved How I switched to Mesh without really knowing what I'm doing, and LOVING the upgrade! R1+

Discussion in 'General Questions' started by Rat_Patrol, Apr 24, 2017.

  1. Rat_Patrol

    Rat_Patrol Member

    Joined:
    Dec 14, 2016
    Messages:
    178
    Likes Received:
    24
    Mods: If there is a better place for this, please move it.

    Machine: R1+

    Obviously, I'm not a programmer or expert at any of this. That said, this may be of use for others in my situation.

    This isn't step by step, but should help those less experienced users who are on the fence, but are comfortable with playing with Arduino and the firmware (remember, you can always go back to ROBO issued firmware if you royally screw it up).

    Here is what I did, and how it all worked out. It really isn't that bad, and I do NOT have the on-machine reader/controller, so I did all this (including leveling the mesh) from within Simplify3D terminal.

    First, here is the thread with the firmware files:
    http://community.robo3d.com/index.p...grade-1-1-0-rc8-rcbugfix-for-r1-r1-plus.5806/

    I would HIGHLY advise you at least page through that thread.

    After you upload the firmware, I also HIGHLY advise you have the machine home at X0 Y0, instead of the middle of the bed. As WheresWaldo said, it only makes sense to home there where the bed is strongest and least likely to flex from the probing.

    From @WheresWaldo "There is a line in Configuration.h that enables something called Z_SAFE_HOMING (line # 966), you just need to comment that line by putting two slashes in the front of it. That will force Z to home at X0, Y0."

    After you make all your firmware changes and save to the EEPROM, this is what I did:
    • First, make sure your machine is manually level across the X axis. Vitally important.
    • Make sure your bed/nozzle is CLEAN and cold.
    • From your terminal, issue a G29 S1. This will initiate bed gauging (I don't like the term leveling, but gauging since that is what you are actually doing).
    • Using the jog controls in S3D, I lower the nozzle until it just barely touches a piece of paper on the bed. Try for the same amount of "grab" for every probe point. I found that getting within .1mm was fine, always lean on the higher side than digging into the paper/bed.
    • Once you are satisfied with the level of the nozzle, issue a G29 S2 command. It will save that point data and move on to the next point. ONLY ISSUE A G29 S2 COMMAND FROM HERE ON OUT!!! A G29 S1 command will start the process over.
    • Rinse/repeat through all points.
    • After you are done with all points, the machine will report the levels with all points.
    • M500 to save everything.
    After that, you need to calibrate your Z offset. I suppose you have to do this regardless, but whatever.
    • Get yourself some feeler gauges. Pick one about .25mm or so, I used .254 since I have SAE gauge sets.
    • Set your Z offset to 0 in your slicer.
    • Set your layer height to whatever your feeler gauge is, make sure first layer is at 100% height.
    • Start a print and once it gets going, stop the print while its still on the first layer.
    • Using your feeler gauge to check the height of your nozzle to the bed. You can actually cheat by using the other feeler gauges to check what the gap is. Obviously, start high and work your way lower until you just touch your feeler gauge. In theory, it should make no difference where on the bed this is done, since mesh is compensating for bed warp.
    • I adjusted the offset using starting scripts in the slicer. It seems to work the best. Could probably set the firmware once you settle on your numbers too. My starting script starts with:
      • M206 Z(your offset); sets Z offset
      • M500; cause, M500 :D
      • G28 X0 Y0 Z0; home all axis
      • etc.
    This should give you FAR better results than the 9 point auto-level, since you eliminate all that bed flexing form shoving the nozzle on the glass to find home. As long as you don't change your bed (or it changes due to wear or something), you do NOT re-level your bed.

    I went to calibrate the extruder, found the new firmware is perfectly dialed in. Bonus.

    I am now getting prints like I have NEVER gotten with this machine. Better in every way. Jerk/acceleration values are perfect as well, no tweaking was needed. Extremely happy.

    I DO HAVE ONE ISSUE: Don't know if its the mesh firmware, but its a new issue since I uploaded it. I MUST home the machine in the terminal BEFORE starting the print, even though I have the same home command in my script. If I don't home manually before the print starts, it squeals/jams the motors for a couple seconds and throws off the X axis manual level. Not sure if its a bug in the firmware, but be aware its an issue for me.

    In conclusion: If you are even slightly familiar with playing with the firmware on these, make the jump to mesh.
     
  2. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    In your script remove the references to X0 Y0 and Z0 in the G28 line and see if it behaves differently, there should be no need to specify the axes you are homing if you want all three homed.

    Once your offset is saved, there should be no reason to resave the offset in EEPROM, saving it for every print is not a best practice since EEPROM writes are limited, why waste them on rewriting the same info over and over again.

    Also while M206 may work, there is no guarantee that it will always work in the future. M206 is designed to offset the entire axis and can also be used to offset either X or Y. The proper offset for MESH, if needed, would be to issue a G29 S4 Zn.nn, where the offset is actually saved as part of the MESH as opposed to the axis. This will become more important moving forward as UBL will introduce the concept of having multiple meshes and respective offsets associated with each mesh.
     
    #2 WheresWaldo, Apr 24, 2017
    Last edited: Apr 25, 2017
    mark tomlinson likes this.
  3. Rat_Patrol

    Rat_Patrol Member

    Joined:
    Dec 14, 2016
    Messages:
    178
    Likes Received:
    24
    It was just G28 originally, was jamming at every print. Its weird issue.

    Good to know that G206 may be phased out. So the G29 S3 command would have to be used instead of the M206, but should only be needed once (set it and done), correct?
     
  4. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Yeah basically once the offset is saved you don't need to keep doing it every print, so you can remove the M206 line as well as the M500 line from your startup script.

    The difference between M206 and G29 S4 is that M206 is a global offset, so it is designed to offset any axis you need to offset, for instance if you never want to print anything at X0 but wanted your left edge to be X5 you could issue the command M206 X5 and then no matter what actual position is requested for X, Marlin will simply add 5 to it. G29 S4 on the other hand only works on the MESH and not on the any axis in particular. As mentioned this will become more important in the future for Marlin as they move toward accommodating people who have multiple build plates and unified methods of determining bed geometry.
     
    #4 WheresWaldo, Apr 25, 2017
    Last edited: Apr 25, 2017
  5. Rat_Patrol

    Rat_Patrol Member

    Joined:
    Dec 14, 2016
    Messages:
    178
    Likes Received:
    24
    I'll send a M206 Z0 command to cancel the offset, G29 S3 command with my offset, then M500 it, and I should be left with a simple G28 in startup script.
     
  6. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Yeah, it can be that simple, since I print everything from OctoPrint and have the terminal screen up while printing I left the G29 command in there too. It is not necessary but does provide visual confirmation by displaying the MESH parameters within the terminal screen.
     
  7. Rat_Patrol

    Rat_Patrol Member

    Joined:
    Dec 14, 2016
    Messages:
    178
    Likes Received:
    24
    So the G29 S3 Zn.nn command was rejected, came back with wanting x. I guess it wants those points all individually? My offset is only 0.55mm. Not huge by any means.
     
  8. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Oops totally my fault, the command is

    G29 S4 Zn.nn

    I fixed the above references.
     

Share This Page