Commit graph

173 commits

Author SHA1 Message Date
Adrian Bowyer
2b96c2b6f6 Version 0.78
Release.
2014-07-03 13:10:36 +01:00
David Crocker
4eaeac108b Merged in zpl's changes for FTP and Telnet 0.65k)
Merged in zpl's changes. The FTP server is not yet reliable, in
particular trying to delete a file via FTP after copying another may
result in the Duet rebooting due to the webserver module getting stuck
in a spin loop. Also the copied file has on one occasion been observed
to be shorter than the original.
2014-06-28 18:21:01 +01:00
David Crocker
8169d96d52 More bug fixes
Corrected returned values of speed factor and extrusion factor
When setting the machine name and password, stop at the first control
character, and remove trailing spaces
2014-06-21 22:53:27 +01:00
David Crocker
fe2b31a550 Version 0.65i
Improved speed of response to M220 command
Limit length of text returned in response to rr_name web command, stop
on first control character, and escape and quote or backslash characters
2014-06-21 14:01:23 +01:00
David Crocker
6ce679160c Bug fix (version 0.65h-dc42)
Fixed bug (inherited from RRP 0.65e source) whereby a M109 command would
crash the Duet if an invalid tool was selected
2014-06-18 18:20:24 +01:00
David Crocker
90b9272527 Bug fix to M190 command (0.65g)
M190 command no longer sets the standby temperature. Also removed old
binaries.
2014-06-15 00:32:26 +01:00
David Crocker
e94b299a88 Bug fixes
Got M221 command working again (broken by last merge)
Fix issue with printing Treito's file after a pause and reset
2014-06-09 18:23:56 +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
08f7d2e9b1 Support HTTP requests longer than TCP MSS
Changed webserver to support HTTP requests that span multiple TCP
messages. Changed upload code to to block file writes direct fro the
received message. Increased maximum upload message size. Changed
fileinfo command to report layer height and what program generated the
gcode file, if available.
2014-06-01 21:07:47 +01:00
David Crocker
9366ef8e84 Allow network requests to span multiple TCP pkts
Incoming network requests can now span multiple TCP messages. Max upload
buffer increased to 2048. Also return layerHeight and generatedBy values
when asking for fileinfo on a gcode file. This is an interim commit that
needs cleaning up before release.
2014-06-01 10:51:33 +01:00
David Crocker
8464b5bfac 059d-dc42 release
1. Reworked network layer to be more robust in the presence of network
errors (hopefully). In particular, don't release transmit buffers if
they might still be needed to retry sending data because the ACK got
lost.
2. Fixed bug whereby fileinfo command looked for the print height and
filament used if the extensio was .gcode or .gc or .gco but not if it
was .g.
3. When the M25 (pause print) command is received, pause the current
gcode so that commands such as M116 (wait for temperatures) can be
interrupted.
2014-05-29 23:14:55 +01:00
David Crocker
ce0a2a799a Faster and more reliable file uploading
Rewrote the web server command parsing as a state machine. Added support
for persistent connections, used for file uploading. Changed file upload
protocol to pass status information back. Added web message type for
deleting files.
2014-05-23 22:27:35 +01:00
David Crocker
156aa79c07 New file upload protocol
Introduced new file upload protocol that doesn't use gcodes and allows
upload errors to be reported back. Changed file system interface in
Platform to return success/fail status of Write and Close calls to
support this.
2014-05-22 16:30:55 +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
David Crocker
a416c367d2 Various bug fixes and enhancements (version 0.59a)
Fixed bug whereby incoming gcodes were URI-decoded twice, which could
cause problems if a comment contain a % character
Fixed bug whereby M109 and M190 waited for all heaters to reach target
temperature instead of just the one involved
Fixed bug whereby files whose names contain an uppercase letter G could
not be uploaded or deleted
Increase buffer size for incoming gcodes
Removed parameter to set max PWM value in M106 command. Max PWM value is
now 255 as per recent RepRapPro change.
Changed the code that deals with dropping characters in unimportant
messages sent to USB such that we only drop characters at the end of a
line (adding ".\n" to whatever we send) or drop whole lines
2014-05-14 22:04:14 +01:00
Adrian Bowyer
fa64e8b5aa Version 0.65e.
Turn Z probe type 2 LED on even if an M558 P1 is sent.  This means that a Probe 2 will
emulate a Probe 1 if the user mistakenly sends M558 P1 to it.  Also both Probe 1
and Probe 2 will work properly if they are properly selected (as before).
2014-05-13 22:00:47 +01:00
David Crocker
b7701832bc Made MAC address depend on IP address
Made the last 4 bytes of the MAC address the same as the IP address so
that multiple Duets can be connected on the same network
2014-05-09 07:39:22 +01:00
Adrian Bowyer
e796a7466a Version 0.65d.
There were some bugs that surfaced if one tried to set variables (like accelerations) for extruders
if no tool had been selected.  Those should be fixed here so
that attempting such things now sets parameters for the first extruder drive if
no tool has been selected.
2014-05-08 22:33:29 +01:00
Adrian Bowyer
dfeed15d53 Version 0.65c. The way that the Webserver class responds to a poll request
has been altered to send the X, Y, Z, and E coordinates first, followed by temperatures.
It was the other way round.  This led to compatibility problems between versions as
the experimental multiple tool versions (duet branch V0.70+) report many temperatures
and this was confusing the X Y Z stuff if the temps came first.  We can only realistically have one
live version of reprap.js (served from RepRapPro's Github to all running machines), so reprap.js
now expects coordinates first, and both this master version and all future master and experimental
versions will do that.
2014-05-08 21:17:14 +01:00
Adrian Bowyer
ad4a451bed Version 0.65b. This version fixes the incompatibility between the
code in the web interface and the firmware.  The web expects to select tool T1
when it changes temperatures.  The firmware now also uses T1.
2014-05-07 18:42:54 +01:00
Adrian Bowyer
4104ff461b Version 0.65a. This allows the MAC address for the Duet to be set in config.g (q.v.),
which allows multiple Duets to be on the same network.
2014-05-07 18:17:44 +01:00
David Crocker
ceae4df7a1 Fix jerky SD card printing when no network cable
Fixed problem whereby gcode files printed from SD card that used lots of
small fast moves in sequence would print jerkily if a network cable had
not been connected since reset.
Fixed problem whereby object height and filament needed were not
retrieved from the SD card file to be printed if the filename contained
spaces.
Added support for deprecated M190 command, because slic3r appears to
generate it sometimes
Added support for M564 command to allow movement without limits, copied
from RepRapPro dev branch
2014-05-05 18:47:22 +01:00
David Crocker
6c1aeb0277 Close file if necessary after network error
If a network error occurs when sending a file, we now close that file,
otherwise we would use up open file entries. Also added number of
available open file entries to M111 S2 command.
2014-05-02 20:37:57 +01:00
David Crocker
11bb293b10 Fixed file handling for pause/resume
Fixed bug in file handling that affected SD card pause/resume
operations. Merged changes from zombiepantslol to allow a height to be
set for a Z endstop switch. Reverted to blocking USB I/O but only for
debug and M503 output. Added return codes for file close and seek
operations. Increased the size of the tail of the file that we scan for
G1 Z commands from 32K to nearly 200K.
2014-05-01 01:49:37 +01:00
David Crocker
406a0c074f Fixed nested file bug, other minor changes
Fixed a bug when one file was called from another
M111 S2 command now displays time since last reset
M106 'I' parameter now only inverts fan PWM when >0
Non-homing moves when bed probing are now done at max speed
M999 reset command now delays 0.5 second to allow response to be sent
back to browser, otherwise it may retry the reset
2014-04-29 23:21:31 +01:00
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
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
d44d715526 Version 065. Merged in Tony's stuff. Added M code to allow machine to move outside the box.
Added code to parse argument lists like G1 X10 E1.5:3.2:-2
2014-04-15 16:20:13 +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
Adrian Bowyer
61ea528fba Tool class created. This will allow tool definitions with multimple drives and heaters. Blank for the moment... 2014-04-11 16:31:06 +01:00
Adrian Bowyer
e14d2de613 Fixed bug whereby pausing a print then starting a new one failed to close the old GCode file. 2014-04-11 16:12:37 +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
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
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
db3f5adda9 Tidied up http/lwip interface
Removed file httpd.c and moved its functions into Network.cpp. This
gives us type-checking across more interface boundaries and eliminates a
number of global functions. Also removed unused files fs.c, fsdata.c,
httpd-original.c.
2014-04-07 13:10:39 +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
9149a1eb3a Fix M201 issue and support long filenames
When processing an M201 command, leave the acceleration of any axis that
is not specified as the existing value instead of setting it to a silly
value.
Corrected Platform.cpp to work with long filenames - note that this fix
requires a commented-out section of code in file ff.c in the SD_HSMCI
library to be re-instated.
2014-03-28 22:14:46 +00: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
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
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