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.
Positioning of string terminator to truncate checksum from the commands
M23, M28, M30, M32, M928 and M117 was off by one, causing the last
letter of the actual command to be truncated instead of just the
checksum.
In case of the SD commands this caused checksummed commands targeting
existing files to fail since the last letter of the filename was
truncated.
In case of M117 this caused the last given letter not to be displayed.
This patch fixes the off-by-one error and sets the null terminator
on the exact position of the * starting the checksum instead of the
character before that.
FW retraction is extended onto swap retraction invoked by 'G10 S1'.
Bookkeeping of the retract state of all extruders allows for having one
extruder fw standard retracted while another extruder is swap retracted.
An LCD menu item for the swap retract and recover length was added.
some guy find that marlin not working good for dual extruders delta .
when type T0 or T1 to active extruder and E0 or E1 move causing XYZ
motion . so i locales the bugs and fix it , I have dry run the fix.
Firmware retraction now stores the retract and recover speeds in mm/s
instead of mm/min. This makes it match the units of the maximum
feedrate, and fixes problems with modifying the value via LCD control
panel. From gcode, the values are still taken in mm/min to match the
units of G1 and similar, and they are converted to mm/s before they are
stored.
I also lowered the default retract feedrate to make it less likely to
cause problems for geared extruders when the user hasn’t bothered to
set a reasonable maximum feedrate, though users should be setting both
of these values to suit their hardware.
I made these changes previously, but I can’t find the commit now. This
reapplies the changes to get auto retract working again.
Conflicts:
Marlin/Configuration_adv.h
Marlin/Marlin_main.cpp
This should make it safe to enable FWRETRACT by default, with
autoretract (which should now be fixed) only enabled by M209. FWRETRACT
should probably now default to enabled (to make G10/G11 and M207-209
available, without changing functionality when they are not used), but
I’ll save that for another pull request/discussion.
This takes the (now working) G10/G11 code and moves it to a function,
which is called by G10 and G11, and also called by G1 if autoretract is
enabled and a retract/recover move is detected.
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
I added #define for LCD_FEEDBACK_FREQUENCY_HZ and
LCD_FEEDBACK_FREQUENCY_DURATION_MS which is used to alter the default
buzzer sound.
When selecting Panelolu2 in configuration.h:
- it automatically sets the correct ENCODER_PULSES_PER_STEP and
ENCODER_STEPS_PER_MENU_ITEM.
- if LCD_USE_I2C_BUZZER is defined it will also set the default
LCD_FEEDBACK_FREQUENCY_HZ and LCD_FEEDBACK_FREQUENCY_DURATION_MS
When selecting the sanguinololu 1284p the following is true:
- its now enables LARGE_FLASH
- It enables the gcode M300 when the panelolu2 LCD_USE_I2C_BUZZER is
defined
This seems to defeat the purpose of previous_millis_cmd, preventing the
time elapsed from previous_millis_cmd from ever reaching
max_inactive_time or stepper_inactive_time while the heat was on.
Fixes a bug in the Extruder Runout Prevention feature that caused the
extruder to move back to “current_position” after a move if it was
activated while the move was in progress. For long home moves (which
are longer than the dimensions of the machine’s working area), this
would cause the machine to crash into the far end of its travel after
homing. This usually occurred on the Z axis, which could result in
damage to the machine if you don’t hit the reset button in time.
Removed the calculation of the inverse matrix since the rotation matrix is orthogonal, therefore inverted == transposed.
Much simpler and mathematically robust.
In some cases the Bed Heater FET heats up more then stepper drivers, so
this change add the bed monitoring to the controller fan. As soon as the
bed heater is turned on, the controller fan will run as well.
Recommended for those who are using the Z Probe for Z Homing (as
Z-Endstop)
This feature has two changes:
1) Allow user to choose where the Z Probe will touch the bed when homing
all axis together (G28) by setting below defines:
Z_SAFE_HOMING_X_POINT
Z_SAFE_HOMING_Y_POINT
2) Prevents the user to perform Z Axis Homing when the Z Probe is
outsite bed.
by overloading M32 it is now possible to execute gcode files from other gcode files, with a fixed recursion level.
This can be used e.g. for having a real start.g and end.g somewhere on the sd card, which are then called from the normal print file.
Another usecase would be to have macro-files for nozzle-change and layerchange.
I have not tested the speedwise performance. The testing was done with pronterface.
syntax:
normal call from sd card will open the new file and continue executing there.
M32 !/path/filename#
this however will call the new file and return to the caller file.
M32 P !/path/filename#
with the optional "S<position>" the file starting position can be set.
this is for continuing prints from a previous location.
if a '#' is read now the buffer will be emptied before reading ahead.
This is so one can execute files from within gcode files, without messing the buffer with preread characters from the caller file.
# can not occure in sd files imho, because it should only occure within checksums in ther serial communication.
Yes, thats a lame argument. If you have a better idea please tell me. It has to be a character that one can type
on a keyboard manually.
- Added "Z_RAISE_BEFORE_HOMING" for raising Z the defined distance
before homing. This is useful to avoid Z-Probe collision when hotend is
near bed.
- Fixed the issue of Z not going bellow Z_PROBE_OFFSET when
"min_software_endstops" is true.
Now the Z_PROBE_OFFSET is not set in Z_MIN_POS, it is added after
homing.
If "SHOW_TEMP_ADC_VALUES" is defined in Configuration_adv.h, the M105
command will present, after tradicional temperatures, the ADC value read
from temp sensors. This is great for adjusting thermistor tables with
thermocouple.
From Pronterface you can see the ADC value and compare with a
thermocouple reading.. then you just need to create your own thermistor
table.
Since this merge doesnt change the original information, it doesnt mess
with PC software parsing (tested under Pronterface and Repetier-Host).