Commit graph

203 commits

Author SHA1 Message Date
David Crocker
b30e6ad4e1 Version 0.78p
Fixed bug that caused the cooling fan PWM frequency to be 165kHz. It is
now 25kHz.
Fan RPM is now included in the web interface status response (thanks
zpl).
Many more error messages are now reported to the web interface as well
as the USB interface.
Interrupt-driven network timer task to better cope with slow SD card
writes (thanks zpl)
Module SamNonDuePin is now used for all digital and PWM pin I/O.
2014-08-29 21:38:14 +01:00
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
13f2ab5bfd Version 0.78k
Fixed combined xyz move bug (thanks zpl). Reversed default direction of
X motor. Added support for M569 command. Fixed bug in execution of M503
command via web interface.
2014-08-20 08:36:28 +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
83d2732fd9 Version 0.78i
Changed compiler optimization option to -O2 (was accidentally reset to
-Os in previous release)
Set the number of decimal places reported in the responses to various M
commands
Integrated zpl's changes to returning lists of files, returning info for
file being printed, and some network layer changes
2014-08-11 15:16:15 +01:00
David Crocker
2a818bcfc0 Version 0.78h
Added a few more improvements from RRP's dev branch
Corrected M201 output
Added a few more minor fixes
2014-08-03 11:17:48 +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
8bab7ab035 Version 0.78d-dc42
M116 now accepts a P parameter so that you can wait just for the heaters
associated with a particular tool
M220 and M221 commands report the current override factor if no S
parameter is provided
Multiple "Filament used" values from gcode files are reported to the web
interface
Active and standby temperatures for all heaters are reported to the web
interface
Bug fix: defining a tool with no drives or no extruders would cause it
to use a collection of drives or extruders depending on the values of
un-initialised array elements
Bug fix: running a macro file would reset the extruder position to a
value depending on what extrusion (if any) was requested by the last
movement command in the macro file
2014-07-17 00:28:26 +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
David Crocker
85eb922504 Fixed FTP bug and added binary (version 0.65k-dc42)
Fixed buffer overrun bug in FTP LIST command that caused a subsequent
FTP delete command to crash. Increased file list buffer to 2000 bytes.
Added binary RepRapFirmware-057k-dc42.bin.
2014-07-05 15:47:45 +01:00
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
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
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
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
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
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
zombiepantslol
dbb2a442a1 Fixed G31 for Z endstop switch 2014-04-30 15:37:42 +02: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
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