I have put the tension regulator in a little box I drawn and printed (the stl and skp are joined)
The box is "open" in order the component to be well ventilated.
It is mainly in "Configuration.h" and one line on "Configuration_Adv.h"
Modifications on the firmware (I underline the modifications and put additionnal informations between (), remember to not let it in your firmware or put // before :
#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing (Verify it is define !!)
Thats all for "Configuration_Adv.h"
In "Configuration.h" :
//// The following define selects which power supply you have. Please choose the one that matches your setup
// 1 = ATX
// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
#define POWER_SUPPLY 1 (I don't know if it change something but in the Ozgun it was set to 0, and in first 1.02 it was set to 1, so it put again 1)
// Uncomment this option to enable CoreXY kinematics
// #define COREXY
// Enable this option for Toshiba steppers
// #define CONFIG_STEPPERS_TOSHIBA
// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
#ifndef ENDSTOPPULLUPS
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
// #define ENDSTOPPULLUP_XMAX
// #define ENDSTOPPULLUP_YMAX
// #define ENDSTOPPULLUP_ZMAX
// #define ENDSTOPPULLUP_XMIN
// #define ENDSTOPPULLUP_YMIN
// #define ENDSTOPPULLUP_ZMIN
#endif
(I have added this part) #ifdef ENDSTOPPULLUPS
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
// #define ENDSTOPPULLUP_ZMIN desactivated because sensor
#endif
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. (Verify it is true)
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#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 when it's not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false // For all extruders
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
// 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 true
#define INVERT_Z_DIR true
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
#define INVERT_E2_DIR true
#define INVERT_E3_DIR true
// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1 (verify it is define -1)
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
// Travel limits after homing (units are in mm) (put your bed dimensions)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 190
#define Y_MAX_POS 200
#define Z_MAX_POS 190
(There is a special part for manual bed levelling to display it on LCD menu, but I didn't try to activate it)
//================================================== =========================
//============================ Manual Bed Leveling ==========================
//================================================== =========================
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling
//#define MESH_BED_LEVELING // Enable mesh bed leveling
#if defined(MESH_BED_LEVELING)
#define MESH_MIN_X 10
#define MESH_MAX_X (X_MAX_POS - MESH_MIN_X)
#define MESH_MIN_Y 10
#define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y)
#define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited
#define MESH_NUM_Y_POINTS 3
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0
#endif // MESH_BED_LEVELING
//================================================== =========================
//============================= Bed Auto Leveling ===========================
//================================================== =========================
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) (Verify it is define !!) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. (Verify it is define !!)
#ifdef ENABLE_AUTO_BED_LEVELING
// There are 2 different ways to specify probing locations
//
// - "grid" mode
// Probe several points in a rectangular grid.
// You specify the rectangle and the density of sample points.
// This mode is preferred because there are more measurements.
//
// - "3-point" mode
// Probe 3 arbitrary points on the bed (that aren't colinear)
// You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution)
// Note: this feature generates 10KB extra code size
#define AUTO_BED_LEVELING_GRID
#ifdef AUTO_BED_LEVELING_GRID
// set the rectangle in which to probe
#define LEFT_PROBE_BED_POSITION 47 (Put your infos, depending of where you fix your sensor)
#define RIGHT_PROBE_BED_POSITION 153 (Put your infos, depending of where you fix your sensor) (Left + right = length of X axis)
#define BACK_PROBE_BED_POSITION 190 (Put your infos, depending of where you fix your sensor)
#define FRONT_PROBE_BED_POSITION 10 (Put your infos, depending of where you fix your sensor) (Back + Front = length of Y axis)
#define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this
// Set the number of grid points per dimension
// You probably don't need more than 3 (squared=9)
#define AUTO_BED_LEVELING_GRID_POINTS 3 (on mine, i can put 3, depend of the offset between the sensor and the nozzle, test with 2, raise to 3 and test compiling, if the offset is too important, you will have an error)
// Offsets to the probe relative to the extruder tip (Hotend - Probe)
// X and Y offsets must be integers
#define X_PROBE_OFFSET_FROM_EXTRUDER 47 // Probe on: -left +right (Put your infos, depending of where you fix your sensor)
#define Y_PROBE_OFFSET_FROM_EXTRUDER 9 // Probe on: -front +behind (Put your infos, depending of where you fix your sensor)
#define Z_PROBE_OFFSET_FROM_EXTRUDER -0.25 // -below (always!) (Put your infos, depending of where you fix your sensor)
(for the X and Y it is easy, for the Z a little more complicated :
Put 0 for Z offset, save and upload it with Arduino on the RL200
To verify your sensor is well connected and works :
Switch on the printer, open the console of your favorite software
Up the head until the light off
Type M119 and validate
you wil see normally :
X_min : open
X_max : open
Y_min : open
Y_max : open
Z_min : open
Z_max : open
Put a metal objet under the sensor in order it light on
Type M119 and validate
Normally :
all endstop : open
Z_min : Triggered
Use Cura assistant bed levelling
Down the nozzle until you can pass a piece of paper under the nozzle.
Down manually the sensor by unscrewing it, until the light is on, and screw it firmly (it is the first part of the tune)
Close Cura assistant bed levelling
Now the fine tune :
Open your favorite software to have a terminal to enter code manually (cura or repetier host or octoprint)
Type G28 and Validate (the head move normally at X=100, Y=100, Z=0 and stop, the sensor light on)
Type G92Z10 and validate (the computer think you are at 10 mm height, and you can down the head (even if the light is on), If you don't do that you won't be able to do fine tune and you will not be allowed to down the head)
Put a piece of paper under the nozzle
Push the button -0.1 mm on Z axis until the paper touch the nozzle,just move without forcing
Type M114 and validate (you will have the coordonate of the nozzle)
take the Z and substract 10 (if you have push 2 times on the -0.1 button, your Z is 9.8, so you do 9.8-10= -0.2)
Open Arduino
Load Marlin.ino
In "Configuration.h"
Put the number of the subtraction on Z_PROBE_OFFSET_FROM_EXTRUDER (don't forget the minus sign !!!)
Save and upload it
Open your favorite software to have a terminal to enter code manually (cura or repetier host or octoprint)
Now you can test it with G28 code and after G29 code by typing it directly
Remember that G29 (autobedleveling) works only if you have done a G28 before.
The last things to do is to modify the start-gcode area, in your favorite software (Like that the ALB will be done at every print).
Find :
G90
M82
M107
And add just after :
G28
G29
It is finishes, tell me if there are dark area.
Sometimes i have strange issue, the head goes up instead of going down during the G28 or G29, I don't know why exactly, perhaps a bad connection on the wire, tell me if you have the same problem.
Update (13/05):
I have found why I have these issues, sometimes my sensor is blocked in triggered position.
(M119 confirm that)
I unplugged it, and plug again, it works well again
I managed to get the output voltage on the sensor from 12vdc down to 6vdc with two 10k ohm resistors in a voltage divider circuit setup. I was working on getting it to 5vdc when I noticed the sensor is always reading near the target even when pointed away from metal. I think I may have a defective sensor. It was intermittently working when I first plugged it in, now it just stays on reading near all the time Any thoughts?
I have an issue that after the g28 the g29 does not probe all the way down. On g28 it does hit the z min switch, but g29 it does not its about 10mm from hitting the switch. It goes to 4 points just fine but its not working because its not actually reading the bed, if I manually trigger the switch while its doing its probing the z axis moves up even further and stays there while its doing its pattern, it will go up further each time its triggered. I'm not sure why, I followed the recommended instructions and checked it 5 times.
Thanks for starting this thread SAO. I ended up coding my marlin a little different I think there is a hand full of slightly different methods that will all work. The z height problem where it was not using the z limit switch on the g29 command resolved itself when I disabled EEPROM. I'm not sure why that is, my assumption is it was somehow interfering with the z height. Even though I had it set to zero. It only took me 8 hours to figure it out. Glad I finally did, I didn't want to do all the work to get this far and give up.
I would like to enable baby stepping from the lcd controller, any ideas? I have it enabled in the firmware but when I select it in the lcd menu I don't get any numerical indication that anything is happening and I don't see any visible changes.
I've a problem: since my induction sensor its in front the nozzle, homing X and Y to 0, the Z probing it's outsuide the plate now.. There is a way to fix the Z probing without need to redraw and print a new sensor bracket?