Welcome! Log In Create A New Profile

Advanced

New experimental firmware 0.78c-dc42

Posted by dc42 
New experimental firmware 0.78c-dc42
July 15, 2014 10:47AM
I've released new firmware at [github.com] (follow the link to the version you want and press the Raw button to download). This version is compatible with web interface 0.95 and later, available at [github.com].

Changes since 0.78a-dc42:

* G10 can now be used to retrieve the active and standby temperatures as well as set them

* 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. This should be set to the approximate extra PWM value needed (on a scale of 0-255) per extra degC of heater temperature.

* Adjusted default PID parameters for lower overshoot and less oscillation

* The M0 and M1 commands now turn the heaters off instead of to standby

* The web server status poll response now includes the selected tool number

* Bug fix: the M122 command only outputs LWIP stats if debug is enabled. Prevents a hang if no USB cable is connected when M122 is executed.

* Bug fix: the I and D parameters were set to incorrect values (by a factor of 2) when the M301 and M304 commands were used. They also reported the incorrect values.

* Bug fix: when axis or bed compensation was enabled, a homing move to seek for one endstop could be prematurely terminated by another endstop

* Bug fix: using G10 to set only the active temperature caused the standby temperature to be set to an undefined value, and vice versa

* Bug fix: when powering up or resetting the Duet, the heaters used to power on for a short time

Cumulative differences from 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

* When doing Z homing or bed probing, the speed is reduced when the Z probe reading exceeds 90% of the target value, for more accurate homing

* 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 PWM 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.

* M0 and M1 commands now turn all heaters off instead of setting them to their standby temperatures

* 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.

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

Edited 1 time(s). Last edit at 07/15/2014 04:12PM by dc42.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: New experimental firmware 0.78c-dc42
July 15, 2014 12:52PM
Great job, dc42! I'm surprised how many differences from the official RRP firmware have been added to your fork, but most of them are a huge improvement IMHO. I've finished merging in all changes from the official 0.89 RRP firmware into my fork, although it's still somewhat experimental. I hope I can integrate your changes for 0.78c sometime soon. Keep up the good work thumbs up

There are only two things left I'd love to see to be added to your web interface:
- Would it be possible to move the layer height box from the settings page to the print status?
- When the page is reloaded on another device, it would be great to see the current print status. I wanted to check this already, but I haven't had time to do this yet. Maybe I'll do this later.
Re: New experimental firmware 0.78c-dc42
July 15, 2014 01:30PM
Quote
zombiepantslol
- Would it be possible to move the layer height box from the settings page to the print status?

If you add the following line in the slic3r start gcode than layer height determination is automatic, and is displayed on the print status page:

; layer_height = [layer_height]

Quote
zombiepantslol
- When the page is reloaded on another device, it would be great to see the current print status. I wanted to check this already, but I haven't had time to do this yet. Maybe I'll do this later.

That would need quite a lot of work. At the start of a print, the web interface requests the fileinfo, from which it gets the object height, filament required, and layer height (if available). The web interface also monitors changes in the reported absolute extruder position, from which it works out the filament consumed since the start of the print. To make this info available on a newly connected web interface, you would need to:

1. Report the name of the file being printed, so that the new browser session can display it and query the fileinfo;

2. Have the firmware track the filament consumption since the start of the print, instead of the web interface tracking it.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: New experimental firmware 0.78c-dc42
July 15, 2014 03:35PM
Hi David,

All seems well now - you have fixed all of my problems.
running your new firmware and web interface.

setbed worked properly

Thank you
Paul

PS. Printing new duet and X4 box in the morning, I think it is about a 6 hour print.


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Re: New experimental firmware 0.78c-dc42
July 16, 2014 10:00AM
Quote
dc42
If you add the following line in the slic3r start gcode than layer height determination is automatic, and is displayed on the print status page:

; layer_height = [layer_height]

I see, that's why I never saw the layer height on the print status. Since Slic3r 1.1.6 all parameters are appended to the g-code anyway, so IMO it would make sense to read it from there if it isn't found at the start. In fact I've changed this in my fork already, so it's working without any extra start g-code. But thanks for pointing me to the right direction!

Quote
dc42
That would need quite a lot of work. At the start of a print, the web interface requests the fileinfo, from which it gets the object height, filament required, and layer height (if available). The web interface also monitors changes in the reported absolute extruder position, from which it works out the filament consumed since the start of the print. To make this info available on a newly connected web interface, you would need to:

1. Report the name of the file being printed, so that the new browser session can display it and query the fileinfo;

2. Have the firmware track the filament consumption since the start of the print, instead of the web interface tracking it.

Alright, I was assuming the firmware would keep track of the filament consumption independently from the web interface, but this makes it a little more difficult. I may change that in a future release though.
Re: New experimental firmware 0.78c-dc42
July 23, 2014 03:20PM
Hi dc42,

in the 078 firmware is ATX power on/off (M80 and M81 ATX power on/off commands are supported) supported.


How can i use this? If i send M81 manually, the ormerod atx is till powered on.

Greetings
Re: New experimental firmware 0.78c-dc42
July 23, 2014 03:59PM
To use it, you have to remove the PS_ON jumper from the ATX board and connect the PS_ON pin on that jumper to the PS_ON output of the Duet. However, you also need to add a resistor on the Duet board, between TR7 gate and source.

Then you have to either power the Duet 5V supply from the ATX +5VSB output, or add a pushbutton between PS_ON and ground so that you can turn the Ormerod on.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: New experimental firmware 0.78c-dc42
July 23, 2014 05:37PM
Quote
dc42
However, you also need to add a resistor on the Duet board, between TR7 gate and source.

I do? I have been using this feature for a while, but have no extra resistor there. I have had no issues though, what could malfunction if I do not have that resistor?
Re: New experimental firmware 0.78c-dc42
July 23, 2014 05:46PM
Quote
jstck
Quote
dc42
However, you also need to add a resistor on the Duet board, between TR7 gate and source.

I do? I have been using this feature for a while, but have no extra resistor there. I have had no issues though, what could malfunction if I do not have that resistor?

Now that I come to think about it again, you don't need the resistor if you are powering the Duet 5V rail from +5VSB from the ATX PSU.

If instead you have JP9 installed to power +5V from +12V so that power can be removed from the Duet completely, then the problem is that as the 3.3V power goes down, the Duet pin that drives TR7 gate goes sufficiently positive to turn TR7 on enough to turn the ATX PSU on again. The resistor prevents this.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: New experimental firmware 0.78c-dc42
July 23, 2014 06:20PM
I am going to update my firmware to this version, so I have a couple of questions since there are a lot of new commands that I belive I need to edit manually:

Do I change my config.g file from DC42s github with my original config.g file (with changes made to match my IP address)?
Do I need to write the MAC address or can I erase that command?
I dont see a T1 command in config.g anywhere - does that mean its not needed to change (slic3r) or add (cura) the T1 command to G-code files?
Can I erase the commands for "4 points for bed probing" and "axis compensation"? If I worked without them before, why not continue like that..
Should Z probe say P2 (DC42s Kit 3)?
What are the tfree/post/pre.g files for?
What are tool1 and adc correction?

Did I miss something? What else do I need to be aware of and/or change and/or add?

Edited 3 time(s). Last edit at 07/24/2014 10:36AM by Sardi.
Sorry, only registered users may post in this forum.

Click here to login