Commit graph

301 commits

Author SHA1 Message Date
Scott Lahteine
c37f7d15c9 - Rename WRITE_E_STEP for consistency
- Add BIT and TEST macros
- Add _APPLY_ macros to stepper.cpp to help with consolidation
- Consolidate code in stepper.cpp using macros
- Apply standards in stepper.cpp
- Use >= 0 instead of > -1 as a better semantic
- Replace DUAL_Y_CARRIAGE with Y_DUAL_STEPPER_DRIVERS
2015-03-14 04:28:22 -07:00
alexborro
c0b6075f77 Fix max acceleration limits in planner
The max acceleration limiting was in wrong place.
2015-03-11 15:08:11 -03:00
alexborro
9157cbd8f3 Add Travel Acceleration and change the M204 options
Added option to set Travel Acceleration (non printing moves).
The M204 options was a non sense (S for printing moves and T for retract
moves).

It has been changed to:
P = Printing moves
R = Retract only (no X, Y, Z) moves
T = Travel (non
printing) moves

I will add this info o G-Code wiki in reprap.org. I also advise to put
this info in Marlin next version changelog.
2015-03-11 13:19:02 -03:00
maverikou
7c24b97958 Ported over Johann Rocholl's improvements for delta printers:
- Nonlinear auto bed leveling code (includes G29, G30, Z_RAISE_AFTER_PROBING). Cleaned it up to be a delta-specific AUTO_BED_LEVELING_GRID code path.
- Allen key z-probe deployment and retraction code. Cleaned it up and added safety checks.
2015-03-07 20:36:21 +02:00
alexborro
afc737ca0c Fix CoreXY Homing Routine.
Fixed how stepper ISR figure it out when the head (extruder) is going to
Min or Max direction.
Added Homing to Max Endstops.
2015-02-13 14:38:05 -02:00
MagoKimbra
986e723eeb Add 4th extruder 2015-01-24 13:37:58 +01:00
daid
53f971095d Revert "Reduce PROGMEM warnings" 2015-01-16 16:48:22 +01:00
Bo Herrmannsen
d4a665694a Merge pull request #1350 from odewdney/Development
Reduce PROGMEM warnings
2015-01-13 11:26:50 +01:00
odewdney
538859669d Removing compiler warnings for progmem 2015-01-11 18:14:21 +00:00
Alex Borro
422a958a34 Fix CoreXY speed calculation
For cartesian bots, the X_AXIS is the real X movement and same for
Y_AXIS.
But for corexy bots, that is not true. The "X_AXIS" and "Y_AXIS" motors
(that should be named to A_AXIS
and B_AXIS) cannot be used for X and Y length, because A=X+Y and B=X-Y.
So we need to create other 2 "AXIS", named X_HEAD and Y_HEAD, meaning
the real displacement of the Head.
Having the real displacement of the head, we can calculate the total
movement length and apply the desired speed.
2015-01-06 16:39:48 -02:00
alexborro
d74aabf259 Revert "Change Auto_Bed_Leveling to Auto_Bed_Compensation" 2014-12-21 10:06:05 -02:00
John Davis
ac204028e7 Update planner.cpp
Changed level and leveling to compensation
2014-12-19 17:49:22 -05:00
Scott Lahteine
07c6b5ab71 Using axis constants 2014-12-18 08:13:08 -08:00
Erik van der Zalm
058e446531 Merge pull request #1037 from filipmu/Filament-Sensor
Support for a filament diameter sensor
2014-10-11 22:56:01 +02:00
Filip Mulier
62db9848d3 Improvements and bug fixes in sensor delay buffer for filament sensor code
Improvement to avoid reinitializing delay buffer with every print. Fixed
issues in buffer indexing and memory out of bounds due to floating point
imprecision.  Simplified the code by avoiding conversion to standard
diameter and 1cu mm extrusion, which caused complications in determining
mm extruded.
2014-08-16 06:50:13 -05:00
Filip Mulier
85649a4549 Real-time filament diameter measurement and control
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.
2014-08-06 19:30:57 -05:00
midopple
17aa67e4ea If the option DISABLE_INACTIVE_EXTRUDER ist active the extruder switch to early to inactive because there are some moves in the buffer. So the planner wait 32 moves to disable the unused extruder. 2014-07-13 21:52:32 +02:00
Dim3nsioneer
8a32c5395b renaming the disable inactive extruder feature 2014-06-02 14:07:02 +02:00
Dim3nsioneer
29e7639933 Add switch unused feeder(s) off
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.
2014-06-02 08:13:09 +02:00
whosawhatsis
856edfcc0d Fixed math
This is why I wanted to sleep on the code I wrote while falling asleep
rather than immediately submitting a pull request.
2014-01-31 08:43:11 -08:00
whosawhatsis
d24df7af2c M200 implementation 2014-01-31 00:54:19 -08:00
fsantini
6ae7f7870d Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into ErikZalm
Conflicts:
	Marlin/Configuration.h
	Marlin/Marlin_main.cpp
2013-12-23 12:20:32 +01:00
Erik van der Zalm
8349fc89a4 Fixed planner bug 2013-12-16 11:40:23 +01:00
fsantini
b64661070e Fixed the plane vector equation to a simpler one (only dependent on the normal)
Removed the calculation of the inverse matrix since the rotation matrix is orthogonal, therefore inverted == transposed.
Much simpler and mathematically robust.
2013-12-06 21:32:21 +01:00
Alex Borro
253dfc4bc1 Bed Auto Leveling feature
Check the Readme for instruction how to enable and configure the feature
2013-09-29 13:20:06 -03:00
Erik van der Zalm
ff6fa09ecf Moved corexy implementation from stepper to planner
(Thanks iquizzle)
2013-06-09 13:10:06 +02:00
Erik van der Zalm
c8dcc7c208 Allow increasing the software PWM frequency. 2013-06-09 12:52:49 +02:00
Erik van der Zalm
971ec35135 Expanded M302 to allow setting the temp 2013-06-02 17:36:23 +02:00
Robert F-C
40eb07bad4 Revert and extend previous change pin check change
Reviert previous change of #if BLAH_PIN > 0 to #if defined(BLAH_PIN) &&
BLAH_PIN > -1. Unfortunately some times pin 0 is used. For my sins I've
gone through and replaced all unsafe checks of #if BLAH_PIN > -1 with
the safe version.
2013-05-22 21:33:23 +10:00
Erik van der Zalm
6c45c3f4e7 BariCUDA changes 2013-05-16 19:01:12 +02:00
Erik van der Zalm
bd2cd4903e Added #ifdef BARICUDA around the BariCUDA changes 2013-05-14 23:56:32 +02:00
Jordan Miller
37f3199df3 fixed problems in planner with solenoids for BariCUDA when set to 0 2013-05-14 23:35:01 +02:00
Jordan Miller
fbd899a37d Support for BariCUDA Paste Extruder derived from MakerBot Frostruder. Using Ultimachine RAMBo board. M126/M127 and M128/M129. 2013-05-14 23:34:45 +02:00
midopple
a65a26d6b4 If CORE_XY is in use X and Y Axis had to be activated at the same time 2013-05-05 19:23:59 +02:00
Simon Oliver
93f0463b21 Allow Edit menu to call fn after edit; Fix PID Ki and Kd display in menus; Actually use changed PID and Max Accel values
Add new 'callback' edit-menu types that call a function after the edit is done. Use this to display and edit Ki and Kd correctly (removing the scaling first and reapplying it after). Also use it to reset maximum stepwise acceleration rates, after updating mm/s^2 rates via menus. (Previously, changes did nothing to affect planner unless saved back to EEPROM, and the machine reset).

Add calls to updatePID() so that PID loop uses updated values whether set by gcode (it already did this), or by restoring defaults, or loading from EEPROM (it didn't do those last two). Similarly, update the maximum step/s^2 accel rates when the mm/s^2 values are changed - whether by menu edits, restore defaults, or EEPROM read.

Refactor the acceleration rate update logic, and the PID scaling logic, into new functions that can be called from wherever, including the callbacks.

Add menu items to allow the z jerk and e jerk to be viewed/edited in the Control->Motion menu, as per xy jerk.

Conflicts:
	Marlin/language.h
2013-04-12 13:31:30 +02:00
daid303
0f3f5d083d Minor cleanup of the new FAN_KICKSTART code. #334 2013-01-10 11:08:45 +01:00
Kevin O'Connor
3d91bd486c Add "kick fan" feature - briefly run fan at full speed on start.
Add a feature to run the cooling fan at full speed for a small period
(default 100ms) when first starting the fan.  Some fans wont reliably
start spinning at low power, and many fans have issue with the PWM at
low power.  However, once the fan starts spinning it can reliably be
set to a wide range of PWM values.
2013-01-08 18:50:15 -05:00
Kevin O'Connor
3f2f94ef28 Be consistent in setting of the fan PWM.
Always set the FAN PWM value in check_axes_activity() and always use
the value of the active move if a move is active.
2013-01-08 18:49:18 -05:00
oni303
ab09fa4bbf fixed pwm generation at pin D12 and D13 when one of them is used as FAN_PIN on Sanguino, added soft pwm entry for FAN_PIN in temperature.cpp 2012-12-16 01:36:57 +01:00
daid303
6a9bee27cc Changed the naming of some LCD functions, so the names match better what the function does. Also moved around some prototypes for general cleanup. 2012-12-03 12:52:00 +01:00
daid303
94ea26ff46 Some minor changes on code style. And a bugfix where the counters for positioning in the stepper where wrong depending on compiler settings. (Caused strange values to reported back with M114 and endstop triggers). Also fixed compiling with FWRETRACT enabled. 2012-12-03 12:13:20 +01:00
Erik vd Zalm
b98fb17fe9 Small FREQUENCY_LIMIT changes 2012-11-21 20:17:44 +01:00
daid303
8f20562f49 Fix some of the crowded code style. And fixed the conditional. #300 2012-11-12 15:49:40 +01:00
daid303
72586eb30a Solved few warnings. 2012-11-12 09:29:12 +01:00
daid303
06b58a9c4f First cleanup. Moved all code to cpp files, so there are no dependencies on pde files. And no more odd requirement to cat files together. (Still need to fix the Makefile). Also cleaned up some defines and made defines upper case as by C coding conventions. 2012-11-06 12:06:41 +01:00
stohn
de0448343f added KILL_PIN support / cleaned up manage_inactivity function definition 2012-08-21 14:48:29 +02:00
Erik van der Zalm
b67dacdc8f Fixed AD595 define 2012-06-11 17:33:42 +02:00
Daid
7244aa7eb7 Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into Marlin_v1 2012-05-19 17:38:46 +02:00
Erik van der Zalm
ba96059203 add additional dropsegments test 2012-05-16 19:21:44 +02:00
zittix
fbd91ab0b5 Fixes #153 for bad call to abs() 2012-05-16 18:17:34 +02:00
Erik de Bruijn
e3fe1f0d00 Made a more granular configuration possible PREVENT_LENGTHY_EXTRUDE. You can now decide to allow/disallow large length of extrusions to be executed.
Turning off the protection might be beneficial to those who want to do fast and long reversals.
2012-05-08 17:44:08 +02:00
Erik van der Zalm
67cf105bc6 Fixed AUTOTEMP (M109 S215 B260 F1 starts autotemp)
Changed SLOWDOWN. IF this does not work ok OLD_SLOWDOWN is the old algo.
2012-04-15 19:17:33 +02:00
Erik van der Zalm
4ca2f336f0 Changed default MINIMUM_PLANNER_SPEED -> 0.05
Fixed small bug in arcs
M105 prints now actual_temp/target_temp
2012-04-01 16:23:40 +02:00
Erik van der Zalm
61e09e6be2 Added FAN_PIN -1 checks 2012-03-08 22:09:49 +01:00
Erik van der Zalm
116dc86b8a Fixed type in e-jerk 2012-03-04 23:09:13 +01:00
Erik van der Zalm
e056bf8081 Added E-Jerk 2012-03-04 16:34:58 +01:00
Erik van der Zalm
aac7aa3bf0 Queued fan control. Issue #90 2012-03-04 13:05:26 +01:00
Erik van der Zalm
cb0c84e075 Merge remote-tracking branch 'justblair/master' into Marlin_v1 2012-03-03 20:20:55 +01:00
Blair Thompson
046a8e0039 Added more defines to the language.h file so that nowe most of the text strings are now configured via this file. Still got some hunting down to do to complete this task. 2012-03-03 15:51:47 +00:00
Daid
88d289caa1 Made plan_buffer_line arguments const, which optimizes better and fixes the RUNOUT_PREVENTION feature. 2012-02-29 11:38:12 +01:00
Erik van der Zalm
b48d67ce10 Fixed homing 2012-02-27 18:31:40 +01:00
Erik van der Zalm
018c567abf Moved SLOWDOWN function. (jetty840)
Included AD595 calibration options. (daid)
2012-02-26 16:23:47 +01:00
Erik van der Zalm
84ea2d61e8 Moved gen7 boards to motherboard type 10, 11 and 12.
Split ramps1.3 in Sprinter like config and multiextruder config.
2012-02-24 23:34:41 +01:00
Erik van der Zalm
5aa9c41ab1 Changed comment mode for detection.
Added M221 extuder multiply factor.
2012-02-24 20:42:07 +01:00
Erik van der Zalm
ae3e7586c6 Added HOME_POS. This adds the posibility to make the center 0
Updated the Xsteps ... settings via the LCD menu
2012-02-22 18:07:56 +01:00
Erik van der Zalm
a0a1f81913 various changes 2012-02-21 20:17:28 +01:00
Erik van der Zalm
b58eae7657 Corrected e-length calculation in planner 2012-02-11 18:36:42 +01:00
Erik van der Zalm
6ef8459494 Corrected distance calculation. (thanks jv4779) 2012-02-09 19:53:06 +01:00
Erik van der Zalm
abb7e63906 fixed z-disable bug. 2012-02-05 21:14:55 +01:00
Erik van der Zalm
e45e5c68bb Added support for Gen3+ (Pins file only)
Added late z enable. (blddk request)
Only calculate look ahead if >2 moves in buffer.
Removed some FORCE_INLINE to save memory.

Signed-off-by: Erik van der Zalm <erik@vdzalm.eu>
2012-02-05 12:42:15 +01:00
Bernhard
3c1a4aac2b header file simplification 2011-12-22 12:38:50 +01:00
Erik van der Zalm
84d9cf7339 merging 2011-12-12 20:35:46 +01:00
Erik van der Zalm
e017228569 Merged multiple extruder support.
Soft PWM. (Sanguinololu can also have PID temperature control)
Interrupt save WRITE for addresses > 0x0FF
2011-12-12 19:34:37 +01:00
Bernhard
2bc5e7ec9e prevent too long extrudes, or too cold extrudes 2011-12-09 15:09:52 +01:00
Denis B
4fd75dc813 Working version of multiple extruders (up to 3)
- The temperature control is pretty much complete
  (not sure what to do w/ autotemp though)
  Changed the pins assignment to clearly separate bed and extruder heaters
  and temp sensors, changed a bit how termistor tables are handled.
- The steppers control is rudimentary
  (only chanages what pins it uses depending on the active_extruder var,
   but that's enough for switching extruder in the start.gcode in the
   the profiles)
- Tested only w/ RAMPS 1.4
2011-12-06 00:09:16 -05:00
Erik van der Zalm
95a0b28acb Merge branch 'Marlin_v1', remote-tracking branch 'origin/Marlin_v1' into Marlin_v1 2011-12-04 19:54:43 +01:00
Erik van der Zalm
af22e9cd38 Some advance modifications 2011-12-04 19:54:07 +01:00
Bernhard
7714b98da7 solved some compiler warnings that are now visible in arduino 1.0.
Found a couple of unused variables, that I commented.
Tried to solve the program memory warning message, and failed.
2011-12-04 12:40:18 +01:00
Bernhard
dfd240b260 overworked autotemp, removed one layer of nesting from the ultralcd. 2011-12-04 09:48:53 +01:00
Erik van der Zalm
6b86f15686 More 2nd extruder implementation. (Not usable)
Advance (not tested)
2011-12-02 17:45:05 +01:00
Bernhard
311627141b Merge branch 'smallopt' into Marlin_v1
Conflicts:
	Marlin/temperature.h
2011-11-28 21:36:01 +01:00
Erik van der Zalm
f75f426dfa Removed interrupt nesting in the stepper ISR.
Add serial checkRx in stepper ISR.
Copied HardwareSerial to MarlinSerial (Needed for checkRx).
2011-11-27 21:12:55 +01:00
Bernhard
26a1de1e44 force inline 2011-11-27 16:04:58 +01:00
Bernhard
f8e170a44b planner optimization by inline functions 2011-11-27 14:57:12 +01:00
Erik van der Zalm
aad4b75b94 First parts 2nd extruder 2011-11-26 17:33:25 +01:00
Bernhard
191f36b493 slowdown 2011-11-25 23:59:30 +01:00
Erik van der Zalm
c0f8c9fd72 Seperate ENDSTOP_INVERTING for X Y and Z
Added simple endstop filter.
Corrected M114 count display.
2011-11-25 13:43:06 +01:00
Bernhard Kubicek
379ea642e1 make tuneing sub-menu. 2011-11-20 16:05:42 +01:00
Erik van der Zalm
4e5becfc51 Added endstop reporting 2011-11-20 14:50:08 +01:00
Bernhard Kubicek
f52e1a9571 autotemp working, default=disabled. 2011-11-19 17:07:44 +01:00
Bernhard Kubicek
8a08b8e07e trying to get autotemp to work. 2011-11-19 15:37:10 +01:00
Bernhard Kubicek
a9c7da06e3 and changed ultipanel to have the mm/sec and not mm/min
Merge branch 'Marlin_v1' of https://github.com/ErikZalm/Marlin into Marlin_v1

Conflicts:
	Marlin/Marlin.pde
	Marlin/ultralcd.h
2011-11-15 22:50:43 +01:00
Bernhard Kubicek
36958ee305 minor changes and first not-well working version of autotemp 2011-11-09 22:09:16 +01:00
Bernhard Kubicek
72ace55e6a better visibility of public/private/imported variables 2011-11-06 23:34:40 +01:00
Bernhard Kubicek
79d1bfb5c0 made many possible variables static, so they cannot be used extern. 2011-11-06 19:36:29 +01:00
Bernhard Kubicek
1d171e9e52 reformating and some minor bugs/things found on the way. 2011-11-06 19:23:08 +01:00
Bernhard Kubicek
b9ea0651ec Revert "this is not working. Do you maybe know why?"
This reverts commit 8bcdb9f5f0.
2011-11-05 16:49:29 +01:00
Bernhard Kubicek
8bcdb9f5f0 this is not working. Do you maybe know why? 2011-11-05 16:43:44 +01:00
Bernhard Kubicek
40e8081623 changed end of line to windows, which seems to be the majority of developers main platform. 2011-11-05 14:19:57 +01:00
Bernhard Kubicek
00674af3a8 merge from the branch bkubicek/Marlin/zalmmerge 2011-11-05 14:13:20 +01:00
Erik van der Zalm
094afe7c10 Merged Marlin, Marlin non gen6 and Ultimaker changes 2011-11-04 18:02:56 +01:00