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

Marlin Firmware Upgrade 1.1.0 RC8 & RCBugFix (For R1 & R1+PLUS)

Discussion in 'Mods and Upgrades' started by WheresWaldo, Jun 11, 2015.

Thread Status:
Not open for further replies.
  1. jim3Dbot

    jim3Dbot Active Member

    Joined:
    Jun 1, 2015
    Messages:
    246
    Likes Received:
    124
    @danzca6 & @WheresWaldo The IR probe, does as we know sense for some of the RAMPS compatible boards, as long as there is the sense input, optical or other. You know @danzca6 that was the KISS method I was going to look into,MESH first, then proceed to software control from a spare arduino pin.......hoping in Gods Green Earth @WheresWaldo or @danzca6 first would fix code....not the proper coder thing, but you know...........
     
  2. cjryker06

    cjryker06 New Member

    Joined:
    Mar 22, 2016
    Messages:
    22
    Likes Received:
    0
    These are the same RC Bugfix with MESH from above, just renamed for the most part correct? I just want to make sure I properly align what I'm getting with what I have. Thanks.
     
  3. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @danzca6 then you might have missed this little tidbit.
    Code:
    // A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
    // For example an inductive probe, or a setup that uses the nozzle to probe.
    // An inductive probe must be deactivated to go below
    // its trigger-point if hardware endstops are active.
    #define FIX_MOUNTED_PROBE  //--ROBO-BH
    I am pretty sure that this define ignores all sensing from the probe during printing and only responds to input during G28 homing.
     
    #663 WheresWaldo, Sep 24, 2016
    Last edited: Sep 24, 2016
  4. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    No the Configuration.h files are specific to ABL. All other code is the same. Since 1.1.0 has code for both MESH and ABL, and you can't have both enabled, it is one or the other. Since I can't guarantee that others will not mess up Configuration.h, each zip has the proper #define statements enabled for the particular hardware setup and leveling method.
     
    mark tomlinson likes this.
  5. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Talk about your limited warranty :)
     
    WheresWaldo likes this.
  6. cjryker06

    cjryker06 New Member

    Joined:
    Mar 22, 2016
    Messages:
    22
    Likes Received:
    0
    OK thanks, I almost tried to compile ABL when I use MESH. I hate being the new guy lol.
     
  7. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    Getting the following error message during compiling:

    Arduino: 1.6.9 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    fork/exec C:\Users\Arduino\hardware\tools\avr/bin/avr-gcc.exe: The filename or extension is too long.
    Error compiling for board Arduino/Genuino Mega or Mega 2560.

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

    Apparently it's a Windows file system issue. I'll try to figure out a way around it but I thought it might be a good idea to post it here so anyone in the future who has the same problem can find it.

    Just to clarify for myself; I can run the MESH leveling from the Simplify console, right? I don't need an LCD? I looked it up in the Marlin documentation but it only said that 'It can be done'. Not how it can be done.

    EDIT:

    Ok it seems to have been a mismatch with the version of the U8glib library I used. I downgraded to 1.18.0 and it compiled.

    EDIT 2:

    The new firmware is now on the printer. I connected through Simplify3D and tried homing all axes but it was a no-go on the z-axis. It doesn't recognise the IR sensor.

    I found the following instructions to perform MESH bed leveling without a controller:

    • G29 or G29 S0 Print mesh info
    • G29 S1 Initiate probing, will do a homing + travel to first probe point. Now use Printrun or what you use to slowly lower the hotend until it touches the bed, i.e. with a paper between to feel when it's close enough.
    • G29 S2 Save current height for the current point, then travel to next probe point. Repeat the manual lowering until touches. Do this until all points have been probed.
    Upon sending a G29 command to my printer, despite it not being commented out in the firmware, I get the message back:

    "READ: Mesh bed leveling not active."

    EDIT 3:

    Realised I had made a mistake in not changing the following line:

    "const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. //robo"

    When I changed it, it started using the IR sensor to home the z-axis. In a different manner than before. Much slower and 'more carefully'. But hopefully that turns out to be okay.

    Sorry if this is all pointless spam. It's possible someone as new to this side of the printer as I am will have the same troubles so I'm trying to be detailed.
     
    #667 Oisin, Sep 24, 2016
    Last edited: Sep 24, 2016
  8. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @Oisin Yes you can perform MESH from the terminal screen, but it is tedious. The starting command is, According to the Wiki
    If there is no MESH stored in memory you will get the message you posted about not being active. So "Active" means enabled AND the procedure has been completed AND the MESH is stored in EEPROM.
     
    Oisin likes this.
  9. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    Ah I see.

    I have no choice as I don't have a controller, so I'll get started on that. Thanks, Waldo.
     
  10. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Maybe this is a question for @jim3Dbot or @danzca6, maybe you @Oisin can test this out, look at the following diagram of the RAMPS 1.4 board
    Arduinomega1-4connectors[1].png
    I have marked in red where the Z axis switches would be connected, but I think the blue circled pins is where the IR probe needs to be plugged into the RAMPS board. Since David Cocker is the Duet board creator all his posts about the IR board are kind of related to that implementation, no need to adjust anything with the Duet, just plug and play. Same with Smoothieboard. It is near impossible to find anyone with it actually installed in a RAMPS board and fully documented the process.

    I found another page that contradicts what I wrote above. It is here http://wiki.aus3d.com.au/IR_Probe_1.4#Configuring_Marlin They mention that the probe is connected to the Z_MIN_ENDSTOP pins.
     
    #670 WheresWaldo, Sep 24, 2016
    Last edited: Sep 24, 2016
  11. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    Sure thing Waldo! I'll open up my printer a little later after I have a go at the MESH leveling. I have run in to a problem that I thought I might find last night. The printer won't go down any further after the IR sensor is triggered, meaning the nozzle won't touch the bed. If I move the IR sensor higher in its bracket, it kind of makes the sensor a bit pointless since it won't be stopping the hot nozzle touching the PRINTinZ plate and damaging it (not that I'm performing this procedure with the nozzle heated, I just mean for regular axis homing).
     
  12. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Studying these pages and more obscure references, it could be that you need to uncomment this line
    Code:
      //#define ENDSTOPPULLUP_ZMIN
    and change this one back to "false"
    Code:
    #define Z_MIN_ENDSTOP_INVERTING true  //--ROBO-BH set to true to invert the logic of the endstop.
    You might also need to play with Configuration_adv.h and this define
    Code:
    // If you want endstops to stay on (by default) even when not homing
    // enable this option. Override at any time with M120, M121.
    //#define ENDSTOPS_ALWAYS_ON_DEFAULT
     
  13. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    One thing to not forget, for anyone making changes to configuration files, please, please, please place a unique searchable comment at the end of the modified lines. That way you can see exactly what you have changed. I try to do it by adding //--ROBO-BH (modified for my Robo and my initials are BH) to every line I have changed in Configuration.h, Configuration_adv.h and Version.h
     
  14. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    Okay I'll give that a go. The idea would be for the printer to home using the IR sensor, but give me control ultimately. I wouldn't like it to ignore the sensor and to drive itself in to the bed.
     
    #674 Oisin, Sep 24, 2016
    Last edited: Sep 24, 2016
  15. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    Code:
    //#define ENDSTOPPULLUP_ZMIN
    and change this one back to "false"
    
    This one did not seem to change the functionality of the z-homing for me.

    Code:
    #define Z_MIN_ENDSTOP_INVERTING true //--ROBO-BH set to true to invert the logic of the endstop.
    You might also need to play with Configuration_adv.h and this define
    
    I changed this line in order to get the IR sensors input to be recognised. It worked but still will not allow any more movement downwards after the sensor is triggered.

    Code:
    // If you want endstops to stay on (by default) even when not homing
    // enable this option. Override at any time with M120, M121.
    //#define ENDSTOPS_ALWAYS_ON_DEFAULT
    
    I will try this next. It sounds like it will simply not allow any movement, since it will consider all endstops to be triggered, but I'll try it regardless.
     
  16. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    What about this line:
    Code:
    #define Z_MIN_PROBE_ENDSTOP_INVERTING true //--ROBO-BH set to true to invert the logic of the endstop.
    I remember that this was new in RC7 and I forgot to set it in the first upload I made. It might need to also be "false".

    I also think you may be correct on the last message, unless Marlin is smart enough to use the trigger while homing and then at no other time.

    If you do get it working, we need a concise summary of what firmware changes are actually necessary rather than having to look at all these messages to find bits and pieces of the answer.
     
  17. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    We also need to make sure we are all on the same page. Here is how I think it should work. :confused:

    When you issue a G28 the homing should be X axis > Y axis then move to the middle and drop Z axis until the IR probe is triggered. G28 will never/should never go below the trigger point. Now there will be an offset from the trigger point to the nozzle actually touching the bed. That should be taken care of with the M851 command for auto-leveling and with
    Code:
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]
    during homing.

    After homing you should be able to move the extruder to Z0, which should be defined as the Z height where the probe is triggered +- the Z_PROBE_OFFSET_FROM_EXTRUDER +- anything set in M851 (that's why it can be positive or negative relative to the nozzle).

    Is that not the way it is behaving?

    Maybe @jim3Dbot or @danzca6 can correct my assumption if I am wrong? :eek:

    I hate having to troubleshoot ABL when I just don't use it anymore.
     
    #677 WheresWaldo, Sep 24, 2016
    Last edited: Sep 24, 2016
  18. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    That's no problem. I'll write that up when I get it working. For now I would like to see MESH leveling in action so I plugged the z-endstops back in and modified the firmware so they work. I'll get MESH working like that for now before working on the getting the IR sensor letting me go below it's trigger point.
     
  19. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    In response to your last message, if I set a value for the Z_PROBE_OFFSET_FROM_EXTRUDER that lets the extruder touch the bed in the center (which would be a hard value to obtain anyway since the IR sensor will not go below its trigger point), then won't that value only be valid for the center? And not for any of the other MESH points on the bed?
     
  20. Oisin

    Oisin Member

    Joined:
    Apr 14, 2015
    Messages:
    384
    Likes Received:
    23
    I just ran the first MESH leveling procedure. Between each point I noticed the printer pausing. Each pause was marked with an entry in the console that said 'echo busy: processing'. It appeared that the printer thought it was moving during these pauses, as it was quite out of line by the last row of points and hit the X-endstop, meaning I could not complete the procedure. I will try running the sequence with a more powerful PC to see if it was my notebooks slow processor that caused the issue.
     
Thread Status:
Not open for further replies.

Share This Page