6HC Odd Configuration Errors and DWC Problems
I am getting odd error codes and have very limited communication via DWC on my 6HC
This is a corexy, custom built
6HC board, 3.01 beta 3 firmware, DWC 2.0.7
Raspberry Pi 4 running duetpi 4.19.97-v71+
The DWC is almost unusable. I can update system files, and the emergency stop functions. Nothing else does anything. The homing buttons, command line, tool, and heater buttons either do not function or start the “waiting” animation and just play it until I reset. It does seem like the temperature sensors are providing real time feedback, and correctly. The tool position is way off, by a factor of 10. Finally, it says that there are no fans, even though one is configured.
Upon rebooting, I am getting some really odd error messages, like the board is reading a config file from a different printer:
Error: M558 Pin ‘io4.in’ is not free
Error: G31 Invalid Z Probe index
Warning: M307: heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C.
My io4 is empty and not configured for any devices
I don’t see anything in the Z probe configuration that would be invalid
I have not yet successfully run any heaters
I am able to communicate with the board via a Paneldue 7. Sort of. If I use the self test functions, I get:
For the Test IR and PD Homing
Warning: Obsolete use of S parameter on G1 command. Use H parameter instead.
For the Test Fans
Error: M106: Fan number 1 not found Error: M106: Fan number 2 not found
If I try the Test Heaters, it gives me the same error as the Test Fans
These tests require that I trigger the X axis end stop. This too is a problem, if I push on it several times it sometimes recognizes that it has been triggered. Often, it does not, and the test just freezes right there.
The Test Motors leads to the motors running much faster than they should, and with no regard to the end stops. The printhead also moves diagonally for the x and y test, not linear
Entering commands directly into the Paneldue console sort of works, as it does accept most commands. Unfortunately, it gives very little output, especially on any diagnostic tests.
All of these diagnostic results also seem like they are from a different config file than mine.
I can, and have, successfully updated firmware and config files through the DWC. It will not update beyond my current firmware, but that appeared in a different post so it is hopefully an unrelated issue. I did have the board updated to the current firmware, 3.01 RC 2, with no change in this behavior.
The Pi is updated and upgraded almost daily
My config file:
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Feb 13 2020 22:38:28 GMT-0700 (Mountain Standard Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M669 K1 ; select CoreXY mode
M569 P0.0 S1 ; physical drive 0.0 goes forwards
M569 P0.1 S1 ; physical drive 0.1 goes forwards
M569 P0.2 S0 ; physical drive 0.2 goes backwards
M569 P0.3 S0 ; physical drive 0.3 goes backwards
M569 P0.4 S1 ; physical drive 0.4 goes forwards
M569 P0.5 S1 ; physical drive 0.5 goes forwards
M584 X0.0 Y0.1 Z0.2:0.3 E0.4:0.5 ; set drive mapping
M350 X16 Y16 Z16:16 E16:16 I1 ; configure microstepping with interpolation
M92 X200.00 Y200.00 Z400.00:400.00 E800.00:800.00 ; set steps per mm
M566 X2400.00 Y2400.00 Z120.00:120.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00:180.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00:20.00 E250.00:250.00 ; set accelerations (mm/s^2)
M906 X1400 Y1400 Z700:700 E1200:1200 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X300 Y300 Z290 S0 ; set axis maxima
M574 X1 S1 P"io1.in" ; configure active-high endstop for low end on X via pin io1.in
M574 Y2 S1 P"io2.in" ; configure active-high endstop for high end on Y via pin io2.in
M574 Z1 S2 ; configure Z-probe endstop for low end on Z
M950 S0 C"io7.out" ; create servo pin 0 for BLTouch
M558 P9 C"^io7.in" H5 F100 T2000 ; set Z probe type to bltouch and the dive height + speeds
G31 P25 X35 Y0 Z0.53 ; set Z probe trigger value, offset and trigger height
M557 X15:215 Y15:195 S20 ; define mesh grid
M308 S0 P"temp0" Y"thermistor" T100000 B4000 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M143 H1 S290 ; set temperature limit for heater 1 to 290C
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M308 S2 P"temp2" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2
M143 H2 S290 ; set temperature limit for heater 2 to 290C
M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency
M106 P0 S1 H1:2 T45 ; set fan 0 value. Thermostatic control is turned on
M563 P0 S"Tool 1" 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
M563 P1 S"Tool 2" D1 H2 F0 ; define tool 1
G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C
; Custom settings are not defined
@tdm418 Unfortunately, I don't have a working RPi4 + Duet 3 setup to test your exact problems. However, I can give you the following advice:
DO NOT USE the 'test' macros on the SD card. These are for factory testing on a specific test rig. They set up the Duet entirely differently, and overwrite the settings you have created in config.g.
Do you have an SD card with config.g in the Duet 3? It kind of sounds like you do. If you're connecting using the RPi, you DO NOT put an SD card in the Duet. That is only used for running the Duet in stand-alone mode, ie no RPi. For connecting up, see https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Connecting_it_up
Others with more experience should be able to let you know how to update the various software and firmware, hopefully.
@droftarts Hi Ian, thank you for the pointers
I do not have any test macros, at least that I am aware of
I was totally unaware of the SD card thing, in fact, I thought that I had seen some contradictory information on other posts. Regardless, I'll remove it and retry.
As far as the connection, it seems like everything is communicating internally. I can putty into the Pi with no issues. The Pi also seems to be talking to the Duet, so I don't think that's the problem.
I'll report back in a few hours, the day has gone totally sideways on me
Danal last edited by
If the firmware on a Duet3 board:
- Finds an SD card
- Finds a Fat or Fat32 partition
- Finds a directory called 'sys'
- Finds a file in /sys called 'config.g'
The Duet 3 board starts up in "standalone" mode. For this to be useful, /sys should contain several other files... but the start is based on the presence or absence of /sys/config.g
OTHERWISE, the Duet 3 Board waits for the DSF (Duet Software Framework) on the attached Single Board Computer (Raspberry Pi) to connect to it over SPI, start it, control it, etc, etc.
I do not know what happens if BOTH the card tries to start Stand-Alone, AND the RPi tries to start it.
Having said all of that, the simplest "rule" is: If you have a Pi attached and running DSF, do NOT have an SD card in the Duet 3 board itself.
P.S. The card shipped with a Duet 3 is/was for the Pi.
@tdm418 I think you may have received a Duet 2 SD card in error. This would have a config on it that could start up a Duet 3, and has macros on it that you describe as ‘self test’. They would be visible in DWC and PanelDue, with names like ”01-Test_IR_PD_Homing", "02-Test_Fans", "03-Test_Heaters" and "04-Test_motors”. As I said, these are factory tests, but shouldn’t cause any damage to your Duet 3. Best to ignore them!
The SD card would also have the files in the www folder to serve up the webpage.
If you have already set up the RPi to control the Duet, I expect this was clashing with webpages on the SD card.
Danal last edited by
Here is a fairly certain resolution:
Physically remove any card from the Duet 3 6HC socket. Leave it empty. Forever.
Choose an SD card to run the Pi. You need not format it, the next step will do the equivalent.
Download the "starter" image from Duet https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Duet_Software_Framework_on_Raspberry_Pi
There are instructions at that link on how to place the image on the card, do a bunch of commands and updates, etc.
Stop at the end of the "Installation" section (you do not need to continue into the "Duet Control Server" section of the instructions.)
Linux/Unix purists will gasp... but... there's nothing wrong with a reboot at the end of the install.
@droftarts , rebooting without the card did restore some functionality in DWC but has led to a whole host of new errors.
@Danal , I have already configured my Pi with duetpi, but I suspect, after reading all of your information, that something has become corrupted by updating with the SD card in the Duet slot.
Tomorrow, I'll wipe everything and reload and see if that solves the problem.
Thank you both for the assist, I certainly appreciate it.