Commit graph

64 commits

Author SHA1 Message Date
David Crocker
3520c24546 Version 0.78m preliminary
1. Fixed  variable name of extrusion factors in JSON status response
2. Fixed bug: changing heat sample interval no longer messes up I and D
pid factors.
3. Ensure that name of file being printed is null-terminated.
4. Removed redundant function SetStepHypotenuse.
2014-08-24 22:49:01 +01:00
David Crocker
46d78148b0 Version 0.78j
Refactored printing to strings and web server json response handling in
preparation for adding support for LCD display via serial link
Added a timer to record how long block writes to SD card take
2014-08-17 22:14:33 +01:00
David Crocker
30b67ff40a Version 0.78g
Fixed bug: if 5 point bed compansation was used then doing G32 more than
once would try to move the head off the edge of the bed unless the first
4 probe coordinates were reset between them.
Fixed bug: if the last command in a a macro file did not end in newline
then it might not be fully executed
Bug fix: potential array underrun in Gcodes::Pop()
Reduced Z dive height back to 5mm
2014-07-30 15:54:17 +01:00
David Crocker
b9d6994ba5 Version 0.78f-dc42
M563 command extended to allow the tool number origin to be adjusted. If
there is no P parameter in the command then the S parameter specifies an
offset to be added to tool numbers in T, G10, M104 and M109 commands.
This is so that multi-media gcode files generated by slic3r can be
printed without having to edit all the tool numbers in the gcode file
first. This extension is intended to be temporary, until slicer provides
a mechanism for specifying the tool numbers. A separate offset is
maintained for each data source (USB, web or SD card) and the offset for
data from the SD card is reset to zero when a new file is started. To
use this facility to print slic3r multi-media gcode files, add M563 S1
to your start gcode.

M104 and M109 commands now accept an optional T parameter to specify the
tool number, as generated by slic3r in multi-media gcode files.

Movement code from RepRapPro's dev branch incorporated, including
5-point manual or automatic bed compensation mechanism.

Heater status (off/standby/on) is included in the status poll response
for the web interface. This will be used in a future version of the web
interface.

Incorporated code from RepRapPro dev branch to allow many more
M-commands to return values as well as set them.

Incorporated code from RepRapPro dev branch to implement the M119 and
M135 commands. There is currently a bug in the M135 (set heat sample
interval) command, which means that if you change the interval from its
default value of 0.5 seconds then you need to adjust the I parameter by
the same ratio and the D parameter by the inverse ratio.

Extrusion totals are reset to zero when starting a new print from SD
card.
2014-07-28 18:02:14 +01:00
David Crocker
ba77d05bc3 Version 0.78e-dc42
M301 and M304 commands to set PID parameters now take an additional S
parameter. This allows for variations in cartridge heater power and
supply voltage to be taken into account more easily.
Temperature errors are reported to the web server as well as to USB.
The Heat section of the M122 diagnostics report now shows the
accumulated PID I-term.
G90 and G91 commands now affect only the the axes, not the extruders.
Bug fix: numerous calls to strncat were being made with a 'nchars'
parameter that was larger than space available in the destination
buffer.
Bug fix: print moves received just prior to an M109 or M190 command were
not executed until after the heater had reached temperature instead of
before.
2014-07-21 10:39:52 +01:00
David Crocker
71037ee4cd Version 0.78c-dc42
Bug fix: using G10 to set oly the active temperature caused the standby
temperature to be set to an undefined value, and vice versa
G10 can now be used to retrieve the active and standby temperatures as
well as set them
Bug fix: I and D parameters were set to incorrect values when the M301
and M304 commands were used. They also reported the incorrect values.
New T parameter added to M301 and M304 commands, to allow the I term to
be preset to a suitable value when PID kicks in
Adjusted default PID parameters for lower overshoot and less oscillation
Bug fix: when axis or bed compensation was enabled a homing move to seek
for one endstop could be prematurely terminated by another endstop
M122 command only outputs LWIP stats if debug is enabled. Prevents a
hang if no UDB cable is connected when M122 is executed.
Bug fix: when resetting, the heaters used to power up for a short time
M0 and M1 commands now turn the heaters off instead of to standby
Web server status poll response now includes the selected tool number
2014-07-15 15:17:41 +01:00
David Crocker
57704f033b Merge RRP's 0.78 version and my 0.65k version 2014-07-06 19:57:21 +01:00
Adrian Bowyer
2b96c2b6f6 Version 0.78
Release.
2014-07-03 13:10:36 +01:00
David Crocker
73724a4b9a Merged RepRapRro's 0.65e version in
Merged changes (mostly to handle multiple tools i.e. extruders) from
RRP's 0.65e version.
2014-06-04 17:39:36 +01:00
David Crocker
75829fcaad File upload + other improvements
Added new request code rr_data for file uploading, and made other
changes to improve file upload speed.
Implemented S parameter to M208 command, to allow the negative limits of
axes to be set. Also reports current limits of no X/Y/Z parameter.
Reduced max reported free buffer size to 950 bytes to avoid problems
with file upload from Windows 8.1.
2014-05-18 20:57:14 +01:00
Jean-Marc Giacalone
ecb93ffcf6 Merged version065 from duet branch. 2014-04-24 21:44:16 +01:00
Adrian Bowyer
33cf94e0cf Z probe averaging fixed. Loop timer added (try M122). Code reverted to the point where it worked... 2014-04-10 15:56:47 +01:00
Adrian Bowyer
17b533fe2e Incorporating some of dc42's enhancements. This compiles BUT IT HASN'T BEEN TESTED. Use with extreme caution. 2014-04-07 22:15:19 +01:00
David Crocker
92fefbf598 Fixed G32 auto bed compensation
Fixed bug introduced at version 057o-dc42 that broke the G32 bed
compensation. Added the Z heights of the bed compensation points to the
information displayed by M111 S2. Simplified the code that does
Z-probing in fast and slow stages. Added function sncatf and used it to
simplify the code in several places.
2014-03-26 18:07:49 +00:00
David Crocker
b1558648cb Movement speed fix & ultrasonic z-sensor support
1. Fixed bug whereby the first XY move after a Z move would often be at
a speed much higher than requested.
2. Added support for direct-mode ultrasonic sensor using command M558
P3. Command M558 P4 selects differential-mode ultrasonic sensor.
3. Changed temperature parameter in G31 command from T to S.
2014-03-23 22:26:41 +00:00
David Crocker
21d688ece0 Various improvements
Tidied up axis homing tracking.
When checking endstops, wait for move to complete before accepting
further moves, otherwise subsequent moves use the wrong coordinates.
Temperatures and Z probes are now monitored continuously using a tick
interrupt to kick off ADC conversions. ADC is now run in 12-bit mode.
Thermistor readings are passed through averaging filters. Thermistors
are monitored for overheat conditions and bad readings in the tick ISR
and the appropriate heater is turned off (useful because the main loop
sometimes gets suspended while trying to do USB communication).
Use watchdog timer to monitor the tick interrupt - needs patch to
Arduino Due core library. Add facility to test watchdog timer (M111
S1001). Added an error status word to record that errors have occurred
(e.g. over-temperature).
M111 command changes so that S0 turns debug off, S1 turns debug on, S2
reports free memory - also now reports the type of the last restart and
the error status word. Fixed problem whereby M111 debug reports were not
sent to the web interface.
Implemented M999 command, which resets the Duet.
Removed an unused variable.
Changed some more "char*" to "const char*".
Changed extruder PID parameters and added more explanation for them.
2014-03-02 23:26:14 +00:00
David Crocker
2b7b9fc505 Fixed error with z-homing in previous release
Fixed a random hang after z-homing in the previous release. Also make Z
probe temperature coefficient default to zero always, and Z probe
calibration temperature default to current bed temperature always.
2014-02-25 00:32:04 +00:00
David Crocker
92c17dede2 Various changes relating to zprobe and non-volatile data
1. Z-probing is now done in two stages: a fast stage at the configured
home feed rate until within 10% of the target value, then a slow stage
at 20% of that feed rate.
2. Provisional support for ultrasonic Z-probe.
3. Added calibration temperature and height temperature coefficient to Z
probe parameters.
4. Z-probe parameters and Z-probe type are now saved to flash memory so
that they survive power-off and reset cycles. Separate parameters are
retained for IR and ultrasonic probes in case both are fitted.
5. Fixed issue with doing slow Z-moves immediately after Z-homing or
probing.
2014-02-24 14:17:11 +00:00
Adrian Bowyer
a91f650dd9 Now that a number of people are working on this code, I have been going
through making the comments more copious, especially in the .h files.
W.I.P.
2014-02-21 16:39:02 +00:00
Adrian Bowyer
fedd74750f This commit DOESN'T WORK. Use the next one or the previous one. This is an intermediate commit done merely to facilitate the moving of files between machines. 2014-02-20 21:22:25 +00:00
Adrian Bowyer
1129fa218f Added in David Crocker's improvements (many thanks to him). 2014-02-11 11:23:28 +00:00
David Crocker
2d61bba024 G32 and G92 improvements
1. G92 with a Z value now sets exactly that Z value even if bed
compensation is in effect.
2. If G32 is run before the Z axis is homed, the first bed probe in the
G32 sequence homes the Z axiws.
2014-02-07 23:06:20 +00:00
Adrian Bowyer
0ea1b57328 First implementation of the optimised maximum speed in any direction code. This is still buggy. To print with, use the previous release. 2014-01-16 17:49:59 +00:00
Adrian Bowyer
8f97865c4a Started work on improvements to the velocity constraints. Not fully implemented, but this will mean that the maximum velocity in any movement direction will be the constraint, regardless of the mix of X, Y and Z moves. This has been tested, and is printing. But beware funny velocity effects... 2014-01-14 21:05:27 +00:00
Adrian Bowyer
8ee075289d Updating master branch to include David Crocker's improvements. Plus a little tidying. 2014-01-13 17:07:18 +00:00
Adrian Bowyer
6188eff455 Some tidying. Increased SD delay to 20ms. 2014-01-12 17:35:56 +00:00
Adrian Bowyer
ed16ce9682 Updating master branch to bring in homing improvements from the duet branch. 2013-12-23 21:42:58 +00:00
Adrian Bowyer
10bf338aa4 Homeing after bed transform applied bug fixed in the duet branch. The master branch will be updated after some further testing. The problem was the X endstop. If X is homed, that stop is triggered. Homeing Y then only moves Y, and so only the Y endstop is tested. But when the transform is applied X moves slightly when Y is homed (as it should) and the X endstop stoped the movement prematurely. You will need to update the files on the SD card as well as the firmware to activate the fix. 2013-12-21 16:46:42 +00:00
Adrian Bowyer
96818433c6 Making master branch the same as the duet branch. 2013-12-14 12:03:25 +00:00
Adrian Bowyer
7215696e8b Function added to set hypotenuse lengths for multi-axis steps. These were previously computed on initialisation, but are now re-done after every M92. 2013-12-07 18:56:56 +00:00
Adrian Bowyer
2022e8ab28 Various bits of file tidying... 2013-12-05 17:24:53 +00:00
Adrian Bowyer
d29058cf9d Bug in Z probing (the Move class had no function to return the number of probe points) fixed. 2013-12-05 13:22:01 +00:00
Adrian Bowyer
dd978290b5 Emergency stop added to the web interface (and Home All taken away, as you almost never want to home Z with the other two.) SD files tidied. 2013-12-04 15:36:26 +00:00
Adrian Bowyer
1a8ffb2d00 Second degree (ruled quadratic surface) bed plane compensation added. Probe three points to get plane compensation. Probe 4 [0 = min, 1 = max: (x0, y0), (x0, y1), (x1, y1), (x1, y0) in that order] to get second degree compensation. Also M115 print version added. 2013-12-03 14:46:28 +00:00
Adrian Bowyer
f0b7da252b M561 reset bed transform to identity added. 2013-11-29 10:55:43 +00:00
Adrian Bowyer
409af6bb11 Manual Z probing added to G30 (see http://reprap.org/wiki/G-code). 2013-11-28 11:57:38 +00:00
Adrian Bowyer
c0b7b4bace Working on the ether/USB problem. The network can now be disabled (#define NETWORK in Configuration.h). With it disabled the USB works with or without a network cable plugged in. With it enabled the USB only works with a network cable plugged in too. You have to wait for the ether to reinitialise (ether socket lights go out for a couple of secs, then come on, then the green one starts flashing) before trying to talk via the USB. The ether is initialised before config.g is run, so the IP is the one defined in platform.h. The network is disabled in this commit. The heaters are set on by 0, not 1 (i.e. Duet board v0.6 or later). To change this see #define HEAT_ON in platform.h 2013-11-26 13:38:23 +00:00
Adrian Bowyer
c7286905b2 Ability to specify bed Z probe points added. See M505. 2013-11-15 22:04:52 +00:00
Adrian Bowyer
bd51a7c3f0 Fixed Timer overflow bug. 2013-11-13 23:23:31 +00:00
Adrian Bowyer
8b3931c8cf Memory diagnostics added. Mem usage is printed whenever you turn debugging on (even if it is already on). 2013-11-13 18:16:43 +00:00
Adrian Bowyer
6c22f30600 Axis angle compensation code added. Briefly tested in XY plane. Seems to work. More testing is probably needed... 2013-11-12 16:47:41 +00:00
Adrian Bowyer
0c7e13a73e Current position boxes added to web interface, and polled along with temperatures. 2013-10-30 15:04:38 +00:00
Adrian Bowyer
676bbab6a1 Fixed a bug whereby long extrudes simultaneous with short XY moves were constrained by the XY upper velocity and acceleration limits, rather than those for extrusion. Normally you want extrusion to be subservient to XY. But (typically when a retraction is being recovered during an XY move) the extrusion limits should constrain the XY move, not the other way round. 2013-10-27 16:21:21 +00:00
Adrian Bowyer
e1601d7b3f Various bits of code tidying. Lookahead fixed to take account of bed transform (we can no longer assume that Z moves are strictly orthogonal to XY moves, and so their scalar product may be non-zero). All velocities are now in mm/s internally. The GCodes class is responsible for multiplying mm/min by 0.0166667. 2013-10-24 16:53:25 +01:00
Adrian Bowyer
3c901fb194 Further work on Z probing. One problem was working with a white-painted bed. Replacing that with ordinary Kapton-covered glass seems to work better. And that has allowed the debugging of the code. But the probe still does not always see the bed. 2013-10-21 23:09:21 +01:00
Adrian Bowyer
79c008d469 G31 modified to allow reporting of probe values, and setting of a Z value and threshold. (See http://reprap.org/wiki/G-code#G29-G32:_Bed_probing) 2013-10-20 22:48:26 +01:00
Adrian Bowyer
eadac593cc Z probing now works using Jean-Marc's idea. Much better. 2013-10-19 17:38:31 +01:00
Adrian Bowyer
de96171b5d Z probe code improved, but still not there. It now uses hysteresis to
track up the low-precision slope of the IR probe before measuring down
the high-precision slope near 0 mm.  But this means that the probe has to
be set only a fraction of a mm higher than the nozzle itself.  Also (at
the moment for safety) the code thinks Z = 0 occurs when it is actually
0.2mm.  This is easy to fix when the rest is reliable.
2013-10-17 23:18:57 +01:00
Adrian Bowyer
565117cba3 Move and ancilliary classes changed to store coordinates in machine units not mm internally to avoid cumulative errors. 2013-10-17 16:30:24 +01:00
Jean-Marc Giacalone
c108131a14 Disable probing in Z axis endstop check. 2013-10-09 11:47:34 +01:00