Additional functionality in 0.78g-dc42 release compared to RRP 0.78: * The Duet can serve all the files needed by the web interface * All ADC readings are done in the tick ISR to avoid the processor having to wait for ADC conversions and provide faster thermistor and z-probe response. * Additional over-temperature protection is done in the tick ISR, and the watchdog timer resets the system if the tick interrupt fails. * A software watchdog is used to reset the processor if it gets stuck in a spin loop. * Printing doesn't hang if the USB port is disconnected (or attached PC goes to sleep) during a print. * The number of bits of temperature resolution is increased from 10 to 13 (i.e. 12-bit ADC + 1-bit oversampling) to increase the temperature resolution * Thermistor parameters and ADC corrections can be set (M305 command). * M208 command allow you to set axis minimum positions (e.g. negative x-axis position) as well as maximum positions. * G1 commands with S1 parameter (i.e. seeking for endstops) do not need to be followed by a G92 command to work properly. The positions assumed to have been reached when endstops are hit are those set by the M208 command. * Long filename support for files on the SD card * The limit of 42 files in the list of gcode files on the SD card is removed (but there is still a limit of 2000 characters) * M220 (set speed factor override) and M221 (set extrude factor override) commands are supported. * Option to invert cooling fan PWM * Additional z-probe type 3 is supported, for z-probe boards that incorporate more than one type of z-probe (e.g. my hot end boards) * Separate G31 parameters can be saved for z-probe types 0, 1/2, and 3 * Various parameters (G31 values, IP address, MAC address, thermistor parameters, PID parameters) are saved to flash memory (note that these values do not survive a firmware upgrade) * M122 diagnostics command shows additional parameters such as bed compensation heights, last reset reason, and up-time * When pausing a print from SD card, if the printer is executing a 'wait' command such as M116, control is returned to the web interface immediately, without waiting for the command to complete (which could take a long time). * The USB port is responsive immediately after power up or reset even when no Ethernet cable is connected * A new file upload protocol supports much faster uploading of any type of file, without a limit on line length, and with a check that the file length is correct when the upload is complete. * M80 and M81 ATX power on/off commands are supported * M999 software reset command is supported * M301 and M304 commands to set PID parameters now take an additional T parameter. This should be set to the approximate extra PWM value needed (on a scale of 0 to 255) per extra degC of temperature. It is used to preset the I-term to a suitable value when PID kicks in, to enable fast heating with minimum overshoot. * 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. * M0 and M1 commands now turn all heaters off instead of setting them to their standby temperatures * When using a Z probe, Z homing and bed probing are done in two stages (a fast stage followed by a slow stage) for better accuracy. * M116 takes an optional P parameter to specify which tool to wait for. If no P parameter is given, it waits for all tools and the bed as before. The main purpose of this is that on a tool change, you can wait for the new tool to heat up to operating temperature but not wait for the old tool to cool down to standby temperature. * When fetching file info, if the gcode file contains more than one 'filament used' comment, the filament lengths in all of them are returned to the web interface * The active and standby temperatures of all heaters are included in the status poll response * The default initial Z homing and bed probing speed has been increased. This is possible because Z homing and bed probing slow down when the probe reading is approaching the target value. * The M220 and M221 commands now return the override factors if no S parameter is provided * 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 * 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 0.89 dev version incorporated, including 5-point manual or automatic bed compensation mechanism. A bug fix to this was added in version 0.78g. * 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 0.89 dev version to allow many more M-commands to return the existing values as well as set them. * Incorporated code from RepRapPro 0.89 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. * FTP server supported (thanks zombiepantslol) * Telnet server supported (thanks zombiepantslol) * Bug fix: uploading file whose name includes an uppercase G now works. Similarly for setting a machine name containing an uppercase G (M550) or password containing an uppercase G (M551) * Bug fix: if the machine name in an M550 command is followed by a tab character, then the name is assumed to terminate just before the tab character. Similarly for passwords set using M551. * Bug fix: setting a machine name that contains a quote or backslash character no longer causes the webserver to return a bad JSON response in response to the rr_name request * Bug fix: indentation of multipart messages sent to the USB interface now works properly * Bug fix: if G10 was used to set just the active temperature for a tool, then the standby temperature for the same tool was set to an undefined value, and vice versa * Bug fix: if bed compensation or axis compensation was in use, then a G1 S1 command to home an axis could be prematurely terminated if the head was already at the endstop position for a different axis * Bug fix: if a tool was defined as using zero drives or zero extruders, it would be treated as assuming a collection of drives or extruders according to the vales in an uninitialised array * Bug fix: the cumulative extruder positions were getting reset (typically to zero) on a tool change or other macro file execution * 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 * Bug fix: if the last command in a macro file did not have a newline character at the end then the command might not be fully executed Additional functionality in web interface 0.95 compared to RRP 0.65: * Faster (>6Mbytes/min), more reliable file uploading, with reporting and graceful recovery if an upload fails * All web files and config files can also be uploaded * More accurate (usually!) estimate of print completion time, based on filament consumption * The machine name is displayed * The filament requirement and object height are fetched automatically from the SD card file being printed, for use in estimating the completion time * Works with FireFox as well as Chrome * "Upload & Print" button (replaces direct web print button, uploads to the SD card first for more reliable printing) * The extruder position box reports total filament extruded, instead of the amount extruded in the last move * Additional status Halted is shown (if emergency stop has been used) as well as Ready and Active * The Print Status tab includes slider controls to allow the speed and extrusion factor to be adjusted during printing