PanelDueFirmware 3.2.6 released
-
@wilriker ```
code_text; executed by the firmware on start-up ; ; General preferences M80 G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"My Printer" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M584 X4 Y1 Z2:8:9 U7 E0:3:5:6 ; Driver Remap M569 P0 S1 ; Drive 0 goes forwards E1 M569 P1 S1 ; Drive 1 goes forwards Y M569 P2 S1 ; Drive 2 goes forwards Z M569 P3 S0 ; Drive 3 goes backward E2 M569 P4 S1 ; Drive 4 goes forwards X M569 P5 S1 ; Drive 5 goes forwards E3 M569 P6 S0 ; Drive 6 goes backward E4 M569 P7 S0 ; Drive 7 goes backward U M569 P8 S1 ; Drive 8 goes forwards z2 M569 P9 S1 ; Drive 9 goes forwards z3 M350 X16 U16 Y16 Z16:16:16 E16:16:16:16 I1 ; Configure microstepping with interpolation M92 X80.00 U80.00 Y80.00 Z1600.00:1600.00:1600.00 E424:424:424:424 ; Set steps per mm M566 X600.00 U600.00 Y600.00 Z24.00 E300:300:300:300 ; Set maximum instantaneous speed changes (mm/min) Jerk M203 X30000.00 U30000.00 Y30000.00 Z600.00:600.00:600.00 E3600.00:3600.00:3600.00:3600.00 ; Set maximum speeds (mm/min) M201 X3000.00 U3000.00 Y3000.00 Z120.00:120.00:120.00 E10000.00:10000.00:10000.00:1000.00 ; Set accelerations (mm/s^2) M906 X1000.00 U1000.00 Y1100.00 Z1100.00:1100.00:1100.00 E1000.00:1000.00:1000.00:1000.00 I50 ; Set motor currents (mA) and motor idle factor in per cent ;M84 S30 ; Set idle timeout ; Set idle timeout ; Axis Limits M208 X-270.2 U-225 Y-175 Z0 S1 ; Set axis minima M208 X225 U270.2 Y175 Z325 S0 ; Set axis maxima ; Endstops M574 X1 S1 P"!e1stop" ; configure active-low endstop for low end on X via pin E1 stop M574 U2 S1 P"!duex.e4stop" ; configure active-low endstop for low end on u via pin E4 stop M574 Y2 S1 P"!ystop" ; configure active-low endstop for high end on Y via pin Y stop M574 Z1 S2 ; configure Z-probe endstop for low end on Z Z axis Lead screw M671 X0:-320:320 Y238:-218:-218 S3 ; Z-Probe ;M558 P5 I0 R0.4 C"zprobe.in+zprobe.mod" H5 F1200 ; set Z probe type to effector and the dive height + speeds ;M558 P1 I1 F400 R1 T30000 A4 S-1 B1 C"zprobe.in" ; Analog M558 P8 I1 F400 R1 T30000 A4 S-1 B1 C"!zprobe.in+zprobe.mod" ; Digital (((((((((((Piezo)))))))))))) ;M558 P1 F300 H5 T30000 A3 S-1 C"zprobe.in+zprobe.mod" ; IR Probe G31 X0 Y0 U0 Z-0.15 P500 ; set Z probe trigger value, offset and trigger height M557 X-225:225 Y-170:170 P3:3 ; define mesh grid ; Heaters BED M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M143 H0 S100 ; set temperature limit for heater 0 to 100C M140 H0 ; map heated bed to heater 0 M307 H0 A171.3 C495.7 D0.8 S1.00 V24.2 B0 ; disable bang-bang mode for the bed heater and set PWM limit HEATER 1 M308 S1 P"e0temp" Y"thermistor" T100000 B4618 C5.127269e-8 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M143 H1 S280 ; set temperature limit for heater 1 to 280C M307 H1 A397.8 C226.9 D8.1 S0.90 V24.2 B0 ; PID HEATER 2 M308 S2 P"duex.e2temp" Y"thermistor" T100000 B4618 C5.127269e-8 ; configure sensor 2 as thermistor on pinduex.e2temp M950 H2 C"duex.e2heat" T2 ; create nozzle heater output on duex.e2heat and map it to sensor 2 M143 H2 S280 ; set temperature limit for heater 2 to 280C M307 H2 A329.2 C199.0 D6.6 S0.90 V24.2 B0 ; PID ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"fan2" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P2 S1 H-1 T45 X0.3 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"duex.fan3" Q500 ; create fan 3 on pin duex.fan3 and set its frequency M106 P3 S0 H-1 ; set fan 3 value. Thermostatic control is turned OFF M950 F4 C"duex.fan4" Q500 ; create fan 4 on pin duex.fan3and set its frequency M106 P4 S1 H2 T45 ; set fan 4 value. Thermostatic control is turned on M950 F7 C"duex.fan7" Q500 ; create fan 7 on pin duex.fan3and set its frequency M106 P7 S1 H-1 T45 x0.3 ; set fan 7 value. Thermostatic control is turned off ; Tools PTool number D Extruder drive(s) H Heater(s) F Fan(s) Tool 0 M563 P0 D0 H1 F0:1 ; Tool 0 uses extruder 0, heater 1 fan 0 and 1 G10 P0 X0 Y0 Z0 S0 R0 ; set tool 0 offsets and temperatures Tool 1 M563 P1 D1 H1 F0:1 ; Tool 1 uses extruder 1, heater 1 fan 0 and 1 G10 P1 X0 Y0 Z0 S0 R0 ; set tool 0 offsets and temperatures Tool 2 M563 P2 D2 H2 X3 F3:4 ; Tool 2 uses extruder 3 and heater 2 and maps X to U, use fan 3:4 as the print cooling fan G10 P2 Y-0.1 U0 Z0 S0 R0 ; set tool 1 offsets and temperatures Tool 3 M563 P3 D3 H2 X3 F3:4 ; Tool 3 uses extruder 3 and heater 2 and maps X to U, use fan 3:4 as the print cooling fan G10 P3 Y-0.1 U0 Z0 S0 R0 ; set tool 1 offsets and temperatures Tool 4 copy M563 P4 D0:1:2:3 H1:2 X0:3 F1:1 ; tool 4 uses both extruders and hot end heaters, maps X to both X G10 P4 X50 Y0 U-50 S0 R0 M567 P4 E1:1 M302 S120 R110 ; Allow extrusion starting from 120°C and retractions already from 110°C ; Custom settings are not configured ; Miscellaneous``` code_text M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2-beta4.1 running on Duet WiFi 1.02 or later + DueX5 Board ID: 08DGM-9T6BU-FG3S8-6JTDG-3S86T-TBKZD Used output buffers: 3 of 24 (15 max) === RTOS === Static ram: 24188 Dynamic ram: 102504 of which 40 recycled Never used RAM 3316, free system stack 191 words Tasks: NETWORK(ready,187) HEAT(blocked,308) DUEX(blocked,35) MAIN(running,450) IDLE(ready,20) Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:03:15 ago, cause: power up Last software reset time unknown, reason: User, GCodes spinning, available RAM 3316, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN Error status: 0x00 MCU temperature: min 27.5, current 32.1, max 32.4 Supply voltage: min 0.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: position 0, standstill, SG min/max not available Driver 1: position 0, standstill, SG min/max not available Driver 2: position 0, standstill, SG min/max not available Driver 3: position 0, standstill, SG min/max not available Driver 4: position 0, standstill, SG min/max not available Driver 5: position 0, standstill, SG min/max not available Driver 6: position 0, standstill, SG min/max not available Driver 7: position 0, standstill, SG min/max not available Driver 8: position 0, standstill, SG min/max not available Driver 9: position 0, standstill, SG min/max not available Driver 10: position 0 Driver 11: position 0 Date/time: 2020-12-16 18:25:00 Cache data hit count 253203812 Slowest loop: 5.11ms; fastest: 0.13ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 1.2ms, write time 0.0ms, max retries 0 === Move === FreeDm 169 (min 169), maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 15.60ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.25beta0 WiFi MAC address 80:7d:3a:45:5b:22 WiFi Vcc 3.33, reset reason Turned on by main processor WiFi flash size 4194304, free heap 26920 WiFi IP address 192.168.1.42 WiFi signal strength -62dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0 === DueX === Read count 1, 0.31 reads/min
-
@wilriker
now added this line to config.g M575 P1 B57600 S1. but bunch of stuff popping up at start. like (tool not selected) and more. but after that works . -
Hi, I have a multi-heater tool on my printer. It displays well in web control, but on the PanelDue the second and third heaters line up with the wrong tools (EDIT: actually, after rechecking they just aren't displayed. Only the first heater is visible). I'm running version 3.2.6 of the firmware but I believe this was the case in previous versions as well.
-
@soccerpaul said in PanelDueFirmware 3.2.6 released:
Hi, I have a multi-heater tool on my printer. It displays well in web control, but on the PanelDue the second and third heaters line up with the wrong tools (EDIT: actually, after rechecking they just aren't displayed. Only the first heater is visible). I'm running version 3.2.6 of the firmware but I believe this was the case in previous versions as well.
Yes, that is still a limitation of PanelDueFirmware. It will only display the first heater of each tool due to space constraints. 3.2.5 added support for a heater being shared across different tools (not your setup, obviously) which was also not supported earlier but multi-heater tools are not yet supported. I have some ideas on how to solve this but it might be a few releases out until I can really get to it. But right now release-cycle is pretty quick.
-
@Cobalt said in PanelDueFirmware 3.2.6 released:
M575 P1 B57600 S1
I got a "Error: Failed to communicate with PanelDue bootloader (no START signal received)."...
-
My fault: Forget to erase and reset...
Everything works fine.
Thank you!
-
@observatoer Hi there, did you get anywhere with this? i've just got the same message on a brand new 7i.
-
@R4ffers said in PanelDueFirmware 3.2.6 released:
@observatoer Hi there, did you get anywhere with this? i've just got the same message on a brand new 7i.
Upgrade RepRapFirmware to 3.2RC2.
-
@dc42 , ok will do. thanks.
-
@dc42, Hi there i've just noticed i'm running rrf3.1.1 on duet 3 with rpi4 even though i have run the sudo apt-get update sudo apt-get upgrade
-
@R4ffers that is the last stable version. You'll need to switch to the unstable repo to use the beta and release candidate versions.
; ref second paragraph https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Software_Installation
Edit: autocarrot
-
@bearer , thanks for that. Do you have to remove the stable package feed first?
-
@bearer ,sorted now thankyou
-
First: Thanks for your great work! Nice upgrade for me from PDF1.x to PDF3.x -> now a nice screensaver and so much more
my setup this post refers to: duet-ethernet1.4 -> from RRF3.1.x upgraded first to RRF3.2RC2, the actual install of PDF3.x was easy via "M9... S4"!
Just a curious thing hapened: When I use the paneldue to home all axis
and not do it via DWC, then the paneldue (and only paneldue not DWC)throws at the end when it sucessfully finished all homing, that the "homing failed" -> BUT in both paneldue & dwc the axis are marked as "homed" and can be jogged -> Is this just some wrong link to some message that is not intended to pop up OR (since it is the only thing I changed in between) could it be related to current-dimming of the motors which is the only thing I integrated in the homing files before upgrading from RRF3.1&PDF1.x (and I have not checked if it worked before upgrading)?homeall.g (Sorry: Please ignore those "{1}" since they are not present in my code but just on this website here(?)!):
; homeall.g ; called to home all axes ;M300 S300 P1000 ; beep a sound (requires piezo e.g. on the PanelDue it is integrated) S___ frey Hz, P___ in milli-sec M117 "homeall.g starts..." ; display message on screen, e.g. the PanelDue ;let the user aknowledge (double check) M291 R"Homing all axis?" P"make sure nothing is in the way" S3 ;T5 ;first check if any axes are not homed and optionally home them ;while iterations < #move.axes ; if !move.axes[iterations].homed ; check if each axis is homed ; M291 P{"Axis " ^ move.axes[iterations].letter ^ " is not homed. Home now?"} R"Axis un-homed" S3 ; continue or abort? ; M98 P{"0:/sys/home" ^ (move.axes[iterations].letter) ^ ".g"} ; home axis if answer is OK - G28 doesn't accept object variable so run macro ;if !move.axes[0].homed M98 P"homex.g" ; check for correct directory, default folder is /sys on sd-card ;if !move.axes[1].homed M98 P"homey.g" ; check for correct directory, default folder is /sys on sd-card ;if !move.axes[2].homed M98 P"homez.g" ; check for correct directory, default folder is /sys on sd-card ;M300 S300 P1000 ; beep a sound (requires piezo e.g. on the PanelDue it is integrated) S___ frey Hz, P___ in milli-sec M117 "...finished homeall.g" ; display message on screen, e.g. the PanelDue M292 ; clear all messages
homex.g (Sorry: Please ignore those "{1}" since they are not present in my code but just on this website here(?)!):
; homex.g ; called to home the X axis ;M300 S300 P1000 ; beep a sound (requires piezo e.g. on the PanelDue it is integrated) S___ frey Hz, P___ in milli-sec M117 "homex.g starts..." ; display message on screen, e.g. the PanelDue G53 ; use abs machine coordinates, without translation, tool-offset, ... G91 ; relative positioning ;lift z (to not hit anything): M98 P"z-do-lift.g" ; check for correct directory, default folder is /sys on sd-card M400 ;M913 does not wait and therfor needs an M400 in advance M913 X75 ;set current for defined motor in % of 100 as defined within M906 (in config.g) G1 H1 X{-(move.axes[0].max+10)} F1500 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F750 ; go back a few mm G1 H1 X{-(move.axes[0].max+10)} F100 ; move slowly to X axis endstop once more (second pass) M400 ;M913 does not wait and therfor needs an M400 in advance M913 X100 ;set current for defined motor in % of 100 as defined within M906 (in config.g) G1 H2 X2.5 F100 ; go to what shall be "0" (a little bit away from endstop) G90 ; absolute positioning G92 X0 ; set _ position to axis val__, in absolut coordinate system (G90) ;move Z back: M98 P"z-un-lift.g" ; check for correct directory, default folder is /sys on sd-card M564 S1 H1 ; Limit axis: S for boundaries 0=allow/1=limit; H for homing 0=allow/1=limit G90 ; absolute positioning G0 F1500 ; set min feed back G1 F1500 ; set min feed back M117 "...finished homex.g" ; display message on screen, e.g. the PanelDue
homey.g (Sorry: Please ignore those "{1}" since they are not present in my code but just on this website here(?)!):
; homey.g ; called to home the Y axis ;M300 S300 P1000 ; beep a sound (requires piezo e.g. on the PanelDue it is integrated) S___ frey Hz, P___ in milli-sec M117 "homey.g starts..." ; display message on screen, e.g. the PanelDue G53 ; use abs machine coordinates, without translation, tool-offset, ... G91 ; relative positioning ;lift z (to not hit anything): M98 P"z-do-lift.g" ; check for correct directory, default folder is /sys on sd-card M400 ;M913 does not wait and therfor needs an M400 in advance M913 Y75 ;set current for defined motor in % of 100 as defined within M906 (in config.g) G1 H1 Y{-(move.axes[1].max+10)} F1500 ; move quickly to Y axis endstop and stop there (first pass) G1 H2 Y5 F750 ; go back a few mm G1 H1 Y{-(move.axes[1].max+10)} F100 ; move slowly to Y axis endstop once more (second pass) M400 ;M913 does not wait and therfor needs an M400 in advance M913 Y100 ;set current for defined motor in % of 100 as defined within M906 (in config.g) G1 H2 Y2.5 F100 ; go to what shall be "0" (a little bit away from endstop) G90 ; absolute positioning G92 Y0 ; set _ position to axis val__, in absolut coordinate system (G90) ;move Z back: M98 P"z-un-lift.g" ; check for correct directory, default folder is /sys on sd-card M564 S1 H1 ; Limit axis: S for boundaries 0=allow/1=limit; H for homing 0=allow/1=limit G90 ; absolute positioning G0 F1500 ; set min feed back G1 F1500 ; set min feed back M117 "...finished homey.g" ; display message on screen, e.g. the PanelDue
homez.g (Sorry: Please ignore those "{1}" since they are not present in my code but just on this website here(?)!):
; homez.g ; called to home the Z axis ;M300 S300 P1000 ; beep a sound (requires piezo e.g. on the PanelDue it is integrated) S___ frey Hz, P___ in milli-sec M117 "homez.g starts..." ; display message on screen, e.g. the PanelDue G53 ; use abs machine coordinates, without translation, tool-offset, ... G91 ; relative positioning M290 R0 S0 ; clear any "baby"(/micro)-steps (they currently apply only to z), In RRF>=1.21 homing&||bed probing don't reset babystepping ;make sure z has some distance to endstops: M98 P"z-do-lift.g" ; check for correct directory, default folder is /sys on sd-card M400 ;M913 does not wait and therfor needs an M400 in advance M913 Z80 ;set current for defined motor in % of 100 as defined within M906 (in config.g) ; split Z motor control to Z and U ; for it to work we have to show U (param P4) in the UI M584 Z2 U4 P4 G1 H1 Z{-(move.axes[2].max+10)} U{-(move.axes[2].max+10)} F500 ; move Z1=Z & Z2=U down until each endstop for its axis is triggered G1 H2 Z5 U5 F1500 ; lift Z relative again to current position G1 H1 Z{-(move.axes[2].max+10)} U{-(move.axes[2].max+10)} F80 ; move Z1=Z & Z2=U down until each endstop for its axis is triggered ; back to combined z-axis & hidden U-axis (since combined) in Gui via the Px M584 Z2:4 P3 M400 ;M913 does not wait and therfor needs an M400 in advance M913 Z100 ;set current for defined motor in % of 100 as defined within M906 (in config.g) G90 ; Back to absolute positioning G92 Z0 ; set Z position to axis minimum (you may want to adjust this), in absolut coordinate system (G90) M564 S1 H1 ; Limit axis: S for boundaries 0=allow/1=limit; H for homing 0=allow/1=limit G90 ; absolute positioning G0 F1500 ; set min feed back G1 F1500 ; set min feed back ;move tool away from plate again M98 P"z-do-lift.g" ; check for correct directory, default folder is /sys on sd-card M117 "...finished homez.g" ; display message on screen, e.g. the PanelDue
Edit: Related to the behaviour of M291 in RRF3.2
-
@LB Short answer is that PanelDueFirmware only displays messages that it received from RRF. There is no hard-coded message (in a popup) in the firmware. So in this case it must have received this error from RRF.
I've looked up the reason for "homing failed" a couple of times in the past but I can never remember what is the cause. @dc42 can you help out here?
-
"Homing failed" is generated when a G28 command is executed but it didn't result in all of the specified axes being flagged as homed. All the requested axes will be flagged as "not homed" at the start of executing G28.
-
@dc42 said in PanelDueFirmware 3.2.6 released:
"Homing failed" is generated when a G28 command is executed but it didn't result in all of the specified axes being flagged as homed. All the requested axes will be flagged as "not homed" at the start of executing G28.
Thanks! Since everything works it might have to do with the specific setup and my specific code? For now I will just ignore it and dig deeper when I will find time.
Edit: Thanks to @deckingman we know that my issue is related to RRF3.2 and the behaviour of M291 within homing files
-
I have now released PanelDueFirmware 3.2.7. I will lock this thread. Please continue over there.