Commit graph

228 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
f06527f67b Fix for slic3r 1.1.1
Changed code that looks for G1 Z commands to find object height, so that
it ignores G1 Z commands in the end-of-file comments added by slic3r
1.1.1
Increased max number of open files
2014-04-27 10:01:04 +01:00
David Crocker
2e154a3e91 Various
Added new variable "extr" in Json response to report extruder positions
Added new fileinfo request type, returns file size, object height, and
total filament needed (if available)
Fixed bug in returning last command response in Json response
Disable interrupts when adding/removing network request structs from
linked lists, in case lwip does callbacks from ISR contexts
2014-04-25 23:15:17 +01:00
Jean-Marc Giacalone
ecb93ffcf6 Merged version065 from duet branch. 2014-04-24 21:44:16 +01:00
David Crocker
d9c9fa8f59 Network startup & other changes
Changed network startup to avoid long delay if no network cable is
connected
Enable DHCP support if IP address is configured as 0.0.0.0 (not working
yet)
Move thermistor parameters to M305, added parameter to configure series
resistance
Added B and W PID parameters
2014-04-19 14:14:54 +01:00
David Crocker
0c85453ace Added libs; prepare network startup change
Added the libraries to the repository
Preliminary changes to fix slow startup when no network cable is
connected
2014-04-18 21:06:16 +01:00
David Crocker
f709cd082d Fixed USB output bug; added M80/M81 commands
Fixed problem with garbled USB output sometimes seen using version 057za
Added support for M80 and M81 commands
2014-04-16 10:35:40 +01:00
David Crocker
aaf6f7128e Better USB error recovery and diagnostics
Firmware now recovers from USB disconnection without halting. Needs
changes to Arduino core library.
Added a timeout in the Spin() functions, which causes diagnostic info to
be stored and the system to be reset if a Spin() function takes more
than 20 seconds.
2014-04-16 00:00:45 +01:00
Adrian Bowyer
4fa348306a Merge branch 'duet' of https://github.com/reprappro/RepRapFirmware into duet
Conflicts:
	GCodes.h
2014-04-15 16:17:15 +01:00
Adrian Bowyer
27191db607 Code to handle lists of parameters added to GCodes. 2014-04-14 22:53:23 +01:00
Tony
72005e7322 corrected merge error
Also added re-compiled binary
2014-04-14 16:45:07 -04:00
Tony
eccdef5709 M160 implemented
/*Fixed to work with multiple concurrent extruder drives:
*  Default or M160 S1 (set use only one extruder drive)
*    "G1 En.n" adds the float n.n to the move buffer for the selected
head
*  There is no change in behaviour for one extruder drive setups, or
multiple extruder
*  setups where only one drive is used at any one time.
*
*  M160 Sn (set to use "n" extruder drives) eg
*    "M160 S3"
*    "G1 En.n:m.m:o.o" adds the floats to the move buffer in the
following way:
*      moveBuffer[AXES+selectedHead) = n.n
*      moveBuffer[AXES+selectedHead+1) = m.m
*      moveBuffer[AXES+selectedHead+2) = o.o
*    so if selectedHead=0 move buffer ends up looking like this for a 5
extruder drive setup:
*    {x.x, y.y, z.z, n.n, m.m, o.o, 0.0,0.0, f.f}
*    where x,y,z are the axes and f is the feedrate.
*    If selected head > 0 then there is the possibility that more drives
can be set than
*    exist, in that case the last values are discarded e.g:
*    "T3"
*    "M160 S3"
*    "G1 En.n:m.m:o.o"
*    would leave the move buffer on a 4 extruder drive setup looking
like this:
*    {x.x, y.y, z.z, 0.0, 0.0, 0.0, n.n,m.m, f.f}
*/
2014-04-14 16:22:11 -04:00
Tony
ebc6cc393c Merge remote-tracking branch 'origin/duet' into selected_head_changes
Conflicts:
	Platform.h
2014-04-14 15:48:46 -04:00
Tony
e66d1cb4ea Merge RRP upstream changes 2014-04-14 20:04:02 +01:00
Tony
eb2645022c Merged RRP Changes 2014-04-14 14:55:18 +01:00
David Crocker
009a2045d0 Concurrent HTTP connection support & more
Completed changes to support multiple concurrent HTTP file requests.
Added support for new poll response for future support of additional
heaters and multiple extruders. Fixed a bug in reporting extruder
distance.
2014-04-08 13:20:06 +01:00
David Crocker
68e6ed2575 Preliminary version for serving all files for Duet
Changed webserver and network code to support multiple concurrent
connections
Removed support for differential-mode ultrasonic z-sensor
Reduced X and Y instantDv from 15 to 10 mm/sec to allow outlines of
holes to e drawn at lower speed
Changed temperature reading code to give thermistor disconnected reading
of -273C when there is a negative high ADC offset correction
2014-04-06 22:50:24 +01:00
David Crocker
9686ae924b ADC correction facility + absolute extruder moves
Added L and H parameters to the M301 and M304 commands to allow SAM3X
ADC offsets to be corrected for. Also attempted a fix for absolute
extruder movement. - but this will still be affected by rounding error.
Removed some old binaries.
2014-03-17 11:29:10 +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
Tony
6357a827f9 removed erroneous addition to previous commit 2014-03-03 20:16:33 +00:00
Tony
5325195f80 Support For two MCP4461 digipots
Required to support the Duet+ Duex4 or other expansion boards that use a
second MCP4461.
2014-03-03 20:13:24 +00:00
Tony
63ea3b0554 Check for the Selected head (selected tool).
This will allow for multi extruder printing support in future pull
requests. It works fine for single extruder setups as well as the
selected head is always E0.
2014-03-03 19:39:39 +00:00
Tony
799e69dca2 Merge pull request #1 from reprappro/duet
Duet
2014-03-03 00:07:50 +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
2305dc27c9 Fixed cooling fan support (M106 command)
Fixed M106 command so that the cooling fan is controllably by PWM and
works the right way round (0 = off, 1 = on). Also added optional P
parameter to specify the value that corresponds to maximum PWM.
2014-02-25 19:39:16 +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
1c749dba9e Continuing with adding comments to .h files 2014-02-23 16:50:58 +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
1129fa218f Added in David Crocker's improvements (many thanks to him). 2014-02-11 11:23:28 +00:00
David Crocker
fe0d5f38ee Improved PID parameters and made them configurable
Implemented M301 command to get/set PID parameters. Improved the PID
parameters and made minor changes to the PID algorithm to improve PID
performance with Ormerod hot end.
2014-02-08 23:52:24 +00:00
David Crocker
25ad6c9f85 Further improved web page loading speed
Adjusted TCP MSS and HTTP output buffer sizes to further improve speed
of serving web pages
2014-02-06 21:30:17 +00:00
David Crocker
3e4a22196b Web interface improvements
Increase TCP window size from 1 to 2 packets and increase maximum amount
of web data sent to 1460. This decreases the page load time fro a
Windows client fro 6 seconds to less than 1 second. It also fixes a
problem whereby when using a Ubuntu client, file upload and direct print
didn't work unless the reprap.js file was edited to reduce the maximum
amount of data sent per request. Also we now initialize unused memory
with known data so that in response to the M111 S1 command we can better
estimate the amount of free memory.
2014-02-05 17:58:05 +00:00
David Crocker
41daff3d26 Reverted a buffer size to fix random print hang
Reverted STRING_LENGTH to 1029 to avoid random print hangs that occurred
using 0.57f firmware. Reduced max reported buffer size to fit within
this. Report additional memory usage detail in response to M111 S0.
2014-01-31 17:35:55 +00:00
David Crocker
66c934a791 File upload improvements
Further increased upload speed
When uploading files, preserve comments
2014-01-30 16:24:58 +00:00
David Crocker
9edaed4ac1 Further improvements to web upload and tidy-up
Further improved web file upload speed
Dealt with Eclipse code analysis warnings
Made some more functions and parameters const-correct
2014-01-30 14:26:45 +00:00
David Crocker
bdca3b1e5d Extend web functionality for iamburny's web interface
Added new fields "zprobe" and "resp" to webserver poll response
Immutable string parameters are passed as const char* not char*
Increase max number of files displayed to 42
Range-check heater parameters in incoming commands to avoid buffer
overflow if heater number is out of range
2014-01-21 21:07:21 +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
Tony
34a63f9968 Merge remote-tracking branch 'upstream/duet' into duet 2014-01-14 21:03:02 +00:00
David Crocker
618304c021 Support for modulated IR sensor
Add code to support sensors that allow the IR output to be modulated, to
reduce the sensitivity to ambient IR. Use M558 P2 command to enable
sensor modulation. Also changed the sensor reading averaging code to
give more consistent z-height seeking.
2014-01-14 19:03:42 +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
14b247053f Removed legacy support for Duet v0.4 heaters. Last commit before changes to max velocity code. 2014-01-13 15:04:00 +00:00
David Crocker
ee70ee22ed Improve performance of SD card upload via USB
This change approximately doubles the speed of SD-card uploading via USB
to 2.2Mbyte/sec on the test system, provided that Pronterface has been
patched to not wait for an acknowledgement after sending each line of
g-code.
2014-01-12 16:02:49 +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
David Crocker
1e444839e0 Improved network recovery from errors and fixed small temp cal error
Improved network error recovery so that it it possible to reconnect
after some types of network error have occurred
Corrected calculation of temperatures to give more accurate results
towards the limits of the ADC range
2014-01-07 13:42:30 +00:00
Tony
93990445a7 Merge remote-tracking branch 'upstream/duet' into duet 2014-01-07 01:48:44 +00:00
Adrian Bowyer
e12bb99d2f Thermistor updates applied to the duet branch. 2014-01-06 21:50:35 +00:00
Adrian Bowyer
522ffffd9b Comment updated to reflect new thermistor values. 2014-01-06 21:41:24 +00:00
Adrian Bowyer
8a648bd31e Improved thermistor beta values. 2014-01-06 21:08:15 +00:00
Tony
676ba30dc9 Merge remote-tracking branch 'upstream/duet' into duet 2014-01-03 23:16:55 +00:00