Commit graph

48 commits

Author SHA1 Message Date
David Crocker
a8e9029478 Work around SDHC stack bug
Reduced block read size when retrieving file info to work around an
intermittent bug that causes the SDHC card/ FATfs stack to return data
from the wrong sector sometimes. Tidied up some other code.
2014-04-28 01:13:00 +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
aa55c61e1d Changed the way the step ISR decides when to step
Changed the step interrupt service routine to use the average step size
when calculating the step interval, instead of the actual step size
which depend son whether X and Y are moving simultaneously. This should
give smoother movement, because from an inertial point of view the axes
are independent. It also fixes a bug whereby the accelerations were
incorrectly calculated, because DDA::AccelerationCalculation assumes a
uniform step size directly from start point to end point, whereas the
ISR was assuming a zigzag path. Also fixed bug with resetting the
minimum z-probe value seen when using an ultrasonic transducer in
differential mode.
2014-03-25 14:04:11 +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
e848a48e86 Various changes
1. Fixed bug introduced at version 57r whereby axis travel limits were
not applied properly.
2. Increased maximum travel on 2nd phase of Z-probing from 1mm to 10mm
3. Added parameters R (thermistor 25C resistance) and B (thermistor
beta) to M301 command
4. Added support for M304 command with same parameters as M301 command
5. PID and thermistor parameters are now saved to flash memory
2014-03-05 20:02:49 +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
David Crocker
1450276081 Fix to DDA acceleration calculation
Fixed problem with DDA acceleration calculation identified by rayhicks
2014-02-18 13:30:40 +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
David Crocker
bcd902ffba Fixed thin-layer Z-axis printing problem
Fixed problem whereby when printing in thin layers, the z-axis stepper
would try to move too fast, resulting in missed steps. This was because
the lookahead code was setting incorrect z-move velocities when a Z-move
was preceded by an extruder-only move.
2014-01-12 15:59:57 +00:00
David Crocker
c09afc035b Fixed slow printing over USB
Fixed printing over USB and via HTTP so that it uses the same lookahead
mechanism as for printing from SD provided the data arrives fast enough.
Added an incoming buffer for data arriving from USB. NOTE: Pronterface
needs to be patched  to send the data fast enough for this to work well.
Also changed signatures of some member functions to be const-correct
2014-01-11 20:56:53 +00:00
Adrian Bowyer
be1a790c47 Added more efficient canned cycle for when all three axes are being homed. 2013-12-23 21:25:40 +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
4feab9afce Homing modified to correspond with Ian's documentation... 2013-12-19 18:53:17 +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
a4d8f41271 G31 now waits for moves to end before measuring/reporting. G30 implemented. Has argument Pn n = 0,1,2 - takes probe reading at current XY and calls them point n for the purpose of bed plane calculation. Add an S field on the last probe (i.e. when n=2 usually, though you can do them in any order) to get it to fit the bed plane. 2013-11-27 22:59:37 +00:00
Adrian Bowyer
7b9894e543 M206 implemented. This commit has the ethernet enabled and heaters set on by 1 (i.e. Duet v0.5 or below). 2013-11-26 15:12:24 +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
1792c68b49 Heater logic inverted for Duet v0.6. Remember to set HEAT_ON to 1 in platform.h for earlier versions, and to set it back _and_recompile_ before doing a commit for Duet v0.6 of higher 2013-11-25 16:39:46 +00:00
Adrian Bowyer
c9f2cb2b0b Removed tiny buggette in the heat timing code. 2013-11-19 21:57:59 +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
f907e2253e All responses to GCodes routed through a single function in the class GCodes
to allow the firmware to emulate how other firmware (e.g. Marlin) responds.  Emulation not yet implemented, but should now be easy.
2013-11-11 17:39:17 +00:00
Adrian Bowyer
e8eafeda22 Hooks added for (I hope) the final and complete set of all parameter-changing
M Codes that we will need.  Network initialisation delayed until after the
config.g file is run, to allow machine name etc to be set from that.
2013-11-10 19:39:13 +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
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
Adrian Bowyer
49e9bc29c3 G92 Implemented. Tested interactively, but not from a G Code file. Should work though. 2013-09-27 18:15:49 +01:00
Adrian Bowyer
1d0968c615 Z probing now fully implemented, except for the physical probe itself. (I.e. it's all working, but is still on the microswitch.) 2013-09-14 15:39:17 +01:00
Adrian Bowyer
bb89947e12 Z probing movements all implemented, but Z values not yet recorded. 2013-09-14 00:14:37 +01:00
Adrian Bowyer
d525597ebb Z probing being implemented under G32. Not finished yet, so don't call G32... 2013-09-13 22:33:14 +01:00
Adrian Bowyer
027ddf3b8e Code added to add a bed plane z = aX.x + aY.y + aC to all movements.
Note that this means that X/Y minimum speeds and accelerations now take
precedence over Z, unless there is only Z movement.
2013-09-13 13:05:25 +01:00
Adrian Bowyer
07d323a41d Setting up latest Due code to work on the Duet. 2013-08-28 16:36:38 +01:00
Jean-Marc Giacalone
5aba3f3649 turned on diagnostics. 2013-08-07 16:49:48 +01:00
Jean-Marc Giacalone
982846e7e0 project into Eclipse. 2013-08-05 12:19:54 +01:00
reprappro
d44c133348 Firmware Web interface part working (loads one page, but not two...) 2013-02-17 18:31:12 +00:00
reprappro
8635fde719 Minor tidying. 2013-01-13 20:56:24 +00:00
Adrian Bowyer
f4da09dbfb Finalising (probably not...) the structure. 2012-12-22 16:47:47 +00:00
Adrian Bowyer
0e3c762f99 First commit - some work remains... 2012-11-20 17:23:07 +00:00