Jump to content

UMO Running Marlin 1.1.x


lars86

Recommended Posts

Posted (edited) · UMO Running Marlin 1.1.x

Hey guys,

 

I have been working on configuring the latest Marlin code release (currently 1.1.6) to use on an Ultimaker Original. I have been through the configuration files to compare to my latest 1.0 build. These are the changes I made to successfully get it printing. Basically, you need to open a couple files in the downloaded Marlin, search for these lines and either remove the '//' to un-comment, or change a defined value. I prefer the program notepad++ for editing. You can use the "language" setting "c" to make it more readable.

 

 

:EDIT:

 

Okay, I finally got with the program and created my own fork of Marlin. This will make it a lot easier to keep my customizations, while merging in new changes from the Master branch.

 

Here is my branch: https://github.com/CCS86/Marlin/tree/Lars86

 

This shows a comparison of my changes to the Master: https://github.com/MarlinFirmware/Marlin/compare/1.1.x...CCS86:Lars86

 

Some of my changes are specific to my modifications:

- Official heated bed kit
- Stock heater and thermocouple
- Direct driven X & Y w/ GT2 belts & pulleys
- Upgraded X & Y steppers with half the full step angle from original (hence the microstepping 8 vs 16)
- Custom geared stepper extruder drive
- A very slight software skew correction. You would want to disable skew correction until you print a test square for yourself.
- Use of a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
  

 

 

Read on to see an explanation of the changes.

 

 

  • #define MOTHERBOARD BOARD_ULTIMAKER
  • #define POWER_SUPPLY 1
  • #define TEMP_SENSOR_0 -1

 

 

For the official heated bed kit:

  • #define TEMP_SENSOR_BED 20
  • #define PIDTEMPBED (Enable PID bed control)

 

PID autotune gave me very bad results in the past. I came up with these values manually for the official bed kit:

  • #define  DEFAULT_bedKp 40    
  • #define  DEFAULT_bedKi .55    
  • #define  DEFAULT_bedKd 10

 

Gets the end stop logic correct:

  • #define X_MIN_ENDSTOP_INVERTING true 

 

Set values for your motion control here. You will need to look in your controller for your current settings. I use my phone and snap a picture of each screen:

  • #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 200, 488 }
  • #define DEFAULT_MAX_FEEDRATE          { 250, 250, 35, 35 }
  • #define DEFAULT_MAX_ACCELERATION      {2000, 2000, 600, 1000 }
  • #define DEFAULT_ACCELERATION          2000    

 

  • #define DEFAULT_RETRACT_ACCELERATION  1000
  • #define DEFAULT_TRAVEL_ACCELERATION   3500   

 

 

I run these values because of my direct drive X and Y axis. If you still have the short belts, flip these values:

  • #define INVERT_X_DIR false  
  • #define INVERT_Y_DIR true  

 

This corrects the Z axis direction:

  • #define INVERT_Z_DIR true

 

Enable this to allow saving of some of the values listed above from the control, without a reflash:

  • #define EEPROM_SETTINGS 

 

 

 

 

In my configuration_adv, I made these changes:

 

  • #define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 }

 

This gives you a menu item in "TUNE" that lets you adjust Z height on the fly. Super useful for dialing in the first layer height. You can even compensate for added blue tape with about 10 clicks:

  • #define BABYSTEPPING  
  • #define BABYSTEP_MULTIPLICATOR 2

 

This is a new feature that attempts to keep extruder pressure (rate) more accurately synced with head speed. This is a big issue on bowder printers, where the print head can change speed much faster than extruder pressure. This causes under-extrusion in regions of acceleration and over-extrusion when decelerating. According to the devs, Slic3r generates compatible gcode, but newer Cura does not. I am working with the Marlin devs to improve / find the issues with Cura gcode, because I really prefer Cura. Feel free to test and contribute to the discussion: https://github.com/MarlinFirmware/Marlin/issues/8827

 

More info on LIN ADVANCE: http://marlinfw.org/docs/features/lin_advance.html

Calibration method: http://marlinfw.org/tools/lin_advance/k-factor.html

 

Code to enable:

  • #define LIN_ADVANCE
  • #define LIN_ADVANCE_K 0 (you can pre-populate a value here. '100' is something you can test the waters with, but you can change this via the controller menu and save later. Or change via gcode)

 

 

This should get you going. First test each axis direction with "move axis". Then you can give an M119 command to check the status of the endstops. Very important that they are working correctly. Then you can command some increasing temps for the nozzle and bed, making sure you get stable readings there. Then print something and report back!

Edited by lars86
  • Like 2
Link to post
Share on other sites

Posted · UMO Running Marlin 1.1.x

I gave 1.1.3 a try some time ago but had no luck to get in running as I expected (assume, I had the wrong expectation). So still back on my old "private" version

From my view, you have considered all relevant stuff, but pls. keep us informed about your experience...

  • Like 1
Link to post
Share on other sites

Posted · UMO Running Marlin 1.1.x

New forum software up and running!

 

Also up and running... my Ultimaker Original on Marlin 1.1.6. My guide above is pretty comprehensive and so far I have not had any issues. (besides Cura gcode not playing nicely with the new Linear Advance feature in Marlin).

  • Link to post
    Share on other sites

    Posted (edited) · UMO Running Marlin 1.1.x

    Thanks for feedback!

    Will give it another try during Christmas Holidays.

     

    I'm highly interested in the following functions:

    ADVANCED_PAUSE_FEATURE

    MENU_ADDAUTOSTART

    SDCARD_SORT_ALPHA

    SPINDLE_LASER_ENABLE

    CUSTOM_USER_MENUS

     

    The only thing which is still missing is the propper implementation of a "abort behavior" e.g. moveto pause position, cooldown heaters and disable steppers...

     

    If I have findings, I´ll post...

     

    Edited by drayson
    • Like 1
    Link to post
    Share on other sites

    • 2 weeks later...
    Posted · UMO Running Marlin 1.1.x
    On 12/21/2017 at 8:40 AM, drayson said:

    I'm highly interested in the following functions:

    ADVANCED_PAUSE_FEATURE

    MENU_ADDAUTOSTART

    SDCARD_SORT_ALPHA

    SPINDLE_LASER_ENABLE

    CUSTOM_USER_MENUS

     

    The only thing which is still missing is the propper implementation of a "abort behavior" e.g. moveto pause position, cooldown heaters and disable steppers...

     

     

     

    On this 1.1 version, "stop print" now does turn all the heaters off, but still does not park the nozzle first. I actually might edit mine to leave the heaters on. The only time I seem to use "stop print" is when I had some issue and want to restart the print. It's annoying rushing to get temps set again, before they cool down.

     

    I tried the Advanced Pause feature, but ended up with a compile error. Apparently, it is not compatible with Extruder Runout Prevent. I use that feature a lot to keep the filament fresh while I am getting code ready for the printer. I posted on  Github to see why they won't work together.

     

    One nice bonus I have noticed: I use a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER and used to get occasional interruption of print motion while navigating the menus. That has gone away, which makes me think the motion control loop has been optimized.

  • Link to post
    Share on other sites

    Posted · UMO Running Marlin 1.1.x
    2 hours ago, lars86 said:

     

     

    On this 1.1 version, "stop print" now does turn all the heaters off, but still does not park the nozzle first. I actually might edit mine to leave the heaters on. The only time I seem to use "stop print" is when I had some issue and want to restart the print. It's annoying rushing to get temps set again, before they cool down.

     

    I tried the Advanced Pause feature, but ended up with a compile error. Apparently, it is not compatible with Extruder Runout Prevent. I use that feature a lot to keep the filament fresh while I am getting code ready for the printer. I posted on  Github to see why they won't work together.

     

    One nice bonus I have noticed: I use a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER and used to get occasional interruption of print motion while navigating the menus. That has gone away, which makes me think the motion control loop has been optimized.

     

    Thanks for sharing your experience.

    The advanced pause feature also not worked at my trial. I did a custom implementation of the a.m. abort behavior but my marlin version where I did it is back from 2014...

    I gave your github issue a + so I get informed if any information / answer comes up...

  • Link to post
    Share on other sites

    Posted · UMO Running Marlin 1.1.x

    Okay, I finally got with the program and created my own fork of Marlin. This will make it a lot easier to keep my customizations, while merging in new changes to the Master branch.

     

    Here is my fork: https://github.com/CCS86/Marlin-UMO-CCS86

     

    This shows a comparison of my changes to the Master: https://github.com/MarlinFirmware/Marlin/compare/1.1.x...CCS86:1.1.x

  • Link to post
    Share on other sites

    Posted · UMO Running Marlin 1.1.x

    The steps per mm on the X/Y for the UMO are not 80. But 78.7402, due to the MXL belts. See:

    https://github.com/Ultimaker/Marlin/blob/Marlin_v1/Marlin/Configuration.h#L458

    (This is for the UMO. The UMO+ has a different Z steps per mm)

  • Link to post
    Share on other sites

    Posted (edited) · UMO Running Marlin 1.1.x
    2 hours ago, Daid said:

    The steps per mm on the X/Y for the UMO are not 80. But 78.7402, due to the MXL belts. See:

    https://github.com/Ultimaker/Marlin/blob/Marlin_v1/Marlin/Configuration.h#L458

    (This is for the UMO. The UMO+ has a different Z steps per mm)

     

     

    Correct. That's why I prefaced those settings with:

     

    Quote

    Set values for your motion control here. You will need to look in your controller for your current settings. I use my phone and snap a picture of each screen:

     

    I upgraded my machine to GT2 pulleys/belts

     

    I updated the original post for clarity.

    Edited by lars86
  • Link to post
    Share on other sites

    Posted (edited) · UMO Running Marlin 1.1.x

    Is this an early UMO with the original board? http://reprap.org/wiki/Ultimaker's_v1.5.7_PCB

    A newer UMO+ with the UM2 board?

    Mine has the newer UM2 PCB.

    Edited by burdickjp
  • Link to post
    Share on other sites

    Posted · UMO Running Marlin 1.1.x
    1 hour ago, burdickjp said:

    Is this an early UMO with the original board? http://reprap.org/wiki/Ultimaker's_v1.5.7_PCB

    A newer UMO+ with the UM2 board?

    Mine has the newer UM2 PCB.

     

     

    Mine is an earlier 1.5.7 board, with an official heated bed.

  • Link to post
    Share on other sites

    Posted (edited) · UMO Running Marlin 1.1.x
    On 2/1/2018 at 9:15 AM, burdickjp said:

    Is this an early UMO with the original board? http://reprap.org/wiki/Ultimaker's_v1.5.7_PCB

    A newer UMO+ with the UM2 board?

    Mine has the newer UM2 PCB.

     

     

    I think the only change you will really need is changing:

     

    #define BOARD_ULTIMAKER       // Ultimaker

    to:

    #define BOARD_ULTIMAIN_2      // Ultimainboard 2.x (Uses TEMP_SENSOR 20)

     

    ...and using these for your temp sensor definitions:

     

    #define TEMP_SENSOR_0 20

    #define TEMP_SENSOR_1 20

    #define TEMP_SENSOR_2 0

    #define TEMP_SENSOR_BED 20

    Edited by lars86
  • Link to post
    Share on other sites

    Posted · UMO Running Marlin 1.1.x
    1 hour ago, lars86 said:

     

     

    I think the only change you will really need is changing:

     

    #define BOARD_ULTIMAKER       // Ultimaker

    to:

    #define BOARD_ULTIMAIN_2      // Ultimainboard 2.x (Uses TEMP_SENSOR 20)

     

    ...and using these for your temp sensor definitions:

     

    #define TEMP_SENSOR_0 20

    #define TEMP_SENSOR_1 20

    #define TEMP_SENSOR_2 0

    #define TEMP_SENSOR_BED 20

     

    For the most part, yes, that brings in 99% of the functionality. The only thing I've found to be different is that the UM2 board uses a pin which isn't used in the arduino for the hot end fan. To use it you have to address it directly, which Marlin isn't configured to do. nullsibnelf has shared the necessary code in a git repo:

     

  • Link to post
    Share on other sites

    Posted · UMO Running Marlin 1.1.x

    Hi,

     

    do you have any idea how to change the firmware to allow for a second extruder running from the spare port on the umo+ board?

  • Link to post
    Share on other sites

    Posted · UMO Running Marlin 1.1.x
    23 minutes ago, theoross said:

    Hi,

     

    do you have any idea how to change the firmware to allow for a second extruder running from the spare port on the umo+ board?

     

     

     

    I haven't run a second extruder before, but I think everything should be in configuration.h:

     

    // This defines the number of extruders
    // :[1, 2, 3, 4, 5]
    #define EXTRUDERS 1

     

    Probably should make sure you have good values defined for the second extruder (E1) as well:

     

    /**
     * Default Axis Steps Per Unit (steps/mm)
     * Override with M92
     *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
     */
    #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
    
    /**
     * Default Max Feed Rate (mm/s)
     * Override with M203
     *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
     */
    #define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }
    
    /**
     * Default Max Acceleration (change/s) change = mm/s
     * (Maximum start speed for accelerated moves)
     * Override with M201
     *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
     */
    #define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }

     

    • Like 1
    Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...