a5:bed-levelling-probe
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
a5:bed-levelling-probe [2019/03/26 09:52] – [Modifying A5/A3S with an Automatic Bed Levelling Probe] cs2000 | a5:bed-levelling-probe [2019/04/07 03:07] – More detail on pre-requites and troubleshooting steps. cs2000 | ||
---|---|---|---|
Line 12: | Line 12: | ||
</ | </ | ||
- | ==== IR Probe Bed Surface Compatibility==== | ||
- | For best results, the sensor needs to sense the reflection of the IR beam from the top surface of the bed. There is a potential problem when the sensor is used with a transparent bed material that reflects infrared light weakly and there is a surface below the transparent material that reflects IR much more strongly. | ||
- | **Glass (with or without coatings such as hairspray, PVA or Kapton tape):** Works as-is if placed directly on a PCB bed heater or other surface that does not reflect strongly. If there is an aluminium heat spreader or bed plate underneath the glass, then either paint the aluminium surface matt black as suggested above, or put a sheet of matt black paper between | + | =====Initial Considerations===== |
+ | From my testing and learning | ||
- | **PEI:** this is highly transparent | + | ==== Levelling the X Axis ==== |
+ | | ||
+ | - To correct/ | ||
+ | - If the measurements are out, turn the printer off and use your hand to manually move the threaded rod couplers to move one side up or down. It doesn' | ||
- | **BuildTak:** the dark grey variant works well with the sensor. The white variant is untested, but it should work too. | + | ==== Print Surface ==== |
+ | More detail on this is below, but the quick detail is the A5's glass bed is NOT suitable for an IR probe on its own. Glass is a poor reflector of IR light and the Black diamond build surface interferes with the reflection pattern. I would HEAVILLY advise you but a good surface such as PrintBite, I have had amazing consistence with this. | ||
+ | |||
+ | ==== Z Axis Friction ==== | ||
+ | Whatever lubricant JGAurora use on the threaded rods lifting the Z axis is utter garbage. After only 3 weeks, the stuff on my rods had turned all sticky meaning the //tiny// movements the printer has to do were not being performed correctly. This manifested itself in what sounded like a grinding noise coming from both of the Z axis steppers. I would recommend checking yours moves freely, and if youre concerned, clean the old stuff off and replace it with something like Machine Oil, or your preferred choice of lubricant. | ||
+ | |||
+ | The reason for this is if the motors turn enough to say, raise the bed 1mm, but for 50% of the movement, they stall because of the friction, your next probe measurement is going to be way off. I had probes that were (apparently) 44mm offset from probe point 1, that's utter madness and was caused by the motors stalling for a portion of their move on every single measurement point. | ||
+ | |||
+ | |||
+ | =====IR Probe Bed Surface Compatibility===== | ||
+ | In order for this to work, the sensor needs to " | ||
+ | |||
+ | **Glass (with or without coatings such as hairspray, PVA or Kapton tape):** Works as-is if placed directly on a PCB bed heater or other surface that does not reflect strongly. Coatings on the glass such as the Black Diamond coating affect the trigger height hugely so its advised to flip the glass upside down, paint it and install a new surface like PrintBite. | ||
+ | |||
+ | **PEI:** NOT compatible | ||
+ | |||
+ | **BuildTak: | ||
**PrintBite: | **PrintBite: | ||
Line 25: | Line 43: | ||
**Anodised aluminium, with or without PEI coating:** suitable if the finish is matt or semi-matt. | **Anodised aluminium, with or without PEI coating:** suitable if the finish is matt or semi-matt. | ||
- | **Bright Aluminium: | + | **Bright Aluminium: |
- | **Mirror: | + | **Mirror: |
**Other/Not Listed:** You will have to check yourself if your surface is transparent to IR light, an easy way to do this is with a standard TV remote control.Place your hand in front of the remote control to block the infrared signal and verify that the remote control no longer controls the TV. (Don’t wrap your hand over the front of the remote control). If the remote control still works, you may be too near the TV, you may need to back away and try blocking again. In that case, you'll need to repeat step 1 to verify the remote control works at the farther distance when it isn’t blocked. | **Other/Not Listed:** You will have to check yourself if your surface is transparent to IR light, an easy way to do this is with a standard TV remote control.Place your hand in front of the remote control to block the infrared signal and verify that the remote control no longer controls the TV. (Don’t wrap your hand over the front of the remote control). If the remote control still works, you may be too near the TV, you may need to back away and try blocking again. In that case, you'll need to repeat step 1 to verify the remote control works at the farther distance when it isn’t blocked. | ||
Line 34: | Line 52: | ||
- | ==== How-To Install IR Probe ==== | + | =====How-To Install IR Probe ===== |
Steve Wagg has put together an EXCELLENT [[https:// | Steve Wagg has put together an EXCELLENT [[https:// | ||
Line 40: | Line 58: | ||
- | ==== Full Firmware & Hardware Modification Guide ==== | + | =====Full Firmware & Hardware Modification Guide ===== |
- | === Firmware Edits === | + | |
+ | =====What to Buy? ===== | ||
+ | Infrared sensor - [[https:// | ||
+ | |||
+ | Mounting Bracket (Print this before you do the mods!) - [[https:// | ||
+ | |||
+ | 3 wire servo extension lead (2 x 1m in length) - [[https:// | ||
+ | |||
+ | Or, you'll need you own wire and either DuPont connectors or a 3pin JST Plug and tools to wire this up. | ||
+ | |||
+ | =====Firmware Edits ===== | ||
Since this is what frightens most people, lets start here.\\ | Since this is what frightens most people, lets start here.\\ | ||
* Grab a fresh copy of Marlin 1.1.8c from Sams repository http:// | * Grab a fresh copy of Marlin 1.1.8c from Sams repository http:// | ||
- | * At the time of writing, you want the file "JG A5 Custom Main Marlin 1.1.8C.zip" | + | * At the time of writing, you want the file "JG A5 Custom Main Marlin 1.1.8C.zip" |
* Extract the ZIP file and open up the Configuration.h file in Notepad or Arduino IDE 1.8.5 and make the following edits; \\ | * Extract the ZIP file and open up the Configuration.h file in Notepad or Arduino IDE 1.8.5 and make the following edits; \\ | ||
Line 70: | Line 98: | ||
#define Y_PROBE_OFFSET_FROM_EXTRUDER -30 // Y offset: -front +behind [the nozzle] | #define Y_PROBE_OFFSET_FROM_EXTRUDER -30 // Y offset: -front +behind [the nozzle] | ||
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.1 // Z offset: -below +above | #define Z_PROBE_OFFSET_FROM_EXTRUDER -1.1 // Z offset: -below +above | ||
+ | |||
+ | |||
+ | OPTIONAL - SLOWS DOWN PROBES FOR MORE ACCURACY | ||
+ | **Line 717**\\ | ||
+ | Original | ||
+ | < | ||
+ | Change To | ||
+ | < | ||
+ | |||
+ | |||
+ | OPTIONAL - SLOWS DOWN PROBES FOR MORE ACCURACY | ||
+ | **Line 722**\\ | ||
+ | Original | ||
+ | < | ||
+ | Change To | ||
+ | < | ||
Line 139: | Line 183: | ||
- | === The Glass Bed === | + | =====The Glass Bed ===== |
- | The original developer of these mini IR boards has specefically | + | The original developer of these mini IR boards has specifically |
- | - Remove the four bed leveling | + | |
+ | The best way to fix this is to paint the glass to give the IR beam a better material to bounce back from. The exact colour of the paint doesn' | ||
+ | - Remove the four bed levelling | ||
- Remove the metal clips holding the glass bed to the metal hot plate. | - Remove the metal clips holding the glass bed to the metal hot plate. | ||
- | * NOTE: Older beds that dont have the metal clips are usually stuck with adhesive. You won't be able to remove this and clean the bed enough to not affect your trigger distances, you're better off buying a new glass bed and buildplate, but youre welcome to try. | + | * NOTE: Older beds that don' |
- | - Flip the glass over so youre painting the clear side, not the Black Diamond coated side. | + | - Flip the glass over so you' |
- Clean the glass with something (IPA Alcohol or paint prep fluid) and then spray on a couple of coats of All Surface Primer, again, colour isn't important but i used grey. | - Clean the glass with something (IPA Alcohol or paint prep fluid) and then spray on a couple of coats of All Surface Primer, again, colour isn't important but i used grey. | ||
- Once you have a few layers of primer, put on 2-3 light coats of paint, i used black. Ensure you have a good solid colour and even coverage, then allow this to harden overnight. | - Once you have a few layers of primer, put on 2-3 light coats of paint, i used black. Ensure you have a good solid colour and even coverage, then allow this to harden overnight. | ||
- | - Since a perfect level height is important, we need to sand this now, this will remove any hairs etc that landed in your paint. Sand first with 600 grit sandpaper using water and washing up soap as a lubricant until the bed feels smooth and is matte. Don't use a lot of pressure as you dont want to burn through the paint to the primer. Were just worried about removing hairs and any tiny imperfections. | + | - Since a perfect level height is important, we need to sand this now, this will remove any hairs etc that landed in your paint. Sand first with 600 grit sandpaper using water and washing up soap as a lubricant until the bed feels smooth and is matte. Don't use a lot of pressure as you don' |
- Clean the bed again and apply one final coat of paint. Again, leave to dry overnight or for a few hours at the very least. | - Clean the bed again and apply one final coat of paint. Again, leave to dry overnight or for a few hours at the very least. | ||
- I then sanded the entire bed with 2000 grit sandpaper to end up with a perfectly smooth matte finish, this step may be unrequired though. | - I then sanded the entire bed with 2000 grit sandpaper to end up with a perfectly smooth matte finish, this step may be unrequired though. | ||
| | ||
- | In my case, im also going to be adding a PrintBite build surface rather than use the Black Diamond. | + | As mentioned above, this doesn' |
- | + | ||
- | Heated Plate > Glass Bed (With Black Diamond coating facing down) > Print Bite build surface. | + | |
- | If youre not using a different | + | Heated Plate > Glass Bed (With Black Diamond coating facing down and painted surface facing up) > Print Bite build surface |
- | === Hardware Changes === | + | =====Hardware Changes ===== |
- | So, assuming you have the IR module and the cable kit then lets continue, if not, find a reseller in your country here https:// | + | |
- | - If you've purchased a pre-made cable, skip these steps | + | - If you've purchased a pre-made cable, |
* You need to now create a wire using the included "Cable Kit" and your own wire. | * You need to now create a wire using the included "Cable Kit" and your own wire. | ||
* Cut 3 lengths of wire at 1.5 metres and strip the ends. | * Cut 3 lengths of wire at 1.5 metres and strip the ends. | ||
- | * Insert one end of the bare wire into the small terminal pin/clamp things. You should have around a 1mm section of the cable sheath right at the end of the gripper section. | + | * Insert one end of the bare wire into the small terminal pin/clamp things |
* Use a proper terminal crimper, or if your careful use some small needle nose plyers to crimp the terminals around the wire, give the wire a tug to ensure its held in place. | * Use a proper terminal crimper, or if your careful use some small needle nose plyers to crimp the terminals around the wire, give the wire a tug to ensure its held in place. | ||
- | * Insert the terminal | + | * Insert the crimped |
- | | + | |
- Unscrew the Z axis end stop, you will not be using this any longer. You can either totally remove it, or just tuck it back inside the printer for safe storage. | - Unscrew the Z axis end stop, you will not be using this any longer. You can either totally remove it, or just tuck it back inside the printer for safe storage. | ||
- | - Unscrew the two screws on the vanity plate covering the X Axis carriage. These can be found on the left and right of the metal plate. You will not be re-fitting this plate, so store it, and the screws somewhere safe in case you wish to revert this mod in the future. | + | - Unscrew the two screws on the vanity plate covering the X Axis carriage. These can be found on the left and right of the metal plate. You will not be re-fitting this plate. |
- | - Unscrew the two screws on the X axis itself directly in front of you and then re-attach with the 3d printed bracket from the Thingiverse link at the top of this page. | + | - Unscrew the two screws on the X axis itself directly in front of you and then re-attach with the 3d printed bracket from the Thingiverse link at the top of this page. You will need slightly longer M3 screws to do this. |
- | - Attach the IR sensor to the two remaining holes on the bracket | + | - Attach the IR sensor to the two remaining holes on the bracket. |
- | - Route the 3 wire cable up, through the plastic tubing and all the way through the access hole on the right side of the machine where there will already be wires coming from. | + | - Route the 3 wires up, through the plastic tubing and all the way through the access hole on the right side of the machine where there will already be wires coming from. |
- | - Unscrew the 5 screws holding the Y axis, and build plate so that you can remove the top cover of the machine and see the wires and PCB's inside. | + | - Unscrew the 5 screws holding the Y axis, and build plate so that you can remove the top cover of the machine and see the wires and PCB's inside. You dont need to remove the bed to do this. |
- | - Locate your Z Axis End stop plug. This will be a green connector with a Blue and then a red one above it. Right above those will be an empty stepper driver slot. Unplug the old Z axis end stop and plug in your new one. | + | - Locate your Z Axis End stop plug. This will be a green connector with a Blue and then a red one above it. Right above those will be an empty stepper driver slot. Unplug the old Z axis end stop and plug in your new one in its place. |
- | * If you made your own cable rather | + | * If you made your own cable rather |
- | - Make sure the cable is inserted the right way! From the top down, the wire order is VCC, GND and Signal | + | - Make sure the cable is inserted the right way! From the top down, the wire order is VCC, GND and Signal. |
- | - Route all the wires properly and then re-do up the whole case. | + | - Route all the wires properly and then do up the whole case. |
- | === Setup and Testing === | + | =====Setup and Testing |
Now the hard parts are done, you need to complete the setup of the IR sensor and do some testing, so lets continue. | Now the hard parts are done, you need to complete the setup of the IR sensor and do some testing, so lets continue. | ||
- Turn on the printer and using the LCD or a GCODE console such as Pronterface, | - Turn on the printer and using the LCD or a GCODE console such as Pronterface, | ||
- | - Next, do a basic bed level using the LCD and the print bed levelling knobs so that the bed is as level as you can get it using this method.\\ | + | - Use the LCD in the MOVE menu and Move Z down slowly (0.01mm steps) until the probe triggers. This is when the red LED light comes on. |
- | - If you find the nozzle wont go low enough, use a GCODE console | + | - Take the current Z value on the printers LCD screen and negate it. (so a value shown of 1.6 becomes -1.6), this is the offset between your print Nozzle |
+ | * My Screen showed | ||
+ | | ||
+ | - Next, do a bed level using the LCD and the print bed levelling knobs so that the bed is as level as you can get it using this method, basically proceed to set the correct 0.2mm layer height pretending as if you don't have an IR sensor.\\ | ||
+ | |||
+ | | ||
Now that you have an IR probe and a nice level bed, you need to be sure that before every print, you re-level the bed, but this time we can use the new probe to do that! | Now that you have an IR probe and a nice level bed, you need to be sure that before every print, you re-level the bed, but this time we can use the new probe to do that! | ||
- | G29 is the GCODE to issue a level bed routine. You can run this now I guess to see it working, but in reality, all you need to do is add the following lines AFTER your initial G28 home command in your 3d printer | + | G29 is the GCODE to issue a level bed routine. You can run this now I guess to see it working, but in reality, all you need to do is add the following lines AFTER your initial G28 home command in your slicing software. |
- | **NOTE: | + | **NOTE: |
- | < | + | < |
- | M500 ; Save to Eeprom | + | G28 ; Home All Axis |
- | G28 ; Home | + | G29 P1 ; Mesh Probe Bed |
- | G29 ; Level bed</ | + | M500 ; Save To EEPROM |
+ | M420 S1 ; Activate Mesh | ||
+ | </ | ||
- | And your done! From now on, the printhead will perform an automatic mesh bed level using the IR probe before every single print! | + | And your done! From now on, the printhead will perform an automatic mesh bed level using the IR probe before every single print. |
- | ==== Wiring ==== | + | In standard probing mode, This adds about 30 seconds to your print time and ensures that crucial first layer goes down perfect every time! |
+ | |||
+ | If you also performed the ultra slow mods to get a better probe height, this takes a few minutes per probe cycle. Since we've saved the mesh to the EEPROM, you may wish to do this mesh periodically and just use the below as your start-up commands since we can call the mesh data back from EEPROM. | ||
+ | |||
+ | < | ||
+ | M420 S1 ; Activate Mesh | ||
+ | </ | ||
+ | |||
+ | =====Useful Mesh Bed Levelling Commands===== | ||
+ | G29 - Issue this command to probe the bed and create a mesh using the IR probe\\ | ||
+ | G29 Q - Issue this command to check if mesh bed levelling is enabled\\ | ||
+ | M420 V - Issue this command to view the current mesh data (useful for comparing results)\\ | ||
+ | M500 - Save the current mesh data to EEPROM\\ | ||
+ | M503 - Show the current data in the EEPROM\\ | ||
+ | M420 S1 - Activate the mesh bed levelling data in the print job\\ | ||
+ | |||
+ | =====Wiring | ||
Hotend Sensor Wiring | Hotend Sensor Wiring | ||
Line 206: | Line 271: | ||
Motherboard Sensor Wiring | Motherboard Sensor Wiring | ||
+ | |||
+ | NOTE: This is Sams photo, he left his end stop microswitch connected. If your following this guide properly, you should remove it and plug your IR sensor into its port, NOT the one sam has shown here, its still helpful photo as its the green connector just next to it. | ||
{{ : | {{ : | ||
Line 211: | Line 278: | ||
- | ==== Testing ==== | + | =====Testing |
You can test your ends top function using Pronterface, | You can test your ends top function using Pronterface, | ||
a5/bed-levelling-probe.txt · Last modified: 2020/12/25 02:13 by 127.0.0.1