BL Touch with The Beast Printer

I have been trying for days to get the BL Touch to work with my "Beast" printer on a RUMBA board and Repetier V92.

When I enable servo0 my LCD dial rotation quits(the "click" still works though)... if I revert the firmware the dial function returns.

I am hooking the bl touch to the Zmin endstop and the EXP3.

Here are the settings that I've tried... then farther below those are the settings without any changes that work without the sensor.

#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define Z_PROBE_BED_DISTANCE 10
#define Z_PROBE_PIN -1
#define Z_PROBE_PULLUP 1
#define Z_PROBE_ON_HIGH 1
#define Z_PROBE_X_OFFSET 2.11
#define Z_PROBE_Y_OFFSET -46.33
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 5
#define Z_PROBE_XY_SPEED 80
#define Z_PROBE_SWITCHING_DISTANCE 3
#define Z_PROBE_REPETITIONS 2
#define Z_PROBE_HEIGHT .6
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 20
#define Z_PROBE_Y1 20
#define Z_PROBE_X2 160
#define Z_PROBE_Y2 20
#define Z_PROBE_X3 100
#define Z_PROBE_Y3 160
#define BED_LEVELING_METHOD 0
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 5
#define BED_LEVELING_REPETITIONS 5
#define BED_MOTOR_1_X 0
#define BED_MOTOR_1_Y 0
#define BED_MOTOR_2_X 200
#define BED_MOTOR_2_Y 0
#define BED_MOTOR_3_X 100
#define BED_MOTOR_3_Y 200
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
#define FEATURE_AXISCOMP 0
#define AXISCOMP_TANXY 0
#define AXISCOMP_TANYZ 0
#define AXISCOMP_TANXZ 0

Here is my starting(working) Configuration.h file (before any autolevel changes)

Any help would be appreciated.



/* ======== Servos =======
Control the servos with
M340 P<servoId> S<pulseInUS>   / ServoID = 0..3  pulseInUs = 500..2500
Servos are controlled by a pulse width normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
WARNING: Servos can draw a considerable amount of current. Make sure your system can handle this or you may risk your hardware!
*/
#define FEATURE_SERVO 0
#define SERVO0_PIN 11
#define SERVO1_PIN -1
#define SERVO2_PIN -1
#define SERVO3_PIN -1
#define SERVO0_NEUTRAL_POS  -1
#define SERVO1_NEUTRAL_POS  -1
#define SERVO2_NEUTRAL_POS  -1
#define SERVO3_NEUTRAL_POS  -1
#define UI_SERVO_CONTROL 0
#define FAN_KICKSTART_TIME  200

        #define FEATURE_WATCHDOG 0

// #################### Z-Probing #####################

#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 0
#define Z_PROBE_BED_DISTANCE 10
#define Z_PROBE_PIN -1
#define Z_PROBE_PULLUP 0
#define Z_PROBE_ON_HIGH 0
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 0
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 2
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 1
#define Z_PROBE_REPETITIONS 1
#define Z_PROBE_HEIGHT 40
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 20
#define Z_PROBE_Y1 20
#define Z_PROBE_X2 160
#define Z_PROBE_Y2 20
#define Z_PROBE_X3 100
#define Z_PROBE_Y3 160
#define BED_LEVELING_METHOD 0
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 5
#define BED_LEVELING_REPETITIONS 5
#define BED_MOTOR_1_X 0
#define BED_MOTOR_1_Y 0
#define BED_MOTOR_2_X 200
#define BED_MOTOR_2_Y 0
#define BED_MOTOR_3_X 100
#define BED_MOTOR_3_Y 200
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
#define FEATURE_AXISCOMP 0
#define AXISCOMP_TANXY 0
#define AXISCOMP_TANYZ 0
#define AXISCOMP_TANXZ 0




Also I don't know how the endstops are supposed to work after z-probing and auto leveling is set up and working.

1. Are there two z min endstops?... a switch from the original z-min... plus the BL Touch?

2. Does the mechanical switch get moved to act as a z-max? I don't mind having a z-min mechanical switch as well as the bl touch... in that case the mechanical switch could act as a back up in case the the bl touch stops functioning and the z motors don't know when to stop.

I have extra endstop switches I'd like to install as XY and Z MAX switches... but I don't want the Z to go to Z Max on a printer with a 690mm height... but it would be nice to trigger if there is an emergency and also to test the printers dimensions once in a while because I sometimes want to go from 1 extruder to 4 and back again... in that case I wouldn't mind it homing to z max to reset the current printer build volume.

My priority is to get the BL Touch with auto leveling working.

Again any help you can give would be much appreciated.

Comments

  • I should also note that The Beast has 4 extruders... but sometimes I will change to 2 or one when I need a bigger build area..
  • In dev version you can set z min endstop to z probe pin to tell it to use z probe for homing. Then homing direction is -1 so it always homes to z min and z max is just a endstop.

    That solution is possible but can cause some extra problems as often not all positions work for z probing especially x min/y min might cause in bed miss. Also homing from low z position might be a problem. I guess I will add a go up for that case, but that can be a problem if you are high, but not so much if you have z max endstop.
  • Thanks!

    How do I know if I have "dev" version?

    I am using/modifying the default firmware from the manufacturer... Here is a link... to it 


    Is there any way to tell if they used the configuration tool... I'd like to upload it and make changes rather than trying to make changes to Pins.h and Configuration.h and manually adding them to the file.
  • M115 tells you the version and dev currently reports
    1.0.0dev but that is for a while so it would not say which date it is.

    All config files from config tool contain

    /* Below you will find the configuration string, that created this Configuration.h

    ========== Start configuration string ==========
    {

    so the tool detects the readable section.
  • Thanks!!

    I'll run the M115 and see what it reports.

    Ok I think I understand what your are saying about the Z probe being used as the the Z MIN endstop also, and I think it makes sense with Cartesian printers.

    In order to use the Z probe as the Z MIN endstop the probe needs to be "deployed." So for some it would mean the servo needs to activate and move the sensor into position.

    As far as I know if I home the Z axis it doesn't know to lower the sensor (in my case it is the probe/pin on a BL Touch).

    Is there a way to hack all scripts that call Z homing to use some G-code.

    When homing I would like the table to drop down 10MM... activate and drop the probe pin... begin slowly moving the Z back up towards Zmin... when the table triggers the pin the table stops and records the current Z position into eeprom as "Z0" and leaves the pin locked up.

    I think I can figure out the scripts.... if there is a section where I can add custom G-code... possibly Start and End G-code scripts.

    Then of course I'd like to still be able to use the probe as a normal Z probe and sample the height after homing and also sample three spots or a grid pattern to do automatic bed leveling... and store all this new data to eeprom after each step.


  • Use dev version. I know it calls the start/end z probe script for homing z so that should be no problem.
    I also think about adding a go up before z homing param that either goes always up or only if z probe/z min is triggered. I think that should help in some of these complicated special cases.
  • Awesome... thanks!!!!
  • When you wrote: "In dev version you can set z min endstop to z probe pin to tell it to use z probe for homing. Then homing direction is -1 so it always homes to z min and z max is just a endstop." Can I just use the actual pin number... something like "z_min_endstop = 5" or do I need to write a text string "z_min_endstop = z_probe" ?

    Sorry to bother you about this I just can't seem to find the exact text string.... Please tell me the exact text strings to use... both the text string for the endstop pin number and the exact text string to enter next to it. I don't want to change the wrong line as I see several areas where it might be entered... even though I sure there is only one place to put it.

    Is the setting changed in configuration.h or pins.h or somewhere else?

  • I forgot to say... I am using the RUMBA board which is board number 80 in pins.h
  • "set z min endstop to z probe pin"

    in the firmware configuration tool, under 'features', tick the enable Z probing box then about half way down, you can select 

  • I'm trying to manually change the file... as the whole firmware was created by someone else and you can only change the settings with the configuration tool if the firmware was created with the firmware tool. Do you know the exact text to change in the files?
  • Ok I've got the probe and the scripts working with G29... but I can't get it the start and end scripts to work when homing Z. How do I get Z homing to call the start and end scripts in...

    #define Z_PROBE_START_SCRIPT "M340 P0 S680"
    #define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1500"

    Or is there another place where scripts are added to Z homing.

    I know you said to...  "set z min endstop to z probe pin to tell it to use z probe for homing."

    I made this setting below... is it right... it doesn't work for Z homing... is it supposed to be set somewhere else?

    #define Z_PROBE_PIN ORIG_Z_MIN_PIN
  • I looked in pins.h and for my motherboard #80 there is no... "#define PROBE_PIN          -1" like in some of the other motherboard descriptions.
  • Now that I'm thinking about it a more versatile solution would be to create a place where people can manually enter a Gcode start and stop script that is dedicated to Z-homing and can be stored in eeprom and the firmware.

    This would make it so you would be able to enter gcode for Z homing and also be able to enter separate gcode for Z probing. If the start and stop code happens to be identical you would have to enter it twice but the advantage is you would be able to have them do very different things if you wanted.

    If there is already a way to make Z homing use the Z probing start and stop gcode that would be great too... I just can't figure out how to do it.

    Right now if I want to use the probe I'd have to home X and Y and then do a G30... but if I forget or accidentally click home XY and Z then I will crash the nozzle into the bed because the probe hasn't been moved down to start sensing Z because it hasn't received a servo signal to move it into position.
Sign In or Register to comment.