1. About
  2. Features
  3. Explore

Has anyone succeeded in installing the auto bed levelling on a Rumba board with Marlin firmware?

I have the last stable version 1.1.0 RC6.

I would appreciate some direction especially about:

  • How and which pin to activate for the servo?
  • How to test it with G-code before I move to settings of the probe sequence?

I have only installed the hardware for now (5 V servo) connected to Ext. 3 (EXP3):

  • Pin 2 (+5V);
  • Pin 4 (GND), and;
  • Pin 6 (PWM),

Servo and RAMPS 1.4 and RUMBA connections

RUMBA EXP3 pinout

but I cannot move it with the G-code command M280 P0 S180. I have no idea where to put my hands on firmware to get this going. However my ultimate goal is to set the ABL.

1 Answer 1

General note, I do not have this board so I cannot test these steps myself, read the documentation in configuration.h, it is very detailed and should guide you pretty well. I am specifically looking at Marlin 1.1 RC7 on Github, so the lines below may vary slightly from what you see.

As to the pins to connect on the board for the servo, pins_RUMBA.h is where they are defined/mapped. For other boards, there is a pins_[your_board_name].h that will define the pins for any given board.

The default Servo pin for Rumba is:

#define SERVO0_PIN 5 

Pin 6 appears to be used for a third extruder heater.

#define HEATER_2_PIN 6 // EXTRUDER 3 

In configuration.h you must uncomment (delete the slashes "//" at the beginning) the lines and fill in your stow and deploy angles in the second line for the servo. Find these lines under the Z probe options heading.

//#define Z_ENDSTOP_SERVO_NR 0 //#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles 

Define your probe offsets from your extruder nozzle:

#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle] #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] 

Based on your comment for using two z end stop switches, there is an option you must enable to use the standard end stop switch for homing, and only use the probe end stop for mesh bed leveling type operations. The config.h file has a lot of information on this, please read it for your own and your printers safety.

Uncomment this line:

//#define Z_MIN_PROBE_ENDSTOP 

and comment this line:

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN 

Then set the carriage height to allow the z probe room to swing down and move:

#define Z_PROBE_DEPLOY_HEIGHT 15 // Raise to make room for the probe to deploy / stow #define Z_PROBE_TRAVEL_HEIGHT 5 // Raise between probing points. 

For autobed leveling uncomment:

//#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable 

Then set probe points corners:

#if ENABLED(AUTO_BED_LEVELING_GRID) #define LEFT_PROBE_BED_POSITION 15 #define RIGHT_PROBE_BED_POSITION 170 #define FRONT_PROBE_BED_POSITION 20 #define BACK_PROBE_BED_POSITION 170 #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this. 

Set the number of points to probe in each direction (x and y), default is 2, so it will probe 4 locations, the other common choice is 3, so it will probe a grid of 9 locations.

// Set the number of grid points per dimension. // You probably don't need more than 3 (squared=9). #define AUTO_BED_LEVELING_GRID_POINTS 2 

That should be everything you need for a basic setup, although there are more options that I did not go through. Please look at all the documentation comments in configuration.h file as it is very comprehensive, even if it can be a bit confusing.

I hope this helps!