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. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @danzca6 It just takes too long.
    1. What do you think of the way the LCD works now?
    2. Have you set a FADE yet?
     
  2. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    Agreed it takes longer, but when you are done your done. The LCD does work better on the full graphics. I've yet to switch over to my XXL again to see what changes can be noticed there. Fade, no, I haven't. I can't wait until the weekend to spend more time with the new tweaks.
     
  3. Ed Ferguson

    Ed Ferguson Active Member

    Joined:
    Sep 21, 2016
    Messages:
    272
    Likes Received:
    220
    Is there a recommended Fade value? I'm thinking of using 0.8mm to start with. So with 0.1mm layer heights, the corrections would take place within the first 8 layers.

    Or perhaps the best value depends on the maximum variation in your bed's mesh.
     
  4. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    You know that is a great question. I was wondering what would make for the best universal value to begin with. I can almost think it might be dependent on your model and the layer height. My bed isn't too far off from point to point, but you're right that it might be also factored into the appropriate value for the M420 call.
     
  5. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @danzca6, @Ed Ferguson
    I would think that it is model dependent. And based on where exactly you need to have any details close to the bottom of your model. I don't think the developers addressed that particular question. I am pretty sure it was 'stolen' from the UBL code that Roxy-3D is working on and added to Marlin 1.1.0. Since my bed is fairly warp free when heated I did not set a value for FADE (M420)

    One more note, there is something I want to try and it's in yesterday's commits. They added M-code commands to control a 3-pin RGB LED direct from the RAMPS (with the appropriate pull-down resistor). So I am going to replace the files from yesterday's posts, sometime this morning.

    The code used was M150 (examples below):
    Code:
    M150 R255  ; Turn LED red
    M150 R255 U127  ; Turn LED orange (PWM only)
    M150   ; Turn LED off
    M150 R U B  ; Turn LED white
    I believe if you have done this RGB LED mod by @Marquis Johnson you will need to assign pins 4, 5 and 6. You would replace these lines in Configuration.h (# 1368 - 1370):
    Code:
      #define RGB_LED_R_PIN 34
      #define RGB_LED_G_PIN 43
      #define RGB_LED_B_PIN 35
    With these new values:
    Code:
      #define RGB_LED_R_PIN 6
      #define RGB_LED_G_PIN 4
      #define RGB_LED_B_PIN 5
    You do not use any of his code.
     
    #905 WheresWaldo, Dec 1, 2016
    Last edited: Dec 1, 2016
  6. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    #906 WheresWaldo, Dec 1, 2016
    Last edited: Dec 1, 2016
    Sonny's Robo3D likes this.
  7. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    The LEDs is pretty cool. I can see maybe having one or two LEDs encased into something to show if the bed/hotend temps are low or high for safety. Not sure I would change out all my LEDs in the case from white to these. Very interesting though.
     
  8. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @danzca6, note that this is different than CASE_LIGHT and TEMP_STAT_LEDS.

    CASE_LIGHT defaults to Pin 4 and is controlled either by a menu choice on the LCD controller or M355
    Code:
    M355 S0 - Case light off
    M355 S1 - Case light on
    M355 Sx - Set case light intensity between 2 and 255
    TEMP_STAT_LED is different again, and seems to be only relegated to basically 'cold' or 'warm to hot.' I don't even know where those connect and don't know how it's controlled other than the fact that there are a blue (or green) one and a red one. The blue (or green) one is on if the hotend and bed are below 54°C and the red on is on if either are above that temperature. -- This must be for the LEDs soldered to the RAMPS board.

    So it looks like you could have a dimmable CASE_LIGHT that you can turn off and on via the LCD and dim with M355 and at the same time an RGB LED (or strip) that can be turned to any color by using M150 and parameters behind it. I could see some use for RGB lighting based on G-code positioning. Lighting for the case might be more important if I was doing time-lapse, maybe have extra LEDs that turn on when engaging the PHOTOGRAPH_PIN or doing some OctoPrint stuff.

    If I only had a Robo R2, I could see modding it to add a bunch of lights controlled by g-code. Maybe you could then see inside that dark cavity.
     
    #908 WheresWaldo, Dec 1, 2016
    Last edited: Dec 1, 2016
  9. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    The pins for this is in the pins_RAMPS.h (or other pins_*.h file) which is interesting since the blue shares the same pin as the setup for the M150, but not the red by default. I also find it odd that they wouldn't put the definitions for the pins for M150 in the pin_*.h files like everything else. Configuration.h seems odd to have these.
    Code:
          #define STAT_LED_RED_PIN 32
          #define STAT_LED_BLUE_PIN 35
    
    So what you are referring to above for M150 is just pretty much letting you in your startup or end gcode set some RGB LED to some color at some stage. I guess that can be helpful in some cases.
     
  10. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    No, the TEMP_STAT_LEDS can't be controlled other than enabled or disabled.

    The STAT_LED_RED|BLUE_PIN in the pins file is only for the Viki2 and MiniViki, No one should be using those since they are built unlike any other controller on the market and are incredibly slow, because they built the screen in upside down and it requires the LCD routines to rotate the screen 180°. Even the new screen writing routines do not help the Viki, it writes at about half the speed of even the cheapest Chinese LCD screens.

    But it does seem out of character to put the pin definitions in Configuration.h.

    Yes, but I could also see it using something like the post processing routine in S3D to inject different values at different points in the code.

    On a side note, you could use #define LCD_SCREEN_ROT_180 and then you could mount the LCD controller upside down if you wanted the encoder knob on the left side.
     
    #910 WheresWaldo, Dec 1, 2016
    Last edited: Dec 1, 2016
    mark tomlinson likes this.
  11. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    Oh you are right...well then where in the world is it defined for everything else? Can you not use that command unless you have those LCDs? Is it actually changing the LEDs that light up around the Vicki from blue to red depending on temp then?
     
  12. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    @danzca6 you are making this more complicated than it is. You can use it if you enable RGB_LED. They are predefined for the Viki which actually has a blue and red LED mounted behind the encoder knob. Otherwise you need to use Configuration.h to enable line # 1366 and connect each LED leg to the appropriate pin and gnd to the LED common. It was basically added to give Vicki like functionality extended to three colors without all the downside of owning a Viki.

    I believe they chose those pins out of convenience and legacy for the Viki. I would instead use the ones that @Marquis Johnson chose as they are all able to output 8-bit PWM. Without additional circuitry they can only output about 40mA at 5V. Plus they are easier to get to if you have an LCD installed.
     
    #912 WheresWaldo, Dec 1, 2016
    Last edited: Dec 1, 2016
  13. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    Have you tried this? Let me know if it works.
     
  14. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I could see using the CASE_LIGHT as some kind of notification signal at the end of a print. In the Scripts tab of S3D in Ending Script you could do something like this
    Code:
    M104 S0 ; turn off extruder
    M140 S0 ; turn off bed
    M84 ; disable motors
    M355 S0
    G4 S2
    M355 S1
    G4 S2
    M355 S0
    G4 S2
    M355 S1
    G4 M2
    M355 S0
    G4 S2
    M355 S1
    G4 S2
    M355 S0
    This code would blink the case lights 3 times at 2 second intervals before eventually turning them off.
     
    mark tomlinson likes this.
  15. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Marlin has some cool stuff (like this) that is why we used it for the DLP -- it was easy to add the solenoid commands to open/close the shutter.
     
  16. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I don't currently have any RGB LEDs other than in a pre-configured 12v strip. I also don't need another project.
     
  17. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    I hear that...
     
  18. WheresWaldo

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    If you use the Print from SD function and bury your files below the root directory there is some screen updating bug in the GLCD routines. They are fixed as of Dec 2nd. I won't upload a new set of files until the 15th or so. I don't print from SD since I use a Raspberry Pi and OctoPrint and the corruption is just related to the screen and goes away when you exit the Print from SD menu selection.
     
  19. Bradf80

    Bradf80 New Member

    Joined:
    Mar 24, 2015
    Messages:
    24
    Likes Received:
    7
    I tried compiling this firmware for the R1+ and it gave me a U8glib.h error so I downloaded and added the library the code references, now I'm getting a bunch more errors for homing.

    "
    Arduino: 1.7.11 (Windows 7), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    Marlin_main.cpp:378:17: error: expected initializer before 'homing_feedrate_mm_s'

    float constexpr homing_feedrate_mm_s[] = {

    ^

    Marlin_main.cpp: In function 'float get_homing_bump_feedrate(AxisEnum)':

    Marlin_main.cpp:1525:17: error: expected initializer before 'homing_bump_divisor'

    int constexpr homing_bump_divisor[] = HOMING_BUMP_DIVISOR;

    ^

    Marlin_main.cpp:1526:13: error: 'homing_bump_divisor' was not declared in this scope

    int hbd = homing_bump_divisor[axis];

    ^

    Marlin_main.cpp:1532:10: error: 'homing_feedrate_mm_s' was not declared in this scope

    return homing_feedrate_mm_s[axis] / hbd;

    ^

    Marlin_main.cpp: In function 'void do_blocking_move_to(const float&, const float&, const float&, const float&)':

    Marlin_main.cpp:1666:43: error: 'homing_feedrate_mm_s' was not declared in this scope

    feedrate_mm_s = fr_mm_s ? fr_mm_s : homing_feedrate_mm_s[Z_AXIS];

    ^

    Marlin_main.cpp:1678:43: error: 'homing_feedrate_mm_s' was not declared in this scope

    feedrate_mm_s = fr_mm_s ? fr_mm_s : homing_feedrate_mm_s[Z_AXIS];

    ^

    Marlin_main.cpp: In function 'void do_homing_move(AxisEnum, float, float)':

    Marlin_main.cpp:2467:149: error: 'homing_feedrate_mm_s' was not declared in this scope

    planner.buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], fr_mm_s ? fr_mm_s : homing_feedrate_mm_s[axis], active_extruder);

    ^

    Error compiling.

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

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

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I just tried all filesets and they compiled fine on Arduino IDE 1.16.13 Don't know what this one is:
    Either a corrupt download, or an incomplete directory (did you create a new subdirectory or just overwrite an existing one?) or IDE configuration issue.

    Download the latest version of the IDE from www.arduino.cc and do not use the one on Miscrosoft Store. The latest version is 1.6.13.
     
    #920 WheresWaldo, Dec 3, 2016
    Last edited: Dec 3, 2016
Thread Status:
Not open for further replies.

Share This Page