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

Marlin for the R2 - UBL Enabled

Discussion in 'Mods and Upgrades' started by WheresWaldo, Sep 8, 2017.

?

Would you like to see U.B.L. enabled for the R2?

  1. Of course!

    31 vote(s)
    93.9%
  2. Not really.

    1 vote(s)
    3.0%
  3. Why are you wasting your time with this?

    1 vote(s)
    3.0%
  1. Ogbo14

    Ogbo14 New Member

    Joined:
    Aug 6, 2017
    Messages:
    18
    Likes Received:
    8
    This is really the first quality print I have had. I should have done UBL a while ago. Thanks to everyone that put this together. You guys are awesome.

    Hatchbox Abs@ 238.[​IMG]

    Sent from my SM-N950U using Tapatalk
     
    Geof, mark tomlinson and WheresWaldo like this.
  2. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    If UBL is done right this is how a first layer should look for every print. This bed is NOT flat by any measure. This is wood-filled PLA just so everyone knows.
    1528390033179.jpg

    1528390082652.jpg

    1528390350941.jpg

    Sent from my SM-G965U using Tapatalk
     
    #142 WheresWaldo, Jun 7, 2018
    Last edited: Jun 7, 2018
    TransBat likes this.
  3. drbanks

    drbanks Active Member

    Joined:
    Dec 29, 2017
    Messages:
    141
    Likes Received:
    40
    It is awful pretty. I'm getting hooked to the juicy gleam of a good nGen first layer, but the silky sheen of a good first layer of PLA is also fetching.

    I've got a roll of Hatchbox PLA with wood I want to try out this weekend. Any last minute pointers?
     
  4. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @drbanks I am using a 0.6 mm hardened nozzle. I think in order to prevent clogging you need a bit more room that 0.4 mm. I also use thicker layer heights. High is 0.1400 mm, Medium is 0.2800 mm, and Fast is 0.4200 mm. I like to keep my layers between 20-80% of the nozzle size and on 0.02 mm divisions so that the layer height corresponds to full steps of the stepper motor.
     
  5. drbanks

    drbanks Active Member

    Joined:
    Dec 29, 2017
    Messages:
    141
    Likes Received:
    40
    I actually have a .6 hardened nozzle. What with a bunch of stuff filled pla samples and the kg of wood, I was wondering if it'd be worth it to put it or the .5 on.
     
  6. drbanks

    drbanks Active Member

    Joined:
    Dec 29, 2017
    Messages:
    141
    Likes Received:
    40
    Also have some rather large/tall prints I'd like to make and thinking a .4mm layer could save some print time assuming the extruder can keep up
     
  7. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Sure, it most likely can. Worst case drop your print speeds a bit if you are starving the melt zone. There will come a size of nozzle that you will need to slow waaay down. That is why the volcano adapter exists for the E3D :) So that you can do monster layers and run full speed.
     
  8. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    1.1.9 of Marlin was released about a week ago. I am going to start working in this for the R2. I assume it will have the same restrictions as the current 1.1.8 since Robo is still using 1.1.6 and RoboOS has been tuned to use Robo's own extensions to Marlin. Robo has not submitted any of those to the Marlin base team so it is unlikely there will be generic Marlin that will take advantage of any of the features in RoboOS.

    There has been a lot of work done on 1.1.9 to make it the most robust version of Marlin ever. Read about the work done here: https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.9
     
  9. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    @AllenMcAfee might have an idea where they are on updates to the firmware getting rolled out.
     
  10. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @mark tomlinson

    Should have said that no sharing was my personal observation., Robo's dev work appears to be still focused on Marlin 1.1.6, based on their commits to their GITHUB repository. Marlin devs do not update old versions of Marlin. Hence my assumption, if Robo isn't working on 1.1.8 (now 1.1.9) then none of their additions to Marlin are going to be accepted to the Marlin Trunk.
     
    mark tomlinson likes this.
  11. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I now have a preliminary set of Marlin 1.1.9 files that have the Robo R2 modifications and I know compiles. I do not know if it works, only that it compiles without errors.

    https://github.com/WheresWaldo/Marlin_for_R2/tree/1.1.9

    From what I have been able to gather, just the planner bug squashing alone should make this version of Marlin very stable and help makers produce more consistent results.
     
  12. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    I will give it a whirl on a C2 perhaps.
     
  13. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @mark tomlinson

    It needs a bit of work to get it working on the C2, but it shouldn't be more than 15 - 30 minutes work.
     
  14. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Cool :)

    I can see where the current branch might be enough of a moving target that Robo would prefer to draw a line to what they support and advance in "leaps" from one to another versions rather than incremental, but then again, I have no insight into their process.
     
  15. CdRsKuLL

    CdRsKuLL Member

    Joined:
    Sep 27, 2018
    Messages:
    81
    Likes Received:
    35
    Just wondering if I can help with testing on this at all? Also, what functions is it missing compared to the current older robo firmware?

    Thanks,

    Steve
     
  16. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Robo added G35 / G36 which they did not submit back to the main Marlin developers, IMO it is because it doesn't work (at least not as described) and adds needless complexity to the printer startup sequence. Their wizards for leveling use these commands, as well as a bug that resets many settings back to defaults when you run one of the wizards. So the wizard is broken and doesn't work with UBL. In an effort to make this printer 'user proof' they will not enable UBL, rather relying on older tramming technology of bilinear leveling. The source for RoboOS is all on the rPi and it is all Python code, but;
    1. need to be moved to a place it can be worked on,
    2. need to remove the precompiled binaries,
    3. need to replace the now edited files,
    4. need to rerun OctoPrint to recompile all.
    The Marlin firmware does not need any more testing, it already works as advertised and is more easily upgraded than RoboOS. Also, as you already found out, Robo changed all the source repositories to point to their own forks of OctoPrint and nearly all add-ons, this means that we are dependent on hardware guys (I still love the hardware) to provide updated software to make it all run. Besides this, some of their software 'phones home' without any provision for opting out of this behavior.

    If you are interested in seeing how it is put together, I started a project a long time ago but never finished to rewrite RoboOS;
    1. to use original source repositories,
    2. bring OctoPrint and add-ons up-to-date,
    3. fix wizards to add support for UBL,
    4. move all rPi files back to their default installation directories,
    5. add a feature to display the camera video (when enabled) on the LCD screen (future project).
    That repository is located here: https://github.com/WheresWaldo/WaldoLCD, this is based on an older version of RoboOS, when one of the testers had a visible repository of that source code. That repository has since been removed.

    Even better, ask Robo directly for the source code of RoboOS, they use a lot of OSS libraries and parts, so technically they have to provide it to anyone that asks if they want to stay in compliance with OSS guidelines, the head developer is https://github.com/AllenMcAfee.

    This entire discussion should be moved to another thread, maybe within the PROJECTS sub-forum.
     
    #156 WheresWaldo, Oct 10, 2018
    Last edited: Oct 10, 2018
    Geof likes this.
  17. CdRsKuLL

    CdRsKuLL Member

    Joined:
    Sep 27, 2018
    Messages:
    81
    Likes Received:
    35
    Did anyone fix the z-offset wizard? Just been looking at it and it's not saving a M851 Z command only a M206 one which is robo's made up one I'm guessing.

    It's in the z_offset_workflow.py file in the wizards folder.

    Code:
    OLD
        def _save_zoffset(self, *args):
            #turn off fan
            roboprinter.printer_instance._printer.commands('M106 S0')
            #write new home offset to printer
            write_zoffset = 'M206 Z' + str(self.zoffset)
            save_to_eeprom = 'M500'
            roboprinter.printer_instance._printer.commands([write_zoffset, save_to_eeprom])
            #pconsole.home_offset['Z'] = self.zoffset
    
    
    NEW
        def _save_zoffset(self, *args):
            #turn off fan
            roboprinter.printer_instance._printer.commands('M106 S0')
            #write new home offset to printer
            write_zoffset = 'M851 Z' + str(self.zoffset)
            save_to_eeprom = 'M500'
            roboprinter.printer_instance._printer.commands([write_zoffset, save_to_eeprom])
            #pconsole.home_offset['Z'] = self.zoffset
    
    To try it just delete the pre-compiled version .pyc of the same name. They are only precompiled so it loads quicker.

    I've done a scan on the three py files in this wizard and can't find a M502 which would reset the eeprom. There is a M851 Z0.00 resetter if you back out of the menu.

    Steve
     
    mark tomlinson likes this.
  18. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    As you will quickly discover there are a lot of 'opportunities' for improvement in the Robo code :)
    They are not software people

    Good work!
     
    WheresWaldo and Geof like this.
  19. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Just an FYI @CdRsKuLL, M206 is not a Robo creation, it was in the Marlin code all along, and it is the way of setting home offsets for all axes, http://marlinfw.org/docs/gcode/M206.html. M206 moves the entire coordinate plane in the direction of the offset. M851 is just Z offset for the probe, http://marlinfw.org/docs/gcode/M851.html. M851 just tells Marlin the probe is offset from the zero position.

    In the case of Robo they should have used M851 for the Z offset wizard instead of M206.
    I stopped caring about RoboLCD when Robo refused to release source code, even though the code itself list AGPLv3 as the license.
     
  20. sgomes

    sgomes Active Member

    Joined:
    Dec 29, 2016
    Messages:
    136
    Likes Received:
    57
    Hey @WheresWaldo ! First of all, thanks again for your custom firmware :)

    I'm trying to compile it myself, since I need to tweak a few settings, but I keep getting a bunch of compilation errors in Arduino 1.8.7:

    sketch/parser.cpp.o (symbol from plugin): In function `GCodeParser::codebits':
    (.text+0x0): multiple definition of `GCodeParser::codebits'
    sketch/gcode.cpp.o (symbol from plugin): (.text+0x0): first defined here
    [...]


    Any idea what I might be doing wrong? I'm using the 1.1.9 branch from your repo.
     

Share This Page