With this change a mechanical or optical switch may be used to check the
availability of the filament and when the filament runs out an M600
(filament change) command is issued. This is only done while printing
with an SD card.
This feature was requested several times (issue #679), but the requests
were not accepted since it was believed that this situation should be
handled at host side. However during an SD print the control is totally
on firmware and I think that during an SD print it should be handled by
the firmware.
The original code was posted at reprap forum
(http://forums.reprap.org/read.php?1,297350) by Lazymonk. I have only
corrected some bugs of the code and improved it by adding definitions to
the configuration.h in order to make it more standardized.
- Moved sanity-checks to Marlin_main.cpp
- Applied to other configuration files
- Fixed formatting of ABL output
- Passing verbose level to probe_pt
- Miscellaneous cleanup
- Put CONFIG_STEPPERS_TOSHIBA into Configuration.h
Am I the only one who always need to change the thermistortable.h to add
a dummy table??
Ok, it is done. Just set the thermistor to 999 and it will always read
25C. Great for Testing or Development purposes.
Looks like INVERT_E3_DIR was missing in the configuration.h also as I
did a test compile with 4 extruders and Azteeg X3 Pro defined. So I also
added those lines too. Additional formatting to make the comments line
up better in that section.
I've insert the define and pointer entries for the Viki 2 and miniViki
from Panucatt in all of the example configs and main config. With these
additions and with pins done in the old single pin.h style...I was able
to get the display working fine save for needing to turn Delta Segments
per Second down. But that's a common graphics lcd issue being looked
into right now.
I need assistance in understanding how the new divided pins files fit
together because my previous attempts at trying to get it to work
appropriately didn't seem successful. This originally came from trying
to find out how to swap the XYZ Min and Max Endstop pins in the Azteeg
X3 Pro. It only comes with one set of connectors and they're Min
Endstops. My previous experience didn't turn out well trying to tell the
firmware to home to the Min Endstops so the best solution I found was to
swap the pins in the firmware. If I'm missing a conflict with a setup
other than delta please let me know, but it makes sense in my setup.
Here were a few changes that I had to make/add lines for the 4th hotend.
A compiling problem in the Temperature.cpp and missing lines in
configuration.h and configuration_adv.h. I added these lines in all of
the example configs too.
* Adds config parameter `PID_PARAMS_PER_EXTRUDER` - allows single PID
parameters to be used where this would be preferable (e.g. dual
identical extruders)
* When disabled, will use `float Kp, Ki, Kd, Kc;` as before.
Preprocessor macros used to switch between.
* ultralcd.cpp defines extra menus for extra parameters only where
required
* M301 reports `e:xx` only if independent pid parameters enabled
* EEPROM structure still leaves space for 3 extruders worth, when undef
will save single parameter to all extruder positions, but only read the
first
* Switching off saves approx 330 B with no LCD enabled, 2634B with LCD
(RRD) enabled: this is significant.
* LCD modifications should be tested.
The previous calc was wrong. Between N points there are only N-1 gaps,
not N.
So changing AUTO_BED_LEVELING_GRID_POINTS to
(AUTO_BED_LEVELING_GRID_POINTS-1)
The compiler does not support comparing float values: "error: floating constant in preprocessor expression"
The loss in X/Y precision shouldn't matter for Z probes, as most microswitches or inductive sensors are larger than 1mm square anyway.
- Fixed issue when BAL area probing is shorter than it should be for
grid probing
- Warning when BAL activated with Delta Kinematics
- Fix XY_TRAVEL_SPEED when homing Z axis
Current defaults are all 255. If it makes sense to reduce them, they should come down together, and
be in a PID_INTEGRAL_DRIVE_MAX <= PID_MAX <- BANG_MAX relationship.
Changes to support displaying the real-time filament width and the
volume factor on a 20x4 LCD. The data is displayed on the 4th line.
First the status message is displayed for 5 seconds, and then the
filament data is displayed. The status message can be seen by
re-selecting the info screen in the menu.
Add another comment on configuration.h for the value of thermistor.
I make a pull request on thermistortables.h with my thermistor (12),but y see there is a comment on configuration with number 12 but it's not present on thermistortables.h ?
Thx
This feature allows the printer to read the filament diameter
automatically and adjust the printer in real time. Added code to read
an analog voltage that represents a filament diameter measurement. This
measurement is delayed in a ring buffer to compensate for sensors that
are a distance away from the extruder. The measurement is used to
adjust the volumetric_multiplier for the extruder. Some additional g
codes (M404, M405, M406, M407) are used to set parameters and turn
on/off the control. g code M221 is updated. Pins for RAMPS1.4, RAMBO,
and Printrboard are identified for analog input. The configuration file
is updated with relevant user parameters.
This is a feature to protect your printer from burn up in flames if it
has a thermistor coming off place (this happened to a friend of mine
recently and motivated me writing this feature).
The issue: If a thermistor come off, it will read a lower temperature
than actual. The system will turn the heater on forever, burning up the
filament and anything
else around.
After the temperature reaches the target for the first time, this
feature will start measuring for how long the current temperature stays
below the target minus _HYSTERESIS (set_temperature -
THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
If it stays longer than _PERIOD, it means the thermistor temperature
cannot catch up with the target, so something *may be* wrong. Then, to
be on the safe side, the system will he halt.
Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target, so you will have no problem
if your extruder heater takes 2 minutes to hit the target on heating.
This is a feature to protect your printer from burn up in flames if it
has a thermistor coming off place (this happened to a friend of mine
recently and motivated me writing this feature).
The issue: If a thermistor come off, it will read a lower temperature
than actual. The system will turn the heater on forever, burning up the
filament and anything
else around.
After the temperature reaches the target for the first time, this
feature will start measuring for how long the current temperature stays
below the target minus _HYSTERESIS (set_temperature -
THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
If it stays longer than _PERIOD, it means the thermistor temperature
cannot catch up with the target, so something *may be* wrong. Then, to
be on the safe side, the system will he halt.
Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target, so you will have no problem
if your extruder heater takes 2 minutes to hit the target on heating.
Having the non-active feeder motors powered on all the time is not
necessary. A feature to deactivate the unused feeder motors has been
implemented. The feature is enabled on default but can be switched off
in the configuration.
Add digipot i2c control for MCP4451
Allow M907 to set i2c digipot currents in amps
Fix Makefile to allow Azteeg motherboards
Fix Makefile to allow Wire libraries only
Add beeper pin for Azteeg X3 Pro