Quantcast
Channel: Reprap Forum - Firmware - Marlin
Viewing all 2835 articles
Browse latest View live

Kill motion on endstop hit (2 replies)

$
0
0
Hi,
I just don't get it...
Why isn't the default behavior such that when hitting an endstop during printing, printing is *immediately* halted?
I think it should be a basic safety precaution.
I couldn't make marlin behave that way merely by tweaking ENDSTOPS_ALWAYS_ON_DEFAULT and ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED.
I ended up modifying Marlin's code by adding a kill() command to the endstops.cpp.
And even so, it seems that after each Homing it is required to throw in a M540 command ("enable abort on endstop hit") to re-enable it.
(added this to the custom Gcode)
Really cannot understand the design considerations behind this behavior, and would be really glad if anyone could care to show me what I am missing.
What would be the downside of having an optional compilation condition for halting (=immediately kill all motors motion) on the event of endstop hit?
Important to add, I am using Marlin to drive a heavier (custom design) 3d printing machine, which is indeed using more powerful motors.
One of the axes hitting the HW limits is not a pleasant sight...
Many thanks!!! (-:

Z probe dosnt stop when Z is homed (no replies)

$
0
0
Pretty much as the title states, I see videos of others using their Z probes online and mine does not act the same way. auto level cant be done unless I home each axis to 0. The issue is the Z Probe dosnt stop my Z axis from going down when homed. The Z probe is deploying and does read as trigged when it triggerd but it dosnt stop the Z axis during homing. I assumed since I'm not using a Z min endstop and that the Z probe is using the Z min endstop placement on ramps 1.4 board I would think when its triggered it should act as a endstop and stop the Z axis from going down further.

when I home Z axis with the probe it starts its decent and deploys the probe, if I trigger the probe with my finger it triggers and light goes off on probe for a split second and then deploys the probe back out, it continues to do this until it smashes in to the bed.

I'm using most recent version of marlin firmware, using Ramps 1.4 board and 3D touch (BLTouch clone) Z probe

Below is my settings I have set for both the "Endstop settings" & "Z Probe settings"




//===========================================================================
//============================== Endstop Settings ===========================
//===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

// Enable pullup for all endstops to prevent a floating state
#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
// Disable ENDSTOPPULLUPS to set pullups individually
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.

/**
* Stepper Drivers
*
* These settings allow Marlin to tune stepper driver timing and enable advanced options for
* stepper drivers that support them. You may also override timing options in Configuration_adv.h.
*
* A4988 is assumed for unspecified drivers.
*
* Options: A4988, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
* TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
* TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE,
* TMC5130, TMC5130_STANDALONE
* :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
*/
//#define X_DRIVER_TYPE A4988
//#define Y_DRIVER_TYPE A4988
//#define Z_DRIVER_TYPE A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988

// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
#define ENDSTOP_INTERRUPTS_FEATURE

/**
* Endstop Noise Filter
*
* Enable this option if endstops falsely trigger due to noise.
* NOTE: Enabling this feature means adds an error of +/-0.2mm, so homing
* will end up at a slightly different position on each G28. This will also
* reduce accuracy of some bed probes.
* For mechanical switches, the better approach to reduce noise is to install
* a 100 nanofarads ceramic capacitor in parallel with the switch, making it
* essentially noise-proof without sacrificing accuracy.
* This option also increases MCU load when endstops or the probe are enabled.
* So this is not recommended. USE AT YOUR OWN RISK.
* (This feature is not required for common micro-switches mounted on PCBs
* based on the Makerbot design, since they already include the 100nF capacitor.)
*/
#define ENDSTOP_NOISE_FILTER



//===========================================================================
//============================= Z Probe Options =============================
//===========================================================================
// @section probes

//
// See [marlinfw.org]
//

/**
* Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
*
* Enable this option for a probe connected to the Z Min endstop pin.
*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

/**
* Z_MIN_PROBE_ENDSTOP
*
* 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
//#define MANUAL_PROBE_START_Z 0.2

/**
* 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_PROBE_SERVO_NR 0 // 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
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
#endif

/**
* 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
#if ENABLED(PROBING_HEATERS_OFF)
//#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy)
#endif
//#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 0 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]

// Certain types of probes need to stay away from edges
#define MIN_PROBE_EDGE 10

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

// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z

// Feedrate (mm/m) for the "accurate" probe of each point
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)

// 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
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING 5 // Z position after probing is done

#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping

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

// Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST

// 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
//#define DISABLE_REDUCED_ACCURACY_WARNING

// @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 false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#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 UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.

//#define Z_HOMING_HEIGHT 0 // (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 200
#define Y_BED_SIZE 175

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#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 150

/**
* 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 constrain movement within minimum coordinate bounds
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X
#define MIN_SOFTWARE_ENDSTOP_Y
#define MIN_SOFTWARE_ENDSTOP_Z
#endif

// Max software endstops constrain movement within maximum coordinate bounds
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
#define MAX_SOFTWARE_ENDSTOP_X
#define MAX_SOFTWARE_ENDSTOP_Y
#define MAX_SOFTWARE_ENDSTOP_Z
#endif

#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
//#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
#endif

/**
* Filament Runout Sensors
* Mechanical or opto endstops are used to check for the presence of filament.
*
* RAMPS-based boards use SERVO3_PIN for the first runout sensor.
* For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
* By default the firmware assumes HIGH=FILAMENT PRESENT.
*/
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#endif

FOLGERTECH 2020 upgrade Control failure (no replies)

$
0
0
I recently upgraded all three axes of my 2020, added a 3D touch, and uploaded 1.1.9, then tried 1.1.9 bugfix from 01/18/2019. I use RAMPS 1.4, and OCTOPI on a Rasbpi 3.

The printer homes, heats and otherwise appears normal.Using the LCD panel I can move all 3 axes and the extruder, distances are good and the bed levelling seems fine.

Using the terminal any G code Y move the printer will move X to the zero and Y will move to an incorrect location. Any G code X move the Y will move to max and keep trying to go for a while, and afterward the X will move to an incorrect position. Gcode Z moves produce similar results.

Printing from octoprint or SD card printing also send the printhead off into the wilderness.

The printhead is always out of bounds after this happens. I suspect there is an error in my configuration files, I have thoroughly checked all of the electrical connection and drivers, etc.

For sanity, my CR10 is fine.

Any help greatly appreciated.

Strange XY behavior after adding bed leveling (no replies)

$
0
0
I added a BLtouch clone probe to my CR-10 printer running Marlin 1.1.9 and now I have some issues after bed leveling. After my G29 bed leveling command finishes, my printer head won't move on the Y axis, and will only go to X95 if I send the command G0 X0. I've also noticed that if I rehome the print head I can move Y in the negative direction, but it I try to move at all in the positive direction it tries too move to Y500 which is off of my bed. Also if I try to print something, even if Octoprint shows the Gcode layout in the center of the bed, it tries to print at the maximum Y position in the middle of the X. If anybody has some suggestions to try out, I would really appreciate it.

Marlin bltouch (no replies)

$
0
0
Hey all noobie here so I recenlty started on this bltouch journey and im almost there i have an issue while starting a print ,the probe is fine it homes great but when the print starts it just blobs the filament in the front left corner and doesnt move any insight would be great thanks

Mesh Bed Levelling (no replies)

$
0
0
Hello everybody!

I am using manual Mesh Bed Levelling for my Tronxy X5S and my I3 Mega which works OK.
I have a question though.
The various Z offsets that are collected are added/subtracted from the Z zero (home) position?
Which means that in any case I first have to home Z, level the bed with the screws and then do the manual mesh levelling sequence?

And what if I use a proximity/touch sensor for auto levelling? What is the relation to the sensed distance and the actual nozzle height?

Thanks a million!

Giorgos.

Manual Bed leveling with a probe (no replies)

$
0
0
I have currently updated to version Marlin 1.9 on my CR-10s. I have enabled manual mesh bed leveling and it works well. So now I was wondering can I use manual mesh bed leveling with dial indicator to measure my Z axis offset. I have been reading though the documentation and configuration file and get the feeling there mutually exclusive, but I am really not sure.

Below are some guess of what I think may need to change to get this to work, any other suggestion or recommendation are very much appreciated.


1. leave Z-axis stop as is.
2. Enable #define MESH_BED_LEVELING
3. Disable //#define PROBE_MANUALLY
4. Enable #define FIX_MOUNTED_PROBE
5. Find the values for:
#define X_PROBE_OFFSET_FROM_EXTRUDER xx
#define Y_PROBE_OFFSET_FROM_EXTRUDER xx
#define Z_PROBE_OFFSET_FROM_EXTRUDER "0"
6. Not sure, but possibly set these
#define X_MIN_POS xx
#define Y_MIN_POS xx
#define Z_MIN_POS xx
#define X_MAX_POS xx
#define Y_MAX_POS xx
#define Z_MAX_POS xx

Z axis wont lower (no replies)

$
0
0
Hi,

So out of no where are started getting this "HARDWARE ERROR". I was printing yesterday now today i get an error every time it tries to home the axis' . It will do the x and y but when it comes to the z it throws the error. I tried looking at the code and cant see anything, it tries to perform G28 says echo busy.....then error. It allows me to lower Z when i manually lower it through the control window but as soon as its time to home nothing, Any idea?

BLTOUCH + DUAL Z ENDSTOPS (no replies)

$
0
0
Hello!
I am already using dual Z motors with seperate drivers and individual Z endstops for my Tronxy X5S.
One Z endstop connected to Zmin and the other to Zmax. Also I have enabled manual mesh leveling. All good!


I want to add BLtouch ONLY FOR AUTO LEVELLING and not for Z homing.
IMO this type of machine must have individual Z endstops to have the bed level and so I did.

The bltouch will connect to the Xmax or Ymax.
So. here is the help I need. How can I configure the code to use the bltouch only for auto levelling and use the dual Z endstops for homing?


I searched a lot but no luck...

Thanks!

Giorgos

TMC2130 and Marlin 1.1.9 (6 replies)

$
0
0
Hello, I want to use x2 TMC2130 driver (on the X and Y axis) on SPI mode using Marlin 1.1.9. However I am not able to compile the code and I constantly get this error:
In file included from sketch\stepper_indirection.cpp:40:0:
stepper.h:225: error: redefinition of 'class Stepper'
class Stepper {
      ^
In file included from sketch\stepper_indirection.cpp:1:0:

C:\Program Files (x86)\Arduino\libraries\Stepper\src/Stepper.h:83:7: error: previous definition of 'class Stepper'

class Stepper {
      ^
sketch\stepper_indirection.cpp: In function 'void reset_stepper_drivers()':
stepper_indirection.cpp:585: error: 'class Stepper' has no member named 'set_directions'
  stepper.set_directions();
          ^
exit status 1
redefinition of 'class Stepper'


For the extruder and the Z axis I will use the basic A4988. So, in Configuration.h I have:
#define X_DRIVER_TYPE TMC2130
#define Y_DRIVER_TYPE TMC2130

And the rest of them are commented.

I am using Arduino 1.8.5 and the TMC2130 library on its 2.3.0 version. I have tried with different ones but I still don´t get it.

Any help would be appreciated :) thank you

Marlin dual extruders, dual heaters setup help on MKS GEN 1.4 (no replies)

$
0
0
Hello everyone,

after printing parts in the last 2 -3 weeks with the single nozzle setup, I wanted to upgrade to a dual nozzle, I really want to use PVA filament ofr the support, so I don;t need to clean parts, and also to have the parts that use supports much clean looking.

I made my dual extruder head, mountedit on the printer and setup the marlin config file as I learned, the screen shows the temperature of both extruders correctly, also of the bed, but when I try to preheat the nozzles, either both at once, ore one by one, nothing happens. I tried from OctoPrint but also tried directly from the LCD module. It sets the target temperature to 180 but the actual temperature doesn't rise, and after ~20 seconds the error shows up. If I keep my hand on the nozzle block, the temperature is rising so the sensor works correctly.

From my previous setup I modified those values in configuraton.h file :

#define EXTRUDERS 2

#define TEMP_SENSOR_1 1

#define DISTINCT_E_FACTORS

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 256, 256, 800, 240, 400 }

#define DEFAULT_MAX_FEEDRATE          { 200, 200, 30, 25, 25 }

#define DEFAULT_MAX_ACCELERATION      { 1600, 1600, 100, 10000, 10000 }

// VOLCANO SINGLE NOZZLE, 3D touch probe mounted on hole #4 (bottom to top) 
/* 
#define X_PROBE_OFFSET_FROM_EXTRUDER -16  // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 65  // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1   // Z offset: -below +above  [the nozzle]
*/

// DUAL NOZZLE, small heater block, 3D touch probe mounted on hole #2 (bottom to top)  

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

Anyone around to check my files, or point me in the right direction, what else I might need to change ? When I used a single nozzle head, I used the Heater 1 mosfet to power the Part Cooling Fan, now I want to move that fan on a H bridge module L9110S and connect it to a free servo pins to feed that module a PWM signal. Now I use D11 servo header on the 3D touch probe, I want to setup D6 as the pin for the part cooling fan. Any help with this part too, is appreciated.

[attachment 109623 MksGenV14-Pinout.png]

UPDATE. I will change now #define FANMUX0_PIN 7 from 7 to 6 to see if this solves my problem, I think it will .. I forgot about this option :D

UPDATE 2: SOLVED Nobody told me that I actually need to plug the 3D printer to mains, to have the heaters working :D .. The printer was connected to OctoPrint, and the LCD was turned on, I didn't tried to move any axes, my first test after flashing the modified firmware, was to turn on the heaters, as the temperature sensors ware working, but I forgot to plug the printer to 220v ..

X axis end stop not stopping. (no replies)

$
0
0
Hi. I have just built a Anet a8-m dual printer. The x axis end stop was working with the original software. I have changed to Marlin and used a configuration I found for the KFB 2.0 control board. Now the x axis is not stopping at the switch when I home the x axis. I have tried checking all the code variables but to no avail. The Y and Z axis both work OK. I have attached the config uration.h file (not sure if this the correct method. Hope someone can help

Thanks

Paul
Hi All. Found it. In the Pins_KFB_2.h file the X_min_pin has been changed to 2 from 3. Don't know why but I've changed to an equivalent board with in 3 and it works now

Paul

How to permanently move PART COOLING FAN to pin 6 (MKS GE 1.4 second servo header) (2 replies)

$
0
0
Hello everyone,

I want to move the PART COOLING FAN to pin D6, and use an H-BRIDGE L9110S module to power the fan, I want this also when I configured Marlin with a single EXTRUDER, because I wired already all the cables and for easy swap of the printers head, I want to use an 24 pin ATX connector, each of my heads will have the same connector and only the needed pins connected, as in the image bellow.

[attachment 109642 atxconnecotrdefinedpins.jpg]

For this I need to have my heater pins (D10 and D7) and fan pins (D9 and D6) defined exactly in the same way no matter what version of marlin I configure (as I noticed the single heater firmware, will use E1 - D7 pin for part cooling fan, dual heaters setup, will use E1 for the secondary heater), yesterday night after a few tests I made with the dual nozzle setup, I swapped back to my single nozzle setup but this time I had defined #define FANMUX0_PIN 6, but when tried to print something I noticed the D7 mosfet was turned on instead (LED was on), I think somehow the part cooling fan is still on heater 1 connector (E1 mosfet)

[attachment 109638 MksGenV14-Pinout.png]

[attachment 109634 MKSgenBoardandH-BridgeconnectedtroughYELLOW-ORANGEcable.jpg]

Anyone around to help me with this ? Did anyone else used a similar H-BRIDGE to power fans (when using dual extruders, and all onboard mosfets are used by other devices) ? Or do you guys have any other suggestion how to power the part cooling fan (which turns on only after the first few layers).

PS. I used the L9110S H-bridge because I already had it, my plan was to an mosfet module that also has an opto-coupler onboard, but it didn't arrive yet :(

Z-axis "Home" problem (1 reply)

$
0
0
Hi everybody!

I am new to the 3d printing world and I recently bhought the Flsun i3 plus(with autoleveling) and I already made many succesful prints with the single extruder. The firmware I used was provided by Flsun.

Now I tried to replace the single extruder for the chimera nozzle and this is where the problems start. I use the correct firmware provided by Flsun but the bed goes to its endswitch Y and the extruder goes to its endswitch X but after that the bed won't center in the middle of the bed before probing the Z axis. So the Z axis goes down but won't see any metal because it's out of range of the bed.

I tried reaching out to Flsun but they can't seem to understand what the problem is and therefore can't help me.

I have tried looking for the error myself but i can't seem to find it. I would really love some help with this. I have added the configuration files that i have.

Thanks in advanced!

Stanley

Marlin upgrade and wrong coordinates (1 reply)

$
0
0
I am trying to complete an upgrade on my Marlin firmware and I'm really struggling with getting all the movements and coordinates set up correctly. I've gotten to the point where everything moves in the correct directions when I control manually in Repetier. X & Y homing is no problem. When I home Z, the only way it will let me do it is to home X,Y&Z together. There seems quite a bit of difference in the configuration.h options between my older firmware and the 1.1 firmware I'm installing so I can't simply copy & paste the old settings.

The behavior before the firmware upgrade when homing X,Y&Z: printer travels to the X & Y endstops and then moved down to zero Z. When it reached the Z endstop, the print head would move up slightly (~ 3 mm) and then it was done. Repetier would report it's at the correct position 200mm,0mm,3mm.

New behavior: Repetier immediately reports the position as 200mm,0mm,0mm and does not change. The printer travels to the X & Y endstops and then moves to a point somewhat near the center of the build area (~60mm,120mm,2mm), then up a large distance (~12mm). Then it moves down till the endstop is triggered. Then up again (~3mm). The down to trigger endstop again, then finally up another 3mm. At the end it still report the position as 200mm,0mm,0mm when it's actually at 60mm,120mm,3mm.

Does anyone have an idea of what setting I should be looking at? Thanks.


// @section homing

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

//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.

#define Z_HOMING_HEIGHT 2    // (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 (X_MAX_POS-X_MIN_POS)
#define Y_BED_SIZE (Y_MAX_POS-Y_MIN_POS)

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 200
#define Y_MAX_POS 200
#define Z_MAX_POS 160

/**
 * 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 constrain movement within minimum coordinate bounds
//#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
  #define MIN_SOFTWARE_ENDSTOP_X
  #define MIN_SOFTWARE_ENDSTOP_Y
  #define MIN_SOFTWARE_ENDSTOP_Z
#endif

// Max software endstops constrain movement within maximum coordinate bounds
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
  #define MAX_SOFTWARE_ENDSTOP_X
  #define MAX_SOFTWARE_ENDSTOP_Y
  #define MAX_SOFTWARE_ENDSTOP_Z
#endif

#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
  //#define SOFT_ENDSTOPS_MENU_ITEM  // Enable/Disable software endstops from the LCD
#endif

Filament change only purges (no replies)

$
0
0
Hello, today I decided to activate filament change on my printer running Marlin 1.1.9 on an Anet board. But now after flashing it, I can't get it to work as it should. What happens is that when I press change filament or run the m600 command it only does the last purge were it extrudes roughly 50 mm of filament. It skips the unloading and loading and starts with that. I have the max extrude length in the normal configuration file set to 650mm since I have a Bowden setup. Have I done anything wrong? Could someone please help me? Here is what I changed in configuration.adv
#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
  #define PAUSE_PARK_RETRACT_FEEDRATE         60  // (mm/s) Initial retract feedrate.
  #define PAUSE_PARK_RETRACT_LENGTH            2  // (mm) Initial retract.
                                                  // This short retract is done immediately, before parking the nozzle.
  #define FILAMENT_CHANGE_UNLOAD_FEEDRATE     10  // (mm/s) Unload filament feedrate. This can be pretty fast.
  #define FILAMENT_CHANGE_UNLOAD_ACCEL        25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
  #define FILAMENT_CHANGE_UNLOAD_LENGTH      500  // (mm) The length of filament for a complete unload.
                                                  //   For Bowden, the full length of the tube and nozzle.
                                                  //   For direct drive, the full length of the nozzle.
                                                  //   Set to 0 for manual unloading.
  #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   6  // (mm/s) Slow move when starting load.
  #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0  // (mm) Slow length, to allow time to insert material.
                                                  // 0 to disable start loading and skip to fast load only
  #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE   6  // (mm/s) Load filament feedrate. This can be pretty fast.
  #define FILAMENT_CHANGE_FAST_LOAD_ACCEL     25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
  #define FILAMENT_CHANGE_FAST_LOAD_LENGTH     600  // (mm) Load length of filament, from extruder gear to nozzle.
                                                  //   For Bowden, the full length of the tube and nozzle.
                                                  //   For direct drive, the full length of the nozzle.
  //#define ADVANCED_PAUSE_CONTINUOUS_PURGE       // Purge continuously up to the purge length until interrupted.
  #define ADVANCED_PAUSE_PURGE_FEEDRATE        3  // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
  #define ADVANCED_PAUSE_PURGE_LENGTH         50  // (mm) Length to extrude after loading.
                                                  //   Set to 0 for manual extrusion.
                                                  //   Filament can be extruded repeatedly from the Filament Change menu
                                                  //   until extrusion is consistent, and to purge old filament.
 
                                                  // Filament Unload does a Retract, Delay, and Purge first:
  #define FILAMENT_UNLOAD_RETRACT_LENGTH      13  // (mm) Unload initial retract length.
  #define FILAMENT_UNLOAD_DELAY             5000  // (ms) Delay for the filament to cool after retract.
  #define FILAMENT_UNLOAD_PURGE_LENGTH         8  // (mm) An unretract is done, then this length is purged.
 
  #define PAUSE_PARK_NOZZLE_TIMEOUT           45  // (seconds) Time limit before the nozzle is turned off for safety.
  #define FILAMENT_CHANGE_ALERT_BEEPS         10  // Number of alert beeps to play when a response is needed.
  #define PAUSE_PARK_NO_STEPPER_TIMEOUT           // Enable for XYZ steppers to stay powered on during filament change.
 
  #define PARK_HEAD_ON_PAUSE                    // Park the nozzle during pause and filament change.
  //#define HOME_BEFORE_FILAMENT_CHANGE           // Ensure homing has been completed prior to parking for filament change
 
  #define FILAMENT_LOAD_UNLOAD_GCODES           // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
  //#define FILAMENT_UNLOAD_ALL_EXTRUDERS         // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
#endif

USE_CONTROLLER_FAN with hardware PWM fan (no replies)

$
0
0
I've come across something weird and wanted to make sure I'm not doing anything stupid before adding an issue on Github.

I'm using an MKS Gen 1.4 board flashed with Marlin-bugfix-2.0. I'm trying to use a 4-wire PWM computer case fan as a fan for the controller case to keep the drivers cool because I was getting overtemp warnings.

I've attached the yellow and black wires to the 12V rail directly and I thought that connecting the blue wire (which is PWM) to the board would give me control over the fan without needing to use a mosfet and softPWM.

In Configuration_adv.h I've set the following:
#define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN)
  #define CONTROLLER_FAN_PIN 2           // Set a custom pin for the controller fan
  #define CONTROLLERFAN_SECS 60          // Duration in seconds for the fan to run after all motors are disabled
  #define CONTROLLERFAN_SPEED 100        // 255 == full speed
#endif

But the fan just blows at full speed the second I turn on the board and it doesn't go down again. Ideally it would be off all the time and only turn on when the motor drivers are on.

In addition I've got the extruder cooling fan set to automatic and that works fine, but that's also the reason I don't have any more mosfet outputs on the board.

I just wanted to check that I'm not doing anything that's impossible. Or that I'm using a pin reserved for something else. Or that I have to define the pin somewhere else, like in the pins definition or board definition file. Because the PWM implementation from each manufacturer is different, it might just be that my fan (an Arctic fan) does 100% rpm when the PWM signal is 0; I've seen this before, but wanted to be sure the firmware side is ok before I tackle that.

Filament run out sensor - disable. Marlin 2.0 (no replies)

$
0
0
Hi All,

I have been using a filament run out sensor for a while and it has been useful.

When I print with flexible filament though I would like to disable it and send the filament directly to the hot end.

Marlin 2.0 has the M code M412 S1/S0 to enable or disable the filament run out sensor. I tried adding it to the start g Code but to no avail.

The filament sensor still triggers.

Any suggestions ?

Attached a pic of my start gcode file

Problem Sd card extended cable (no replies)

$
0
0
Goodmorning everyone! I decided to build my first 3D printer. I bought a 12864 Full Graphic Smart Controller LCD and an sd card extension. I have the following problem:

I insert the sd card inside the slot of the display, and in the home tells me sd card inserted while in the menu tells me Print from sd card. So the sd card display slot works great.

When I connect the extension sd card to the display and insert the sd card in the extension, in the home tells me: SD card inserted, while in the menu: SD card not present.

I use a micro sd card (with adapter) Kingston 32gb, formatted in FAT32. Also I tried to connect the sd card extension to the computer, and it works properly. So I excluded that it was a problem with the extension.

Can someone with a good heart, or who has had the same problem with me, help me? :(

Firmware: Marlin 1.1.9
Shield: Ramps 1.4

Cold Start Goes wrong Direction (no replies)

$
0
0
Help.

I have a very strange repeatable problem. I'm running Marlin 2.0 on a Cohesion 3d Remix board (LPC1769) with all A4988 drivers. It works almost flawlessly and I'm really liking it but... when I first power on it seems completely random as to how axes move.


Example: after power on if I run my Y axis (dual) it usually has the motors out of synch and nothing moves. Homing the Z axis goes the wrong direction.


Specific steps: G0X5 will go to the left. Then G0X0 will also go to the left. Then G0X5 will go to the right! After this the axes all move correctly.


It's not my axis settings or my endstops because after the hiccup it works flawlessly. G28 does a great home and G28axis all do the right things and G0X,Y,Z all go the right direction. Only at powerup does this happen. Is it possible that a port pin isn't being initialized or ???

It could be my configuration I suppose but note that at warm starts (hit reboot button and reload firmware) everything is correct, it is only when the power is first turned on.

Anyone have any ideas what could cause this?

Thanks, Mark
Viewing all 2835 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>