{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/1619","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/1619/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/1619/comments","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/1619/events","html_url":"https://github.com/MarlinFirmware/Marlin/pull/1619","id":61939766,"number":1619,"title":"Manual bed leveling + mesh bed leveling","user":{"login":"epatel","id":81102,"avatar_url":"https://avatars.githubusercontent.com/u/81102?v=3","gravatar_id":"","url":"https://api.github.com/users/epatel","html_url":"https://github.com/epatel","followers_url":"https://api.github.com/users/epatel/followers","following_url":"https://api.github.com/users/epatel/following{/other_user}","gists_url":"https://api.github.com/users/epatel/gists{/gist_id}","starred_url":"https://api.github.com/users/epatel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/epatel/subscriptions","organizations_url":"https://api.github.com/users/epatel/orgs","repos_url":"https://api.github.com/users/epatel/repos","events_url":"https://api.github.com/users/epatel/events{/privacy}","received_events_url":"https://api.github.com/users/epatel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-03-16T01:44:41Z","updated_at":"2015-03-16T13:46:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/1619","html_url":"https://github.com/MarlinFirmware/Marlin/pull/1619","diff_url":"https://github.com/MarlinFirmware/Marlin/pull/1619.diff","patch_url":"https://github.com/MarlinFirmware/Marlin/pull/1619.patch"},"body":"Here is a **manual** way to configure a bed leveling combined with a bed level solution using a **mesh**.\r\nI happend to buy a non-finished RigidBot BIG which was not too great, after shipping and been misshandled by the previous owner. The structure was solid though and I have re-build most of it using a RAMPS 1.4 board + 128x64 LCD board. But the bed wasn't flat, I even tried to use a sheet of glas and compensate with that.\r\n\r\nI have previously experimented to add an option in the menu for doing a bed leveling without servos etc. This on a smaller Huxley. So I added that and I started to experiment with the GRID auto bed leveling in Marlin. But after a while I started to understand that the bed leveling in Marlin is only based on a plane which still require a flat bed. Not enough for this big non-flat bed. The GRID wasn't using a mesh. So I built that, a mesh based bed leveling. One obstacle I realized was long lines needs to be split on mesh boundaries. I wrote most code in a \"simulator\" to get the logic right and have tested it all day. The mesh calculations are basically a bi-linear calculation from the mesh edges, maybe not perfect.\r\n\r\nEnable in Configuration.h, both `MANUAL_BED_LEVELING` and `MESH_BED_LEVELING`. I have separated them so one might use them for other things in the future (maybe?).\r\n\r\nThe bed level option is added last in the Prepare menu. When selecting it the hotend will travel to all points and one use the encoder to move it up/down. Move it down until the usual paper thickness from the bed and press the encoder to \"enter\" that value, keep doing that until all points have been entered. The mesh can be saved in the EEPROM so storing them is good. A G28 homing will show if the mesh is active or not. If it does not travel to the first measure point (for sync position with mesh) the mesh is not active. \r\n\r\nThis is what I get when measuring the bed I have (using 5x5 points) Pretty bad bed huh?\r\n```\r\n2.00  2.10  2.10  2.05  2.00 \r\n2.25  2.25  2.24  2.20  2.15 \r\n2.35  2.34  2.40  2.35  2.35 \r\n2.05  2.15  2.25  2.25  2.25 \r\n1.75  1.95  2.15  2.15  2.15 \r\n```\r\n\r\nBut with this method I have been able to print pretty much all over the bed. The bed is BIG, at least 360x290. The width of the reptiles print is over 200mm and without this it would have been impossible.\r\n\r\n![img_2432](https://cloud.githubusercontent.com/assets/81102/6659331/9351005e-cb83-11e4-84fc-3b043cb29599.JPG)\r\n![img_2434](https://cloud.githubusercontent.com/assets/81102/6659334/ab0d0756-cb83-11e4-9338-5b882bb99137.jpg)"},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments/81674815","html_url":"https://github.com/MarlinFirmware/Marlin/pull/1619#issuecomment-81674815","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/1619","id":81674815,"user":{"login":"nophead","id":566149,"avatar_url":"https://avatars.githubusercontent.com/u/566149?v=3","gravatar_id":"","url":"https://api.github.com/users/nophead","html_url":"https://github.com/nophead","followers_url":"https://api.github.com/users/nophead/followers","following_url":"https://api.github.com/users/nophead/following{/other_user}","gists_url":"https://api.github.com/users/nophead/gists{/gist_id}","starred_url":"https://api.github.com/users/nophead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nophead/subscriptions","organizations_url":"https://api.github.com/users/nophead/orgs","repos_url":"https://api.github.com/users/nophead/repos","events_url":"https://api.github.com/users/nophead/events{/privacy}","received_events_url":"https://api.github.com/users/nophead/received_events","type":"User","site_admin":false},"created_at":"2015-03-16T13:46:28Z","updated_at":"2015-03-16T13:46:28Z","body":"If you are printing lots of small objects the it is better to compensate\nall the layers so each object is close to correct to and bottom. If you are\nprinting one large object it is perhaps better to just compensate the\nbottom layers, but you get a distorted object anyway. If you want to print\naccurate large objects you need a flat bed.\n\nOn 16 March 2015 at 13:30, alexborro <notifications@github.com> wrote:\n\n> @epatel <https://github.com/epatel> Your idea is Awesome!! I'm thinking\n> something similar for months, but could not have any idea how to\n> interpolate the lines between probed points.\n>\n> But what @thinkyhead <https://github.com/thinkyhead> came up with is\n> important, we cannot apply this compensation for the hole print; otherwise\n> the print top surface will be curved.\n>\n> I have tried extruding more material on lower spots and it works pretty\n> good!!!\n>\n> What if we tried that: Using the traditional Bed Leveling to compensate a\n> skewed bed and your algorithm to extrude more material in lower spots??\n>\n> Cheers.\n>\n> Alex.\n>\n> --\n> Reply to this email directly or view it on GitHub\n> <https://github.com/MarlinFirmware/Marlin/pull/1619#issuecomment-81664998>\n> .\n>\n"}}