[4th Dec 18] JGAurora A5 Euro buyers: A5 in stock in Gearbest Europe shipping from Czech Republic.

Use coupon GBJKA5 to bring the price under $280, and click here to buy!

Also available from their Spain warehouse - buy here.
[6th Nov 18] The NEW recently released JGAurora A5S is already for sale under $400! Print quality is better than A5 out of the box.
Click here to check out this deal!

A5 With Bltouch

Hi, I have a huge problem with my A5. My BLtouch drives me crazy. I have the coustom firmeware on my board and on the LCD. now I have the BLtouch (anclaps) and he has also worked with UBL and the instructions from the wiki. Now the following happened I have problems with the Z offset I have not gotten in the handle. The printer was always something further above bed when I set him before. So I started from the beginning and have the same firmware on. Now the printer does the following. He goes on, the BLtouch lights up, then the pen goes up and down 2 times and if I would like to do it then he does that without the pen down and he would crash into the bed. I've already searched and made but I just can not find my mistake. I've tried to switch to bilinear then what does not work, somewhere there is the error and I can not find him. maybe someone can help me here ...... or had the same problem. translated with google

Greetings from Germany


  • ProkktorProkktor Posts: 129🌟 Super Member 🌟
    Ok the automatic test works so the BLTouch has power and seems to function.

    Probably an error in the software config... did you choose the correct servo pin?
  • Stefan PeStefan Pe Posts: 13Member
    //============================= Z Probe Options =============================
    // @section probes


     * Enable this option for a probe connected to the Z Min endstop pin.

     * Enable this option for a probe connected to any pin except Z-Min.
     * (By default Marlin assumes the Z-Max endstop pin.)
     * To use a custom Z Probe pin, set Z_MIN_PROBE_PIN below.
     *  - The simplest option is to use a free endstop connector.
     *  - Use 5V for powered (usually inductive) sensors.
     *  - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
     *    - For simple switches connect...
     *      - normally-closed switches to GND and D32.
     *      - normally-open switches to 5V and D32.
     * WARNING: Setting the wrong pin may have unexpected and potentially
     * disastrous consequences. Use with caution and do your homework.
    //#define Z_MIN_PROBE_ENDSTOP

     * Probe Type
     * Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
     * Activate one of these to use Auto Bed Leveling below.

     * The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
     * Use G29 repeatedly, adjusting the Z height at each point with movement commands
     * or (with LCD_BED_LEVELING) the LCD controller.
    //#define PROBE_MANUALLY

     * A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
     *   (e.g., an inductive probe or a nozzle-based probe-switch.)
    //#define FIX_MOUNTED_PROBE

     * Z Servo Probe, such as an endstop switch on a rotating arm.
    #define Z_ENDSTOP_SERVO_NR 1 // Defaults to SERVO 0 connector.
    //#define Z_SERVO_ANGLES {70,0}  // Z Servo Deploy and Stow angles

     * The BLTouch probe uses a Hall effect sensor and emulates a servo.
    #define BLTOUCH
      #define BLTOUCH_DELAY 375   // (ms) Enable and increase if needed

     * Enable one or more of the following if probing seems unreliable.
     * Heaters and/or fans can be disabled during probing to minimize electrical
     * noise. A delay can also be added to allow noise and vibration to settle.
     * These options are most useful for the BLTouch probe, but may also improve
     * readings with inductive probes and piezo sensors.
    #define PROBING_HEATERS_OFF       // Turn heaters off when probing
    //#define PROBING_FANS_OFF          // Turn fans off when probing
    //#define DELAY_BEFORE_PROBING 200  // (ms) To prevent vibrations from triggering piezo sensors

    // A probe that is deployed and stowed with a solenoid pin (SOL1_PIN)
    //#define SOLENOID_PROBE

    // A sled-mounted probe like those designed by Charles Bell.
    //#define Z_PROBE_SLED
    //#define SLED_DOCKING_OFFSET 5  // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.

    // For Z_PROBE_ALLEN_KEY see the Delta example configurations.

     *   Z Probe to nozzle (X,Y) offset, relative to (0, 0).
     *   X and Y offsets must be integers.
     *   In the following example the X and Y offsets are both positive:
     *   #define X_PROBE_OFFSET_FROM_EXTRUDER 10
     *   #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
     *      +-- BACK ---+
     *      |           |
     *    L |    (+) P  | R <-- probe (20,20)
     *    E |           | I
     *    F | (-) N (+) | G <-- nozzle (10,10)
     *    T |           | H
     *      |    (-)    | T
     *      |           |
     *      O-- FRONT --+
     *    (0,0)
    #define X_PROBE_OFFSET_FROM_EXTRUDER 0  // X offset: -left  +right  [of the nozzle]
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -40  // Y offset: -front +behind [the nozzle]
    #define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]

    // X and Y axis travel speed (mm/m) between probes
    #define XY_PROBE_SPEED 8000

    // Speed for the first approach when double-probing (MULTIPLE_PROBING == 2)

    // Speed for the "accurate" probe of each point

    // The number of probes to perform at each point.
    //   Set to 2 for a fast/slow probe, using the second probe result.
    //   Set to 3 or more for slow probes, averaging the results.
    //#define MULTIPLE_PROBING 2

     * Z probes require clearance when deploying, stowing, and moving between
     * probe points to avoid hitting the bed and other hardware.
     * Servo-mounted probes require extra space for the arm to rotate.
     * Inductive probes need space to keep from triggering early.
     * Use these settings to specify the distance (mm) to raise the probe (or
     * lower the bed). The values set here apply over and above any (negative)
     * probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
     * Only integer values >= 1 are valid here.
     * Example: `M851 Z-5` with a CLEARANCE of 4  =>  9mm from bed to nozzle.
     *     But: `M851 Z+1` with a CLEARANCE of 2  =>  2mm from bed to nozzle.
    #define Z_CLEARANCE_DEPLOY_PROBE   10 // Z Clearance for Deploy/Stow
    #define Z_CLEARANCE_BETWEEN_PROBES  5 // Z Clearance between probe points

    // For M851 give a range for adjusting the Z probe offset
    #define Z_PROBE_OFFSET_RANGE_MIN -20

    // Enable the M48 repeatability test to test probe accuracy

    // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
    // :{ 0:'Low', 1:'High' }
    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define E_ENABLE_ON 0 // For all extruders

    // Disables axis stepper immediately when it's not being used.
    // WARNING: When motors turn off there is a chance of losing position accuracy!
    #define DISABLE_X false
    #define DISABLE_Y false
    #define DISABLE_Z false
    // Warn on display about possibly reduced accuracy

    // @section extruder

    #define DISABLE_E false // For all extruders
    #define DISABLE_INACTIVE_EXTRUDER true // Keep only the active extruder enabled.

    // @section machine

    // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
    #define INVERT_X_DIR true
    #define INVERT_Y_DIR false
    #define INVERT_Z_DIR false

    // Enable this option for Toshiba stepper drivers

    // @section extruder

    // For direct drive extruder v9 set to true, for geared extruder set to false.
    #define INVERT_E0_DIR true
    #define INVERT_E1_DIR false
    #define INVERT_E2_DIR false
    #define INVERT_E3_DIR false
    #define INVERT_E4_DIR false

    // @section homing

    //#define NO_MOTION_BEFORE_HOMING  // Inhibit movement until all axes have been homed

    //#define Z_HOMING_HEIGHT 4  // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
                                 // Be sure you have this distance over your Z_MAX_POS in case.

    // Direction of endstops when homing; 1=MAX, -1=MIN
    // :[-1,1]
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1

    // @section machine

    // The size of the print bed
    #define X_BED_SIZE 305
    #define Y_BED_SIZE 305

    // Travel limits (mm) after homing, corresponding to endstop positions.
    #define X_MIN_POS -5 // thanks DaHai.
    #define Y_MIN_POS 0
    #define Z_MIN_POS 0
    #define X_MAX_POS X_BED_SIZE
    #define Y_MAX_POS Y_BED_SIZE
    #define Z_MAX_POS 320

     * Software Endstops
     * - Prevent moves outside the set machine bounds.
     * - Individual axes can be disabled, if desired.
     * - X and Y only apply to Cartesian robots.
     * - Use 'M211' to set software endstops on/off or report current state

    // Min software endstops curtail movement below minimum coordinate bounds

    // Max software endstops curtail movement above maximum coordinate bounds

     * Filament Runout Sensor
     * A mechanical or opto endstop is used to check for the presence of filament.
     * RAMPS-based boards use SERVO3_PIN.
     * For other boards you may need to define FIL_RUNOUT_PIN.
     * By default the firmware assumes HIGH = has filament, LOW = ran out
      #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
      #define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
      #define FILAMENT_RUNOUT_SCRIPT "M600"

  • Stefan PeStefan Pe Posts: 13Member
    //=============================== Bed Leveling ==============================
    // @section calibrate

     * Choose one of the options below to enable G29 Bed Leveling. The parameters
     * and behavior of G29 will change depending on your selection.
     *  If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
     *   Probe 3 arbitrary points on the bed (that aren't collinear)
     *   You specify the XY coordinates of all 3 points.
     *   The result is a single tilted plane. Best for a flat bed.
     *   Probe several points in a grid.
     *   You specify the rectangle and the density of sample points.
     *   The result is a single tilted plane. Best for a flat bed.
     *   Probe several points in a grid.
     *   You specify the rectangle and the density of sample points.
     *   The result is a mesh, best for large or uneven beds.
     * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
     *   A comprehensive bed leveling system combining the features and benefits
     *   of other systems. UBL also includes integrated Mesh Generation, Mesh
     *   Validation and Mesh Editing systems.
     *   Probe a grid manually
     *   The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
     *   For machines without a probe, Mesh Bed Leveling provides a method to perform
     *   leveling in steps so you can manually adjust the Z height at each grid-point.
     *   With an LCD controller the process is guided step-by-step.
    //#define MESH_BED_LEVELING

     * Enable detailed logging of G28, G29, M48, etc.
     * Turn on with the command 'M111 S32'.
     * NOTE: Requires a lot of PROGMEM!

      // Gradually reduce leveling correction until a set height is reached,
      // at which point movement will be level to the machine's XY plane.
      // The height can be set with M420 Z<height>

      // For Cartesian machines, instead of dividing moves on mesh boundaries,
      // split up moves into short segments like a Delta. This follows the
      // contours of the bed more closely than edge-to-edge straight moves.
      #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)

       * Enable the G26 Mesh Validation Pattern tool.
      #define G26_MESH_VALIDATION   // Enable G26 mesh validation
        #define MESH_TEST_NOZZLE_SIZE     0.4   // (mm) Diameter of primary nozzle.
        #define MESH_TEST_LAYER_HEIGHT    0.2   // (mm) Default layer height for the G26 Mesh Validation Tool.
        #define MESH_TEST_HOTEND_TEMP   205.0   // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
        #define MESH_TEST_BED_TEMP       60.0   // (°C) Default bed temperature for the G26 Mesh Validation Tool.


      // Set the number of grid points per dimension.
      #define GRID_MAX_POINTS_X 7

      // Set the boundaries for probing (where the probe can reach).
      #define LEFT_PROBE_BED_POSITION 10
      #define RIGHT_PROBE_BED_POSITION 295
      #define BACK_PROBE_BED_POSITION 235

      // The Z probe minimum outer margin (to validate G29 parameters).
      #define MIN_PROBE_EDGE 10

      // Probe along the Y axis, advancing X after each column
      //#define PROBE_Y_FIRST


        // Beyond the probed grid, continue the implied tilt?
        // Default is to maintain the height of the nearest edge.

        // Experimental Subdivision of the grid by Catmull-Rom method.
        // Synthesizes intermediate points to produce a more detailed mesh.
          // Number of subdivisions between probe points
          #define BILINEAR_SUBDIVISIONS 3


      // 3 arbitrary points to probe.
      // A simple cross-product is used to estimate the plane of the bed.
      #define ABL_PROBE_PT_1_X 15
      #define ABL_PROBE_PT_1_Y 180
      #define ABL_PROBE_PT_2_X 15
      #define ABL_PROBE_PT_2_Y 20
      #define ABL_PROBE_PT_3_X 170
      #define ABL_PROBE_PT_3_Y 20


      //========================= Unified Bed Leveling ============================

      //#define MESH_EDIT_GFX_OVERLAY   // Display a graphics overlay while editing the mesh

      #define MESH_INSET 1              // Mesh inset margin on print area
      #define GRID_MAX_POINTS_X 10      // Don't use more than 15 points per axis, implementation limited.

      #define UBL_PROBE_PT_1_X 39       // Probing points for 3-Point leveling of the mesh
      #define UBL_PROBE_PT_1_Y 180
      #define UBL_PROBE_PT_2_X 39
      #define UBL_PROBE_PT_2_Y 20
      #define UBL_PROBE_PT_3_X 180
      #define UBL_PROBE_PT_3_Y 20

      #define UBL_MESH_EDIT_MOVES_Z     // Sophisticated users prefer no movement of nozzle
      #define UBL_SAVE_ACTIVE_ON_M500   // Save the currently active mesh in the current slot on M500


  • Stefan PeStefan Pe Posts: 13Member
    edited December 2018

      #define MESH_INSET 10          // Mesh inset margin on print area
      #define GRID_MAX_POINTS_X 7   // As suggested by DaHai,
      #define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS

    #endif // BED_LEVELING

     * Use the LCD controller for bed leveling
    //#define LCD_BED_LEVELING

      #define MBL_Z_STEP 0.025    // Step size while manually probing Z axis.
      #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment

    // Add a menu item to move between bed corners for manual bed adjustment

     * Commands to execute at the end of G29 probing.
     * Useful to retract or move the Z probe out of the way.
    //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"

    // @section homing

    // The center of the bed is at (X=0, Y=0)
    //#define BED_CENTER_AT_0_0

    // Manually set the home position. Leave these undefined for automatic settings.
    // For DELTA this is the top-center of the Cartesian print volume.
    //#define MANUAL_X_HOME_POS 0
    //#define MANUAL_Y_HOME_POS 0
    //#define MANUAL_Z_HOME_POS 0

    // Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
    // With this feature enabled:
    // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
    // - If stepper drivers time out, it will need X and Y homing again before Z homing.
    // - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
    // - Prevent Z homing when the Z probe is outside bed area.
    #define Z_SAFE_HOMING

      #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axes (G28).
      #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axes (G28).

    // Homing speeds (mm/m)
    #define HOMING_FEEDRATE_XY (80*60)
    #define HOMING_FEEDRATE_Z  (12*60)

    // @section calibrate

     * Bed Skew Compensation
     * This feature corrects for misalignment in the XYZ axes.
     * Take the following steps to get the bed skew in the XY plane:
     *  1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185)
     *  2. For XY_DIAG_AC measure the diagonal A to C
     *  3. For XY_DIAG_BD measure the diagonal B to D
     *  4. For XY_SIDE_AD measure the edge A to D
     * Marlin automatically computes skew factors from these measurements.
     * Skew factors may also be computed and set manually:
     *  - Compute AB     : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
     * If desired, follow the same procedure for XZ and YZ.
     * Use these diagrams for reference:
     *    Y                     Z                     Z
     *    ^     B-------C       ^     B-------C       ^     B-------C
     *    |    /       /        |    /       /        |    /       /
     *    |   /       /         |   /       /         |   /       /
     *    |  A-------D          |  A-------D          |  A-------D
     *    +-------------->X     +-------------->X     +-------------->Y
    //#define SKEW_CORRECTION

      // Input all length measurements here:
      #define XY_DIAG_AC 282.8427124746
      #define XY_DIAG_BD 282.8427124746
      #define XY_SIDE_AD 200

      // Or, set the default skew factors directly here
      // to override the above measurements:
      #define XY_SKEW_FACTOR 0.0

      //#define SKEW_CORRECTION_FOR_Z
        #define XZ_DIAG_AC 282.8427124746
        #define XZ_DIAG_BD 282.8427124746
        #define YZ_DIAG_AC 282.8427124746
        #define YZ_DIAG_BD 282.8427124746
        #define YZ_SIDE_AD 200
        #define XZ_SKEW_FACTOR 0.0
        #define YZ_SKEW_FACTOR 0.0

      // Enable this option for M852 to set skew at runtime

    Post edited by Stefan Pe on
  • Stefan PeStefan Pe Posts: 13Member
    //============================= Additional Features ===========================

    // @section extras

    // EEPROM
    // The microcontroller can store settings in the EEPROM, e.g. max velocity...
    // M500 - stores parameters in EEPROM
    // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
    // M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
    #define EEPROM_SETTINGS // Enable for M500 and M501 commands
    #define DISABLE_M503    // Saves ~2700 bytes of PROGMEM. Disable for release!
    #define EEPROM_CHITCHAT   // Give feedback on EEPROM commands. Disable to save PROGMEM.

    // Host Keepalive
    // When enabled Marlin will send a busy status message to the host
    // every couple of seconds when it can't accept commands.
    #define HOST_KEEPALIVE_FEATURE        // Disable this if your host doesn't like keepalive messages
    #define DEFAULT_KEEPALIVE_INTERVAL 2  // Number of seconds between "busy" messages. Set with M113.
    #define BUSY_WHILE_HEATING            // Some hosts require "busy" messages even during heating

    // M100 Free Memory Watcher
    //#define M100_FREE_MEMORY_WATCHER    // Add M100 (Free Memory Watcher) to debug memory usage

    // G20/G21 Inch mode support
    //#define INCH_MODE_SUPPORT

    // M149 Set temperature units support

    // @section temperature

    // Preheat Constants
    #define PREHEAT_1_TEMP_HOTEND 205
    #define PREHEAT_1_TEMP_BED     70
    #define PREHEAT_1_FAN_SPEED     255 // Value from 0 to 255

    #define PREHEAT_2_TEMP_HOTEND 240
    #define PREHEAT_2_TEMP_BED    110
    #define PREHEAT_2_FAN_SPEED     0 // Value from 0 to 255

     * Nozzle Park
     * Park the nozzle at the given XYZ position on idle or G27.
     * The "P" parameter controls the action applied to the Z axis:
     *    P0  (Default) If Z is below park Z raise the nozzle.
     *    P1  Raise the nozzle always to Z-park height.
     *    P2  Raise the nozzle by Z-park amount, limited to Z_MAX_POS.

      // Specify a park position as { X, Y, Z }
      #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
      #define NOZZLE_PARK_XY_FEEDRATE 100   // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
      #define NOZZLE_PARK_Z_FEEDRATE 5      // Z axis feedrate in mm/s (not used for delta printers)

     * Clean Nozzle Feature -- EXPERIMENTAL
     * Adds the G12 command to perform a nozzle cleaning process.
     * Parameters:
     *   P  Pattern
     *   S  Strokes / Repetitions
     *   T  Triangles (P1 only)
     * Patterns:
     *   P0  Straight line (default). This process requires a sponge type material
     *       at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
     *       between the start / end points.
     *   P1  Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
     *       number of zig-zag triangles to do. "S" defines the number of strokes.
     *       Zig-zags are done in whichever is the narrower dimension.
     *       For example, "G12 P1 S1 T3" will execute:
     *          --
     *         |  (X0, Y1) |     /\        /\        /\     | (X1, Y1)
     *         |           |    /  \      /  \      /  \    |
     *       A |           |   /    \    /    \    /    \   |
     *         |           |  /      \  /      \  /      \  |
     *         |  (X0, Y0) | /        \/        \/        \ | (X1, Y0)
     *          --         +--------------------------------+
     *                       |________|_________|_________|
     *                           T1        T2        T3
     *   P2  Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
     *       "R" specifies the radius. "S" specifies the stroke count.
     *       Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
     *   Caveats: The ending Z should be the same as starting Z.
     * Attention: EXPERIMENTAL. G-code arguments may change.

      // Default number of pattern repetitions
      #define NOZZLE_CLEAN_STROKES  12

      // Default number of triangles

      // Specify positions as { X, Y, Z }
      #define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
      #define NOZZLE_CLEAN_END_POINT   {100, 60, (Z_MIN_POS + 1)}

      // Circular pattern radius
      // Circular pattern circle fragments number
      #define NOZZLE_CLEAN_CIRCLE_FN 10
      // Middle point of circle

      // Moves the nozzle to the initial position

     * Print Job Timer
     * Automatically start and stop the print job timer on M104/M109/M190.
     *   M104 (hotend, no wait) - high temp = none,        low temp = stop timer
     *   M109 (hotend, wait)    - high temp = start timer, low temp = stop timer
     *   M190 (bed, wait)       - high temp = start timer, low temp = none
     * The timer can also be controlled with the following commands:
     *   M75 - Start the print job timer
     *   M76 - Pause the print job timer
     *   M77 - Stop the print job timer

     * Print Counter
     * Track statistical data such as:
     *  - Total print jobs
     *  - Total successful print jobs
     *  - Total failed print jobs
     *  - Total time printing
     * View the current statistics with M78.

  • Stefan PeStefan Pe Posts: 13Member
    //=============================== Extra Features ==============================

    // @section extras

    // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
    //#define FAST_PWM_FAN

    // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
    // which is not as annoying as with the hardware PWM. On the other hand, if this frequency
    // is too low, you should also increment SOFT_PWM_SCALE.
    //#define FAN_SOFT_PWM

    // Incrementing this by 1 will double the software PWM frequency,
    // affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
    // However, control resolution will be halved for each increment;
    // at zero value, there are 128 effective control positions.
    #define SOFT_PWM_SCALE 0

    // If SOFT_PWM_SCALE is set to a value higher than 0, dithering can
    // be used to mitigate the associated resolution loss. If enabled,
    // some of the PWM cycles are stretched so on average the desired
    // duty cycle is attained.
    //#define SOFT_PWM_DITHER

    // Temperature status LEDs that display the hotend and bed temperature.
    // If all hotends, bed temperature, and target temperature are under 54C
    // then the BLUE led is on. Otherwise the RED led is on. (1C hysteresis)
    //#define TEMP_STAT_LEDS

    // M240  Triggers a camera by emulating a Canon RC-1 Remote
    //#define PHOTOGRAPH_PIN     23

    // SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
    //#define SF_ARC_FIX

    // Support for the BariCUDA Paste Extruder
    //#define BARICUDA

    // Support for BlinkM/CyzRgb
    //#define BLINKM

    // Support for PCA9632 PWM LED driver
    //#define PCA9632

     * RGB LED / LED Strip Control
     * Enable support for an RGB LED connected to 5V digital pins, or
     * an RGB Strip connected to MOSFETs controlled by digital pins.
     * Adds the M150 command to set the LED (or LED strip) color.
     * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
     * luminance values can be set from 0 to 255.
     * For Neopixel LED an overall brightness parameter is also available.
     * *** CAUTION ***
     *  LED Strips require a MOFSET Chip between PWM lines and LEDs,
     *  as the Arduino cannot handle the current the LEDs will require.
     *  Failure to follow this precaution can destroy your Arduino!
     *  NOTE: A separate 5V power supply is required! The Neopixel LED needs
     *  more current than the Arduino 5V linear regulator can produce.
     * *** CAUTION ***
     * LED Type. Enable only one of the following two options.
    //#define RGB_LED
    //#define RGBW_LED

      #define RGB_LED_R_PIN 34
      #define RGB_LED_G_PIN 43
      #define RGB_LED_B_PIN 35
      #define RGB_LED_W_PIN -1

    // Support for Adafruit Neopixel LED driver
    //#define NEOPIXEL_LED
      #define NEOPIXEL_TYPE   NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
      #define NEOPIXEL_PIN    4        // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
      #define NEOPIXEL_PIXELS 30       // Number of LEDs in the strip
      #define NEOPIXEL_IS_SEQUENTIAL   // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
      #define NEOPIXEL_BRIGHTNESS 127  // Initial brightness (0-255)
      //#define NEOPIXEL_STARTUP_TEST  // Cycle through colors at startup

     * Printer Event LEDs
     * During printing, the LEDs will reflect the printer status:
     *  - Gradually change from blue to violet as the heated bed gets to target temp
     *  - Gradually change from violet to red as the hotend gets to temperature
     *  - Change to white to illuminate work surface
     *  - Change to green once print has finished
     *  - Turn off after the print has finished and the user has pushed a button
      #define PRINTER_EVENT_LEDS

     * R/C SERVO support
     * Sponsored by TrinityLabs, Reworked by codexmas

     * Number of servos
     * For some servo-related options NUM_SERVOS will be set automatically.
     * Set this manually if there are extra servos needing manual control.
     * Leave undefined or set to 0 to entirely disable the servo subsystem.
    #define NUM_SERVOS 2 // Servo index starts with 0 for M280 command

    // Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
    // 300ms is a good value but you can try less delay.
    // If the servo can't reach the requested position, increase it.
    #define SERVO_DELAY { 300,300 }

    // Servo deactivation
    // With this option servos are powered only during movement, then turned off to prevent jitter.

    #endif // CONFIGURATION_H
  • Stefan PeStefan Pe Posts: 13Member
    I have the mks gen L 1 in it
    z Endstop because the bltouch goes in 2 cables and the servo connections, I've taken the bottom. aso opposite the z endstop connections. So it's certainly the easiest to watch what I'm doing wrong
  • Stefan PeStefan Pe Posts: 13Member
    D11 for Servo
  • Stefan PeStefan Pe Posts: 13Member
    Hello again so my problem was set wrong Num_Servo .....

    Now I am facing a new problem and although my offset does not fit at all. Hh now a few videos processed and again googled a lot but found nothing.
    My UBL is stored with G29 S1 in slot 1 M500. if I adjust the offset that is synonymous in Slot 1 Saved? can 2 things in there? or automatically throw something out again

    Thank you
  • ProkktorProkktor Posts: 129🌟 Super Member 🌟
    Da sach ich mal: Siehste! :-)

    I do not really understand the other problem...

    Merry Christmas *hicks*
  • Stefan PeStefan Pe Posts: 13Member
    Hello everybody

    my problem is that the nozzel not decent bed is over. I have the bed gelevelt by hand and heated. then I make the offset is currently at -2.45 I've entered with M851 Z-2.45 and then M500 (slot1 EEprom). Now I let the bed touch the BLtouch with M29 P1 and save that with M29 S1 and M500 (also slot1 EEprom) says the printerrun.
    1 question . can you ever save in a slot 2 things? or are they overwritten?
    2- question if I print now over the whole surface 300x300 then one sees on the filament that it is different high which can not be more.
    my current start code

    G28; Home
    G29 A
    G29 S1
    M420 S1
    G1 X0.0 Y0.0 F1000.0;
    G1 Z0.200 F1000.0;
    G1 X60.0 E9.0 F1000.0;
    G1 X100.0 E21.5 F1000.0;
    G92 E0.0;

    Merry Christmas

    Hallo zusammen 

    mein problem ist das die nozzel nicht anständig übern bed ist .ich hab das bed gelevelt von hand und aufgeheizt .dann mache ich den offset der liegt momentan bei -2.45 das hab ich eingetragen mit M851 Z-2.45 und dann M500 (slot1 EEprom) .jetzt lasse ich das bed abtasten vom BLtouch mit M29 P1 und speichere das mit M29 S1 und M500 (auch slot1 EEprom) so sagt das printerrun. 
    1- frage . kann man überhaupt in einem slot 2 sachen speichern  ? oder werden die überschrieben ? 
    2- frage wenn ich jetzt drucke über die ganze fläche 300x300 dann sieht man am filament das es unterschiedlich hoch ist was ja garnicht mehr sein kann .
    mein jetztiger start code 

    G28 ;Home
    G29 A
    G29 S1
    M420 S1
    G1 X0.0 Y0.0 F1000.0;
    G1 Z0.200 F1000.0;
    G1 X60.0 E9.0 F1000.0;
    G1 X100.0 E21.5 F1000.0;
    G92 E0.0;

    frohliche weinnachten 
  • ProkktorProkktor Posts: 129🌟 Super Member 🌟
    Here is a german tutorial:

    I am currently setting thios up myself, but I wonder:
    Why do you save the grid in your starting GCODE? Should you not load it: G29 L1?
  • Der_MuckDer_Muck Posts: 64🌟 Super Member 🌟
    Hello @Stefan Pe
    did you get the problem now fixed?

    I just got my bltoch working but again.. I am fighting with the accuracy.
    There are some points on the bed which are not accurate at all. Some areas are to low some slitly to high.

    Cant find anything i am doing wrong.

    Maybe its the Z-offset? 

    I think i have the same problem like Stefan
  • Stefan PeStefan Pe Posts: 13Member
    hello yes my problem is solved.
    I have now switched from UBL to bilinear. So the bltouch mist before every print exactly the bed.
    My procedure Bed cold, nozzel on pressure temperature. the hotend gets hot and the BLTOUCH sits in the right place for the fair, he does not care whether it is cold or warm.

    G28 home
    M851 Z0
    G1 Z0
    M211 S0 soft end off
    Now slow down over pronterface until the paper under the nozzle goes back and forth
    M851 Z ........ Here comes your value, which you have read from the display
    M211 S1 soft end on
    M500 to save

    this Z worth but will not fit 100% because you still have not the offset of BLtouch. I've now made further in which I let him print something and then have always changed in pronterface the value. M851 Z (new value) M500 and let something print again. You do that until you open a reasonable line. So if you at the first measurement, for example -1.30 I've then entered M851 Z-1.40, then save and print a line. man sees how the line more and more liable then I would continue in 0.05 steps. I have not found an easier way.

    hallo ja mein problem ist gelöst.
    ich bin jetzt von UBL auf Bilinear umgestiegen .So mist der Bltouch vor jedem drucken genau das Bed . 
    Meine vorgehensweise Bed kalt ,nozzel auf druck temperatur . das hotend wird heiss und der BLTOUCH sitzt an der richtigen stelle zum messeen ,ihn interessierert es nicht ob bed kalt oder warm .

    G28 home 
    M851 Z0  
    G1 Z0 
    M211 S0 soft end aus
    Nun über pronterface langsam runterfahren bis das papier unter der düse stramm hin und her geht 
    M851 Z ........   Da kommt jetzt dein wert hin den du vom display abgelesen hast 
    M211 S1 soft end an
    M500 zum speichern 

    dieser Z wert wird aber nicht 100% passen weil man ja immer noch nicht das offset vom BLtouch hat .ich hab nun weiter gemacht in dem ich ihn immer was drucken lasse und hab dann immer in pronterface den wert geändert .M851 Z (neuer wert) M500 und wieder was drucken lassen . das machste solange bis du einen vernüftige line aufen bed hast . also wenn du bei der ersten messung zB -1.30 Hast hab ich dann M851 Z-1.40 eingegeben ,dann speichern und eine line drucken . mann sieht wie die line immer mehr haftet dann würde ich in 0,05 schritten weiter machen . ich hab keinen leichteren weg gefunden .

  • Stefan PeStefan Pe Posts: 13Member
    This is my current start code for Bliniear, he scans the bed like you did in marlin and pulls a line at the bottom of the bed

    G28; Home
    G92 E0
    G1 F200 E-1
    G1 Z15.0 F6000; Move the platform down 15mm
    G1 X0.0 Y15.0 F6000.0; go to the edge of the print area
    G1 Z0.200 F1000.0; Go to start Z position
    G92 E0
    G1 F200 E1
    G92 E0
    G1 X60.0 E7.0 F1000.0; intro line slow
    G1 X160.0 E15 F2000.0; almost intro line
    G92 E0.0; reset extruder distance position

  • Der_MuckDer_Muck Posts: 64🌟 Super Member 🌟
    Geht es nicht das du mit G28 homest (bei Z offset 0) danach G1 Z0 dann den Abstand mit der Fühlerlehre misst und dann in die Firmware oder mit M851 Z- gemessener wert wo die 0.2mm abgezogen wurden?
    Danach nochmal G28 G1 Z0 dann nochmal den Abstand mit M851 Z... korregieren.

    Bei Simplify3D hab ich den Wert des Nozzleabstandes im Bereich Gcode Globale Versätze noch mal bei Z als -... eingegeben. Den der Slicer beginnt bei Z0 was aber ja am Drucker 0.2 wäre.
    Beginnt der Slicer den ersten Layer mit 0.2 was einen Gesammtabstand von 0.4 ergeben würde wäre der erste Layer in der Luft.

    Willst du das Bett mit UBL leveln gibst du:
    G29 P1
    G29 T
    G29 S1
    G29 F 5.00 oder was man als Fade Wert will
    G29 A

    Mit UBL beginnt der skript mit 
    G29 L1
    G29 J

    Mir G29 J tastet er mit in der Firmware hinterlegten 3 Punkten nochmal das Bett ab und legt das Mash auf diese Punkte. Man spart sich dadurch langes Leveln des Bettes. 

    Ich habe bei meinem BL-Touch einen 2K Metallkleber an die Spitze modeliert, dadurch macht ihm ein heißes Bett nichts aus. Ausserdem ist die Spitze dadurch eine Fläche von 3mm die sich aufs Bett legt.
  • Stefan PeStefan Pe Posts: 13Member
    ich lasse zum nachjustieren des Offset garnicht mehr g1 z0 fahren .gebe direkt den nächsten Offset wert ein speichern und probieren bis das Offset passt. 
    Aber du kannst doch nicht einfach was an die spitze kleben jetzt musst du noch tiefer mit dem Offset gehen und ob das jetzt noch genau ist ??? und das zusätzliche Gewicht ....... naja das musst du schon selber wissen . 
    Wie oben beschrieben bin ich vom UBL weg .Bilinear ist doch besser weil er vor jedem druck genau das bed vermisst .Musste leider feststellen das das bed nicht da bleibt wo es hingehört mit den originalen federn . 
    grus stefan 
  • Der_MuckDer_Muck Posts: 64🌟 Super Member 🌟
    Wenn du nicht G1 Z0 fährst und mit der Fühlerlehre überprüfst weißt du doch nicht ob dein Offset passt oder?

    Die Länge des Pins ist die selbe, nur jetzt hat er eine Fläche von 3mm, eine Spitze geht auf der Black Diamond Oberfläche nicht, da er wie beim IR Sensor mal in Raster und mal auf dem Raster misst. Eine Fläche misst immer das Raster auf max. Höhe.
    Das sind ein paar mg., das packt der BLtouch ohne Probleme. Die Spitze ist nun nicht mehr warmverformbar.
     Die Werte sind in einem glaubwürdigen Bereich, besser als beim IR sensor. 
    Mit UBL kannst du ebenfalls vor dem Druck das Bett vermessen, meiner Meinung nach braucht man das jedoch nicht.
    Ein gespeichertes Mash mit dem 3 Punkt Abgleich vor jedem Druck reicht aus. Das Bett verzieht sich ziemlich gleich bei Wärme, nur die gesammte Fläche kann schief werden, deswegen der 3 Punkte Abgleich, geht einfach schneller.

    Wie findest du die Genauigkeit des BLtoch? Hast du schon mal nach dem mashing auf verschiedenen Punkten des Bettes Z0 mit einer Fühlerlehre überprüft?  Ich finde die Genauigkeit weit nicht so gut wie beim manual bed leveling.

    Das liegt nicht an den Federn, das liegt an den orig. Knaufmuttern, das Gewinde ist da zu groß. Ich habe die gegen Vollmetall-Rändelmuttern gewechselt und minimal Kleber dran gemacht, sodass sich die Mutter nicht von alleine drehen kann. Mit der Hand ist das jedoch noch möglich. 
  • Der_MuckDer_Muck Posts: 64🌟 Super Member 🌟
    Just printed a test for the mash bed leveling with the BLtouch and must say its pritty good.
    UBL Mash was saved with a hot bed and nozzle, today loaded with the 3 point comparison G29 J

    On the left side its one layer with 0.18 on the right its allready filling the lines together. 
    BLtouch is working very well but i modeled on the tip of it a 2K fluid metal flat tip what turns the sharp tip to a flat 3mm disk. Its light and form stabil because of the bed heat. It can be that you get in trouble of the sharp tip of the bltouch because of the black diamond plate which is gridy. (same problem was makes the IR probe unusable)

    Just fill the offsets as accurate it gets in the BLtouch firmware setting and controll it with G28, G1 Z0, using M851 Z+/-... 
    The rest i wrote before. (only for UBL) for bilinear its like Stefan wrote.
    I dont see the need to level every beginning of an print. With the UBL its faster to use a saved and checked mash and use G29 J to the G29 L1 saved mash. (3 Point saved in the firmware in a L form not diagonal because a diagonal point comparison can be diagonal oblique!!!!!) 

  • AndiAndi Posts: 2Member
    Hallo zusammen,

    ich bin neu im Forum.
    Frage zu UBL
    Ich habe einen JGaurora A5 mit Marlin Firmware.
    READ: echo: Marlin bugfix 1.1.x.Marlin bugfix 1.1.x.
    Und einen BLtouch Sensor für das ABL installiert.
    Halterung: https://www.thingiverse.com/thing:2827340
     Wenn das Heizbett mit UBL abgetastet wird, kann ich die Unebenheiten aufgrund der Werte erkennen (eine Mulde in der Mitte ca. 0,1mm ) ich habe den Eindruck, dass diese Unebenheiten nicht ausgeglichen werden.
    Düse zu nah am Heizbett oder zu weiter Abstand.
    Startscript UBL Simpify3D
    M502          ; Reset settings to configuration defaults...
    M500          ; ...and Save to EEPROM. Use this on a new install.
    M501          ; Read back in the saved EEPROM. 
    M190 S65
    G28           ; Home XYZ.
    G29 P1        ; Do automated probing of the bed.
    G29 P3 T      ; Repeat until all mesh points are filled in.
    G29 T         ; View the Z compensation values.
    G29 P6 C 0.0
    G29 S1        ; Save UBL mesh points to EEPROM.
    G29 F 10.0    ; Set Fade Height for correction at 10.0 mm.
    G29 A         ; Activate the UBL System.
    Wenn ich den Mesh Versatz G29 P6 C x.x einstelle wird ja nur das ganze Mesh versetzt.
    Den Z Offset habe ich gemessen und auch in der Firmware eingetragen.
    Ich habe die Funktion von UBL so verstanden:
    Das Heizbett wird abgetastet und die Werte werden dann dazu verwendet, dass die Düse einen gleichmäßigen Abstand zum Heizbett hat.
    Ich habe gelesen, dass es ja funktioniert aber irgendwie komme ich nicht weiter.

    Vielleicht hat ja jemand die gleiche Konfiguration BL Touch / Halter, S3d etc.. und könnte mir seine Firmware zusendenden.

    Gruß Andi
  • AndiAndi Posts: 2Member
    Hello everybody,
    I'm new to the forum.

    I have a JGaurora A5 with Marlin firmware.
    READ: echo: Marlin bugfix 1.1.x.Marlin bugfix 1.1.x.
    And a BLtouch sensor for the ABL installed.
    Holder: https: //www.thingiverse.com/thing: 2827340
     If the heating bed is scanned with UBL I can see the bumps due to it's values ​​(a trough in the middle about 0.1mm) I have the impression that these bumps are not compensated.
    Nozzle too close to the heating bed or too far away.

    Startscript UBL Simpify3D
    M502; Reset settings to configuration defaults ...
    M500; ... and Save to EEPROM. Use this on a new install.
    M501; Read back in the saved EEPROM.
    M190 S65
    G28; Home XYZ.
    G29 P1; Do automated probing of the bed.
    G29 P3 T; Repeat until all mesh points are filled in.
    G29 T; View the Z compensation values.
    G29 P6 C 0.0
    G29 S1; Save UBL mesh points to EEPROM.
    G29 F 10.0; Set fade height for correction at 10.0 mm.
    G29 A; Activate the UBL system.

    If I change the mesh offset G29 P6 C x.x only the whole mesh is shifted.

    I measured the Z offset and also entered in the firmware.

    I understood the futuion from UBL that way.
    The heating bed is scanned and the values ​​are then used so that the nozzle is evenly spaced from the heating bed.

    I've read that it works, but somehow I'm stuck.

    Maybe someone has the same configuration BL Touch / Holder, S3d ect. and could send me his frimware.

    Greeting Andi
  • Der_MuckDer_Muck Posts: 64🌟 Super Member 🌟
    Servus, bin gerade in der Slowakei aber mein startskript reduziert sich auf G28, G29 L1 und G29 J
    Du brauchst nicht vor jedem druck komplett leveln.
    Führe mit Pronterface dein skript so aus wie du es geschrieben hast und beende es mit M500, das fehlt bei deinem skript.
    In SP3D schreibst du dann G28, G29 L1 und G29 J.
    Damit funktionierts mal. Falls dir das nicht genügt kannst du immer noch auf ständiges komplettes leveln umsteigen. Persönlich level ich nur komplett neu wenn was nicht passt oder ich den Drucker umstelle oder aufmache. 
  • Der_MuckDer_Muck Posts: 64🌟 Super Member 🌟
    OK a quick update, it seems that the bed bends sometimes different with the heat of the bed. 
    So a mashing is need much more often that i thought. 

    In case you use UBL set this at the slicers beginning script. In my SP3D the slicer is heating up without the need to add it to the script. So its:

    G29 P1
    G29 P3 T
    G29 T
    G29 S1
    G29 F 5.00 (or how high you want)
    G29 A
    .... and the followed start script without G28!
    And nothing more is need. No need for M502, it would reset all saved settings you may made.
Sign In or Register to comment.