New beta firmware 1.20.1RC2 and DuetWiFiServer 1.20+1
-
@dc42
May I ask what development IDE you are using, Arduino or Atmel Studio (or other)?We use Eclipse, see the BuildInstructions.md file in github.
Arduino is great for getting novices into programming microcontrollers, but truly awful for large scale firmware development. Atmel Studio is OK and I use it for the IR sensor and filament sensor firmware, but it offends those who think that only open source tools should be used or who want to develop under Linux.
-
I use VisualMicro - Its an add-on to Visual Studio that enables to program and upload code for Arduino.
I found it a very good environment for programming. -
I'm familiar with it. I just can't come to terms with Atmel Studio. Professionally I use a derivative of Eclipse; Atollic True Studio which is hard to beat feature-wise.
-
Hi David, I think I have discovered why I am seeing underextrusion when I use M592 on my Kossel XL fitted with a flex3drive extruder. With A and B set to 0, the x/y motion and the extruder activity start/stop at the same time (as close as I can tell by eye/ear). When I set non-zero values (e.g A=0.015 and B=0.0012) I notice that the extruder stops before the x/y movement stops. The faster the feedrate, the more obvious the gap becomes.
Here's the relevant config lines:
[[language]] M350 I1 X16 Y16 Z16 E16 ; all axes use x16 microstepping with interpolation (steps/mm will get adjusted automatically) M92 X160 Y160 Z160 ; Set axis steps/mm (20 tooth pulleys, 0.9deg/step motors) M906 X1000 Y1000 Z1000 E1000 I60 ; Set motor currents (mA) M201 X3000 Y3000 Z3000 E400 ; Accelerations (mm/s^2) M203 X18000 Y18000 Z18000 E1200 ; Maximum speeds (mm/min) M566 X300 Y300 Z300 E10 ; Maximum instant speed changes M92 E4320 ; Set extruder steps per mm (flex3drive)
-
There was a report earlier about DWC "layer X of Y" showing the wrong numbers for dual extrusion prints. I have a similar issue with the start (only) of a single layer print. At the end of this message, I'll include a link to the gcode file being referenced, but let me describe what is going on:
When the print starts (waiting for tools to heat), the DWC shows layer 0 of 111.
When the print moves to the part of the gcode that displays a message "Purging and Wiping T1", the DWC shows layer 2 of 111. This part of my startup code does two Z movements before moving on to the real print.
When the print moves on the build plate and actually starts printing the first layer (identified in the gcode with the comment "; layer 1, Z = 0.162"), DWC still shows "layer 2 of 111" and the head position Z is correctly noted as 0.16
When the print moves to the next layer (identified in the gcode with the comment "; layer 2, Z = 0.342"), DWC still shows "layer 2 of 111", and the head position Z is correctly noted as 0.34
Finally, when the print moves to the next layer (identified in the gcode with the comment "; layer 3, Z = 0.522"), DWC finally catches up showing "layer 3 of 111."
My WAG is that my startup gcode that does the "purge and wipe" is confusing the duet because of multiple Z moves up and down. However, if that's the case, I don't understand how it "catches up" at layer 3. If my guess is correct, is there something I can include in my gcode to let the duet know that "here is where the actual print starts, so reset the layer to 1"?
gcode file: https://drive.google.com/file/d/1MWXt1cxYU0ZMMG2RMMgH25-8_ynrjyHl/view?usp=sharing
Thanks
Gary -
Hi David, I think I have discovered why I am seeing underextrusion when I use M592 on my Kossel XL fitted with a flex3drive extruder. With A and B set to 0, the x/y motion and the extruder activity start/stop at the same time (as close as I can tell by eye/ear). When I set non-zero values (e.g A=0.015 and B=0.0012) I notice that the extruder stops before the x/y movement stops. The faster the feedrate, the more obvious the gap becomes.
Here's the relevant config lines:
[[language]] M350 I1 X16 Y16 Z16 E16 ; all axes use x16 microstepping with interpolation (steps/mm will get adjusted automatically) M92 X160 Y160 Z160 ; Set axis steps/mm (20 tooth pulleys, 0.9deg/step motors) M906 X1000 Y1000 Z1000 E1000 I60 ; Set motor currents (mA) M201 X3000 Y3000 Z3000 E400 ; Accelerations (mm/s^2) M203 X18000 Y18000 Z18000 E1200 ; Maximum speeds (mm/min) M566 X300 Y300 Z300 E10 ; Maximum instant speed changes M92 E4320 ; Set extruder steps per mm (flex3drive)
Thanks, I look into it.
-
I found the problem. I'll get a new 1.20.1RC out soon with a fix.
-
A new 1.20.1RC would be most welcome!
-
Any chance of a new RC? I am keen to try out the fixed M592.
-
I am working through bug reports at the moment, trying to get some fixes implemented before I release it. However, there is a pre-release Duet Wifi build at https://www.dropbox.com/s/8pvnkzaf0hqxf7x/DuetWiFiFirmware.bin?dl=0.
-
Thanks, I'm trying it now…
-
Appears to work as expected, testing PETG at 240C, 0.4mm v6, flex3drive extruder. Preliminary results indicate A=0.05, B=0.004 work well up to 3.5mm/S. From 4mm/S upwards, compensation not really effective which doesn't surprise me as I've never been able to reliably get much more than approx 6 mm^3/S out of the v6. Will continue to test but it's looking good so far.
-
Thanks for the feedback. I have not tested whether increasing the spring tension on my Titan affects the amount of nonlinearity.
-
The flex3drive extruder doesn't appear to have any means of adjusting the "grip" - hasn't been a problem so far except for some TPU like stuff I have which is only 1.55 dia and so I have to add some packing to the over-centre lever otherwise the filament slips. The extruder works OK but it's a shame that it doesn't have any means of adjusting for filament diameters that aren't close to 1.75.
-
Done some prints with M592 active and they look very good. I believe the quality in terms of extrusion amounts has been improved. Here's a couple of images…
-
Discovered an interesting side effect of the non-linear extrusion - now that it doesn't underextrude (so much) at the higher extrusion rates, I found that a print using TPU like filament failed because the extrusion rate on a skin layer increased sufficiently to reach the throughput limit of the extruder/hotend combo. So a gcode file that had printed OK before, now doesn't print well. The solution was to reslice the part with a reduction in the speed at which the skin was being printed so that the throughput limit was no longer being reached.
-
I did not get my machine to reproduce the slowdown issue I posted about in another thread. However, after updating to this firmware and printing for the last 30 minutes I checked the diagnostics and got the following:
[[language]] SENDING:M122 === Diagnostics === Used output buffers: 1 of 32 (16 max) === Platform === RepRapFirmware for Duet WiFi version 1.21RC0+1 running on Duet WiFi 1.0 + DueX5 Board ID: 08D6M-91AST-L23S4-7JTD8-3S86K-1PX1K Static ram used: 15448 Dynamic ram used: 100464 Recycled dynamic ram: 2872 Stack ram used: 3584 current, 8472 maximum Never used ram: 3816 Last reset 00:57:06 ago, cause: software Last software reset at 2018-01-22 15:05, reason: User, spinning module GCodes, available RAM 3536 bytes (slot 0) Software reset code 0x0003 HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0441f000, BFAR 0xe000ed38, SP 0xffffffff Error status: 8 [ERROR] Error status: 8 Free file entries: 8 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 177.8ms MCU temperature: min 27.9, current 28.9, max 29.3 Supply voltage: min 24.3, current 24.6, max 25.1, under voltage events: 0, over voltage events: 0 Driver 0: ok, SG min/max 0/1023 Driver 1: ok, SG min/max 0/1023 Driver 2: standstill, SG min/max 0/624 Driver 3: ok, SG min/max 0/237 Driver 4: standstill, SG min/max not available Driver 5: standstill, SG min/max 0/97 Driver 6: standstill, SG min/max not available Driver 7: standstill, SG min/max not available Driver 8: standstill, SG min/max not available Driver 9: standstill, SG min/max not available Expansion motor(s) stall indication: yes Date/time: 2018-01-22 16:02:33 Cache data hit count 4294967295 Slowest main loop (seconds): 0.179090; fastest: 0.000046 === Move === MaxReps: 4, StepErrors: 0, LaErrors: 0, FreeDm: 220, MinFreeDm 155, MaxWait: 4292717656ms, Underruns: 0, 0 Scheduled moves: 2116, completed moves: 2109 Bed compensation in use: none Bed probe heights: 0.000 0.000 0.000 0.000 0.000 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 Heater 0 is on, I-accum = 0.0 Heater 1 is on, I-accum = 0.1 === GCodes === Segments left: 1 Stack records: 4 allocated, 0 in use Movement lock held by null http is idle in state(s) 0 telnet is idle in state(s) 0 file is doing "G1 X318.756 Y289.891 E0.00223" in state(s) 0 serial is ready with "M122" in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Network state is running WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.20+1 WiFi MAC address a0:20:a6:16:e6:c6 WiFi Vcc 3.26, reset reason Turned on by main processor WiFi flash size 4194304, free heap 16832 WiFi IP address 10.0.0.115 WiFi signal strength -38dBm, reconnections 0, sleep mode modem HTTP sessions: 1 of 8 Socket states: 0 0 0 0 0 0 0 0 Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
-
Can you provide a link to your post in the other thread?
-
Can you provide a link to your post in the other thread?