Home JGAurora A5 & A3S Modifications & Upgrades

IR Sensor Upgrade Wiki Changes (Comments and Suggestions)

cs2000cs2000 Posts: 56🌟 Super Member 🌟

Hi everyone,

Ive been putting some work (more hours than i care to admit) into improving both the general understanding and the documentation for this on the wiki  over here. https://jgaurorawiki.com/a5/bed-levelling-probe

Before my edits, the main advice was to go to a Thingiverse post where there is a pre-modified firmware and a quick guide on what do to, but that doesn't fit the WIki format. WIki's by definition should be self contained with external links frowned upon as the source material can disappear and than you have...nothing, no info. How bad would Wikipedia be if it was just links to random google pages?!?

I have written an entire guide based on my adventures so far getting this amazingly useful upgrade to work. It includes full steps for firmware modifications required which is great if you've already made custom firmware alterations and don't want them wiped by just flashing the pre-modified firmware provided. It also contains more detailed wiring guides and full info on how to get an acceptable repeatable trigger distance.

I know the general feeling prior to this is that whether its due to the glass bed, or the Black Diamond coating, the IR beams repeatability cannot be trusted. However, I've done plenty of research and testing and one thing stood out. The original designer specifically created the sensor to pick up on glass. It does 100% do this. However I guess since the sensor was designed, 3d printer layer heights have gone down, even a few years ago, an average cheapy printer could do a 0.3 or 0.4mm layer height. Nowadays an average printer is at 0.2 or less. But theirs really really simple things you can do to improve the accuracy to something more reasonable, like down to 4 microns (0.004mm) such as painting the glass bed.

What this means is that its NOT the black diamond coating, OR the fact that its glass, its the fact that only a weak IR signal gets reflected by the glass, the rest is coming from the aluminium bed, and if the IR beam has to travel entirely though 2 mediums (black diamond then the glass) before bouncing from a third (the aluminium bed) of course you're going to lose some accuracy!

One amazingly useful video is this one it busts many sensor myths and pits them all against both glass and aluminium. Something especially stood out to me here. Out of the IR sensor and the much hyped BL Touch, the IR sensor actually has a MUCH better standard deviation (check that graph out at this timestamp URL so perhaps give the IR sensor another shot?

Also, that edit was my first major change on the wiki, so any comments or criticisms are welcome.

Now I just need to wait for my new heated bed to arrive so I can get my machine back up and running. Damn slow boat from China….


Thanked by 1Samuel Pinches

Comments

  • Der_MuckDer_Muck Posts: 265🌟 Super Member 🌟
    I did a lot of testing as I had the IR probe and I never got a accuracy of 0,05 and that was my min. goal. So the optimum for me was even finer but it was simply not passible at all. All scratches on my BD plate are from tests with the IR probe and 0,08 first layer high. It was simply never passible to hold those 0,08mm over the full plate. Sometimes it was higher, sometimes it was sctatching over the plate. For me I had to throw it away. The first layer has to be +-0,02 accurate otherwise for me I cant stand it and its useless for me. I want perfect results.
    With the BLtouch I never had any problem at all, simply installing and it worked in every test I did (but with my tip mod. of the BLtouch) never tested it in original version. 
  • cs2000cs2000 Posts: 56🌟 Super Member 🌟

    After waiting for my new print bed heater to arrive, I managed to get this set up this morning.

    It all works reasonably well. However, as I was warned, the trigger distance is a little unpredictable. It still levels the bed well, but I usually have to baby step the nozzle up or down a bit to get the first layer perfect. This is with a painted glass underside on the standard Black Diamond surface.

    Im still waiting for my PrintBite build surface which should remove this weird effect, plus my black diamond is horribly scratched from previous mistakes (before I fitted the IR sensor). Once it arrives, il do a few G29's in Pronterface and stick the outputs in here so we can analyse the repeatability of the probes.

    The bad news is, my brand new bed is horribly warped, MUCH worse than the one the came in the box with the A5 when I bought it new. It was wrapped in bubble wrap but not in a hard cardboard box which I would have preferred . I guess if you try to send a large flat metal sheet from China, at some stage its going to get warped when wrapped in this fashion.

  • cs2000cs2000 Posts: 56🌟 Super Member 🌟
    edited March 2019

    Well, so far, im admitting defeat. Ive spent the best part of a week trying incredibly hard to get this working, but the repeatability of the probes is just non existent so far. Im still waiting on my PrintBite surface to see if that resolves that issue.

    Im also struggling with 100% verifying if UBL is actually enabled, my startup script is basically this (following the info on the Marlin Firmware website)

    G28 ; Home All Axis

    M851 Z-1.7 ; Z Offset

    M500 ; Save to Eeprom

    G29 P1 ; Do automated probing of the bed

    G29 S1 ; Save UBL mesh points to EEPROM.

    G29 A ; Activate the UBL System

    Anyone else got a known good working GCODE script for this?

    I have not tried this new GCODE script yet, ive currently reverted back to mesh levelling as I have some thing I HAVE to get printed and cant afford any more downtime. Ive also made further changes to the Marlin firmware. Basically making the axis movements slower in certain scenarios.

    When the axis "bump" at high speed, they then do a slower "bump" to find their home position, ive slowed this second "bump" down a little so home detection is more reliable.

    With the UBL probing speed, ive basically done the same. The "high precision" probe is done at a slower rate and also performed twice, with the average value being taken as the reading value.

    When my new bed surface appears, il try and see if the new bed and/or the firmware edits make any difference, otherwise, BLtouch will have to be ordered.

    Thanked by 1Samuel Pinches
    Post edited by cs2000 on
  • Der_MuckDer_Muck Posts: 265🌟 Super Member 🌟
    edited April 2019
    Set the skript beginning with:

    M502 //clear the eeprom from a old mash and valves

    M500

    G28

    G29 P1

    G29 P3 T

    G29 T

    G29 S1

    G29 F 3

    G29 A

    M500


    Set the offset always in the firmware, so you dont have to worry about it.

    Thanked by 1cs2000
    Post edited by Der_Muck on
  • cs2000cs2000 Posts: 56🌟 Super Member 🌟

    Well, well, well... My new PrintBite surface arrived yesterday, only had time to verify that on a standard LCD mesh level, it worked OK.

    Today i found time and took the A5 apart again and plugged in the IR sensor and sent two G29 commands one after the other, and what do you know.

     0 +2.864 +3.525 +4.434 +5.285 +5.609
     1 +2.579 +3.532 +4.391 +5.191 +5.950
     2 +2.576 +3.421 +4.260 +5.165 +6.099
     3 +2.602 +3.473 +4.373 +5.190 +5.933
     4 +2.792 +3.460 +4.211 +5.062 +5.739


     0 +2.864 +3.525 +4.434 +5.285 +5.609
     1 +2.579 +3.532 +4.391 +5.191 +5.950
     2 +2.576 +3.421 +4.260 +5.165 +6.099
     3 +2.602 +3.473 +4.373 +5.190 +5.933
     4 +2.792 +3.460 +4.211 +5.062 +5.739

    Two results with EXACTLY the same measurements (and proof of JUST how badly my bed is warped!!!)

    It seems like my super slowed down levelling routine, combined with averaging the results and the new print bed have fixed the total unreliability of the measurements from before. I have updated the wiki with the new firmware changes and my current GCODE start script.

    The firmware changes I made essentially perform 3 probes at each point on a 5x5 grid for a total of 75 data points. The 3 probes at each point get averages out to account for any small inconsistencies in the measurements. It also probes at 1/4 of the speed it used to do.

    I will eventually re-flash the firmware with the Z offset in it, im still printing calibration cubes to dial that in perfectly, its somewhere between 1.65 and 1.85, but as I say, im testing still. Everybody's measurements will vary ever so slightly as well.

    My current GCODE is this;

    G28 ; Home All Axis

    M851 Z-1.85 ; Z Offset

    M500 ; Save to Eeprom

    G28 ; Home All Axis

    G29 ; Do automated probing of the bed

    M500 ;Save UBL mesh points to EEPROM.

    M420 S1 ; Activate the UBL System

    Still having issue when printing with this GCODE, but I feel like im getting closer at the very least

    Thanked by 1Samuel Pinches
  • Der_MuckDer_Muck Posts: 265🌟 Super Member 🌟
    Your start script seems not to be the way it should be oO
    Why do you do G28 twice? 
    You dont need to write M851 to the skript, it is save after M500 only with M502 you need a new M851 setting
    So it would be 
    G28
    G29
    M420 S1
    M500    
    for the same result.

    I would change to:
    G28
    G29 P1
    G29 S1
    G29 A
    M500

    It means the same but is writen in the UBL system and works 100% together, if you wanna get sure, use my total code with the G29T to show you in every print the results of the UBL leveling for example in PF.
    You can simply add your M851 after G28 there. (The G29 F code is very usefull to compensate the leveling valves to one level for faster print where no Z compensation is need. 3mm is for me enough.)

    Its strange that you have only + and so high valves in your leveling.  Normaly it should be around +-0 while the first point is 0. You may have to level the bed manual to. You can see that one side is higher than the other one.
    Thanked by 1cs2000
  • cs2000cs2000 Posts: 56🌟 Super Member 🌟

    Thanks for the comments on the GCODE. Im doing a print using the old fashioned mesh levelling at the moment, will re-plug in the IR sensor and do some tests with the new GCODE tomorrow.

    The reason why I was going two G28's, only because that's what I had seen before. The instructions were to do a G28, then your Z offset, then another G28. Im new to messing with GCODE really, so im learning what everything is for.

    My old printer was a full DIY kit built by my from parts in a kit, but I didn't upgrade it at all apart from new bearings and so everything im doing is a learning experience :)

    Yes. my bed is pretty badly warped, but it also isn't manually levelled very good either, again, il fix that tomorrow :)

    SO youre saying that I just issue M851 Z-1.85  and M500 a single time, then I don't need it in my GCODE start scripts, so my script would just be


    M501

    G28
    G29 P1
    G29 S1
    G29 A
    M500

    And then the print GCODE itself?

  • Der_MuckDer_Muck Posts: 265🌟 Super Member 🌟
    Yep it is the same than, you dont need the M501 because everythin is in the eeprom. 
    Yeah you dont need the M851 it is save with M500 but personaly I never use the eeprom for long time saving.
    I always use the eeprom saving with M500 only for try outs. When its ok, I write everything in the firmware so I dont have to worry to lose something when I do the M502. And that I always do because I dont wanna have a old saved mash in the background or no test valves. Thats why my script doesnt have a M851.   
    If you are sure that you dont use M502, you only need M851 one time.

    I also learned it with the A5, I was new in 3D printing and did only one print in the original setup :D 
    After that print, the modding mode was active for me :D and I still mod my A5 ahaha   I am at the level of modding the mods I allready did :D  Next goal is print end auto shut down, all metal dual extruder and titanaluminium nozzles. XD
    Thanked by 1cs2000
  • cs2000cs2000 Posts: 56🌟 Super Member 🌟

    OK, got it sorted I think, just running a few test prints with the probe activated, first few went OK, doing one more long (20hr) print now to 100% confirm.

    I have updated the wiki with my findings. Seems one crucial factor is the lubrication on the threaded rods that the Z axis goes up and down on, the lubricant had gone all sticky meaning the measurements were all off as the motors were skipping steps due to the friction.

    Thanked by 1Samuel Pinches
  • Der_MuckDer_Muck Posts: 265🌟 Super Member 🌟
    Yeah on my Z treads where a lot of that blue lube, thats toooo sticky from beginning on. 
    I whipped it of and now lube it with the high temp. ptfe oil with a little universal grease.
  • cs2000cs2000 Posts: 56🌟 Super Member 🌟
    edited April 2019

    Well, the wiki is now complete!

    The grease I did apply was heavy duty stuff meant for wheel bearings on cars so it wasn't ideal, but it proved the point. Ive since removed the lead screws totally, cleaned them with a solvent and applied some machine oil, which itself will soon be replaced with some PTFE lubricant anyway. That blue stuff that comes on them from the factory is truly awful, I couldn't believe how sticky it actually got!

    The initial 20hr print did about 2 hrs ok before it started to make a grinding noise again due to lack of good lubrication, with the cleaned rose and machine oil, im 6 hrs in and all looking good. Bed adhesion is spot on and the print seems to be running fine.

    Thanks for the GCODE help Der_Muck, I was a little lost with that.

    All my trials and tribulations are now on the wiki which finally serves as a complete guide to doing this from scratch. The only caveats being you really cannot use it on the standard glass bed, you need to re-lube the threaded rods and be prepared to invest time in getting the setup dialled in. But once its there, it should be reliable!

    Thanked by 1Samuel Pinches
    Post edited by cs2000 on
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    Thanks for all your time invested into those pages. I've been watching your hard work and it looks great! :wink:
    Thanked by 1cs2000
Sign In or Register to comment.