PanelDueFirmware 3.2-RC2 released

  • Moderator

    I am pleased to announce the second release candidate for PanelDueFirmware 3.2. This release contains primarily bug fixes and one small change in behavior. See below for details.

    Version 3.2-RC2

    Upgrade Notes:

    • This release is compatible with RepRapFirmware 3.2-beta1 or later. It will partially work with RepRapFirmware 3.1.1 but not with any older version.


    Due to the lack of RAM this build will not run on version 1 or early version 2 PanelDue boards that use the ATSAM3S2B chip.

    • Version 1.0, 1.1 and earlier v2 PanelDue: ATSAM3S2B processor (64MHz, 32kb RAM, 128kB flash) - these are the ones that the new firmware probably won't run on.
    • Version 2 PanelDue manufactured from August 2016: ATSAM3S4B processor (64MHz, 48kb RAM, 256kb flash). Will run the new firmware, but not as fast as version 3 will.
    • Version 3 PanelDue, including all 5i and 7i: ATSAM4S4B processor, 120MHz, 64kB RAM, 256kb flash. Will run the new firmware.

    Changes since RC1:

    • Status colors of tools were confusing (because a tool can never go to "off" after being active once) so it only shows "active" or "anything else"

    Bug fixes since RC1:

    • In some cases setting a tool's heater would instead the heatbed temperature
    • Chamber and heatbed icons did not change colors according to their state
    • It was not possible to disable the chamber heater by tapping the chamber button
    • Move popup buttons were none-functional
    • Commands entered via on-screen-keyboard were not echoed into the text field

    Known Issues:

    • While a heater is heating and it is being waited for it to reach target temperature PanelDue will see no updates from RepRapFirmware - this is an issue in RepRapFirmware and will be fixed in the next release
    • Screensaver delay select popup does only hide when clicking on a tab button - this will be fixed in the next release


    Downloads and Instructions

    Binaries can be found at
    Flashing instructions can be found at

  • @wilriker

    This release uses the RepRapFirmware ObjectModel instead of limited status responses

    Would you mind expanding on this? Is the intent to make the PanelDue an object that can be referenced through conditional gcode? Or is this just a rewrite of how the PanelDue communicates with RRF?


  • @oozeBot it's a communication rewrite to move from M408 to M409

  • Moderator

    @oozeBot As @jay_s_uk already said this moves the status requests that PanelDue sends towards RRF from M408 to M409, i.e. PanelDue itself requests updates of the ObjectModel. Advantage is that the responses contain all necessary information to also represent complex configurations on PanelDue.

  • I get an error modifying the extrusion % from paneldue with 3.2-RC2
    "M221 D parameter to high"

    Reprap fw 3.2 b1

  • Moderator

    @KipK Can you give some more information, please? I cannot reproduce the issue, yet.

    First of all: to which value do you want to set your extruder? config.g might be helpful. In case there are multiple extruders please state which one. Most helpful would be a step-by-step list of instructions to reproduce your issue.

  • @wilriker , sure

    I only have one extruder.
    I was about to get 97%. Then got back in the web panel and saw it was still 100%.
    Than saw the error in panel console.
    I could eproduce it at each try then.

    I'll investigate further.

    here is config.g

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ; General preferences
    G90                                                         ; send absolute coordinates...
    M83                                                         ; ...but relative extruder moves
    M550 P"BLV MGN cube"                                        ; set printer name
    M669 K1                                                     ; select CoreXY mode
    M575 P1 B57600 S0										    ; set serial port fur paneldue
    ; Network
    M552 S1                                                     ; enable network
    M586 P0 S1                                                  ; enable HTTP
    M586 P1 S0                                                  ; disable FTP
    M586 P2 S1                                                  ; enable Telnet
    ; Drives
    M569 P0 S1                                                  ; physical drive 0 goes forwards
    M569 P1 S1                                                  ; physical drive 1 goes forwards
    M569 P4 S0                                                  ; physical drive 2 goes backward
    M569 P6 S1                                                  ; physical drive 3 goes forward
    M569 P7 S1
    M569 P8 S1
    ;M584 X1 Y0 Z6:8:7 E4; three Z motors connected to driver outputs 6, 8, 7
    M584 X1 Y0 Z6:7:8 U7 V8 P3 E4; three Z motors connected to driver outputs 6, 8, 7
    M350 X16 Y16 Z16 U16 V16 E16 I1                                     ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z1600.00 U1600 V1600 E416.62                         ; set steps per mm
    M566 X600.00 Y600.00 Z50.00 U50 V50 E2000.00                       ; set maximum instantaneous speed changes (mm/min)
    M203 X15000.00 Y15000.00 Z400.00 U400 V400 E3600.00                   ; set maximum speeds (mm/min)
    M201 X1200.00 Y1200.00 Z200.00 U200 V200 E2000.00                      ; set accelerations (mm/s^2)
    M906 X1500 Y1500 Z1200 U1200 V1200 E700 I30                             ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                     ; Set idle timeout
    ; Axis Limits
    M208 X-173 Y-157 Z0 U0 V0 S1                             ; set axis minima
    M208 X173 Y174 Z343.88 U343.88 V343.88 S0                   ; set axis maxima
    ; Endstops
    M574 X1 S1 P"xstop"                                         ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop"                                         ; configure active-high endstop for low end on Y via pin ystop
    ;M574 Z2 S1 P"duex.e2stop+duex.e6stop+duex.e5stop"           ; configure active-low endstop for high end on Z via pin zstop
    M574 Z2 S1 P"duex.e2stop";	set endstops for Z
    M574 U2 S1 P"duex.e6stop";	set endstops for U
    M574 V2 S1 P"duex.e5stop";	set endstops for V
    ; Z-Probe
    M558 P9 C"^" H15 F200 T25000 R0.4 A4 S0.03 B1        ; set Z probe type to bltouch and the dive height + speeds
    M950 S0 C"duex.pwm5"                                        ; create servo pin 0 for BLTouch
    G31 P25 X36.47 Y-4 Z1.95                                    ; set Z probe trigger value, offset and trigger height
    M557 X-135:135 Y-135:135 P5:5                               ; define mesh grid
    ; Heaters
    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
    M307 H0 B0 S1.00                                            ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                                     ; map heated bed to heater 0
    M143 H0 S130                                                ; set temperature limit for heater 0 to 130C
    ;M308 S1 P"e1temp" Y"thermistor" T4606017 B5848 C5.548428e-8 H0 L0 ; configure sensor 1 as thermistor on pin e0temp
    M308 S1 P"spi.cs1" Y"rtd-max31865" R380 ; create sensor number 1 as a PT100 sensor in the first position on the Duet 2 daughter board connector
    M950 H1 C"e1heat" T1                                        ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                                            ; disable bang-bang mode for heater  and set PWM limit
    M143 H1 S300												; set temperature limit for heater 0 to 130C
    ; Fans
    M950 F0 C"fan1" 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"duex.fan5" Q500                                        ; create fan 1 on pin fan1 and set its frequency
    M106 P1 H1 T45 S1                                       ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"duex.fan7" Q500
    M106 P2 S115 H-1  
    M950 F3 C"duex.fan6" Q500
    M106 P3 S115 H-1  
    ; Tools
    M563 P0 D0 H1 F0                                            ; define tool 0
    G10 P0 X0 Y0 Z0                                             ; set tool 0 axis offsets
    G10 P0 R0 S0                                                ; set initial tool 0 active and standby temperatures to 0C
    ; Leadscrews
    M671 X-214:214:214 Y0:118:-121 S20 						    ; leadscrews at middle left, front right, and rear right
    ; Miscellaneous
    T0                                                          ; select first tool
    M81 														; trick to enable ATX button on web interface
    ;M572 D0 S0.035												; enable pressure advance ( ABS ) 
    M572 D0 S0.028												; enable pressure advance ( PLA ) 
    M593 F27.84 											    ; dynamic acceleration ( cancel ringing at 53.33hz)
    M911 S21.0 R23.0 P"M913 X0 Y0 G91 M83 G1 Z5 E-1 F1000" 		; pause print when power fail
    M80															; power on 24v
    M376 H10													; tapper mesh bed leveling to 10mm
    M950 J2 C"!^duex.e3stop";									; set e3stop trigger				
    M581 P2 T2 S1 C0											; trigger T2 when duex.e3stop is rising
    M501                                                        ; load saved parameters from non-volatile memory

  • Moderator

    @KipK I will most likely only get to this on Tuesday.

    If you are willing to further investigate: You can see what the PanelDue is sending back to RRF by connecting e.g. your PC by USB to your Duet, open a terminal ( and send

    M111 P3 S1

    after that you see every GCode command processed by RRF (tip: close every DWC session to avoid seeing tons of commands from channel HTTP). The channel you are looking for is Aux.
    Then command your extrusion factor change and see what PanelDue sends back to RRF. It should look like

    M221 Dn Snnn

  • Moderator

    @KipK As stated on GitHub already: I found and fixed the issue. Thanks for reporting - this also revealed some minor UI issues as a side-effect.

    This will be fixed in the 3.2-RC3 release I plan to release this week.

  • Great. Thanks. I'll test this thereafter

  • Moderator

Log in to reply