Pi4Duet3 DCS not started & Proximity inputs into IOx.in
-
Hi... I've been pounding on the Duet3/Pi4 “DCS Not Started (no header)” communication problem for over a week and finally made a breakthrough. First, I only connected to the Duet with a USB cable, and did not power with Vin using the 24V PS, so the Duet was only running on USB power, and thus the Pi powered from from Duet via ribbon cable. I then updated the Duet via BOSSA from PC. I could then connect to http://duet3.local (using cabled Ethernet connected to Pi) and DCS was started, could navigate the DWC.
Then I powered off, fired up 24V, and got the DCS Not Started message. Went back to USB-only power and everything worked. OK. Then I unplugged everything from the Duet except the Pi ribbon cable, powered up with Vin 24V and the DCS worked. I then connected 5 drives: no problem... DCS started and and DWC available. Connected the Proximity switches, and it blew up... DCS Not Started. Big ahaa moment at that point.
I then worked through each P-switch; Z works no problem. X & Y both cause failure. Each X, Y & Z is wired the same. I had to leave for the day, at that point, but at least I now have something to hang on to and focus on
I have the P-switches wired as recommended (24V & Grnd to the sensor, with only the sensor output of X, Y, & Z connected to IO1.in, IO2.in, & IO3.in.
In the Config under Drives, I have the X Endstop Pin set to io1.in, Y set to io2, and Z is "(not assigned)". The point here is that with either X or Y (or both) of these two Proximity switches connected, the system hits the DCS not started problem, thus no connection to the DWC. As I say, the Duet behaves fine with Z P-switch connected.
It’s been a journey, but I feel I’m close. Just need to resolve this last issue.
Thanks for reading!! David.
-
Which DCS and RRF firmware versions are you running? Upgrade to 3.1.1 if you are runnimg older versions.
-
@dc42 I created a fresh PiDuet image from the site I downloaded yesterday. It is definitely 3.1.1.
-
Can you post the results of M122?
-
@Phaedrux Sure... I’ll need to travel a few minutes to access the machine. It’ll be 2-3 hours.
-
@Phaedrux Here's the M122 output:
9/5/2020, 1:54:26 PM M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode)
Board ID: 08DJM-956L2-G43S8-6JTDL-3S46L-1S2QD
Used output buffers: 1 of 40 (11 max)
=== RTOS ===
Static ram: 154604
Dynamic ram: 163148 of which 44 recycled
Exception stack ram used: 224
Never used ram: 75196
Tasks: NETWORK(ready,1972) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1436) TMC(blocked,204) MAIN(running,4936) IDLE(ready,76)
Owned mutexes:
=== Platform ===
Last reset 00:15:47 ago, cause: power up
Last software reset at 2020-09-02 22:10, reason: User, spinning module LinuxInterface, available RAM 76880 bytes (slot 0)
Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
Error status: 0
MCU temperature: min 7.9, current 24.9, max 25.1
Supply voltage: min 27.0, current 27.1, max 27.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.1, max 12.2, under voltage events: 0
Driver 0: standstill, reads 11464, writes 14 timeouts 0, SG min/max 0/0
Driver 1: standstill, reads 11465, writes 14 timeouts 0, SG min/max 0/0
Driver 2: standstill, reads 11465, writes 14 timeouts 0, SG min/max 0/0
Driver 3: standstill, reads 11465, writes 14 timeouts 0, SG min/max 0/0
Driver 4: standstill, reads 11466, writes 14 timeouts 0, SG min/max 0/0
Driver 5: standstill, reads 11469, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2020-09-05 13:54:27
Slowest loop: 4.05ms; fastest: 0.14ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
Bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== AuxDDARing ===
Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== Heat ===
Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP* is ready with "M122" 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
SBC is idle in state(s) 0
Daemon* is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 1.23ms; fastest: 0.01ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
HTTP sessions: 0 of 8- Ethernet -
State: disabled
Error counts: 0 0 0 0 0
Socket states: 0 0 0 0 0 0 0 0
=== CAN ===
Messages sent 3706, longest wait 0ms for type 0
=== Linux interface ===
State: 0, failed transfers: 0
Last transfer: 17ms ago
RX/TX seq numbers: 30298/30299
SPI underruns 0, overruns 0
Number of disconnects: 0
Buffer RX/TX: 0/0-0
=== Duet Control Server ===
Duet Control Server v3.1.1
Code buffer space: 4096
Configured SPI speed: 8000000 Hz
Full transfers per second: 0.38
- Ethernet -
-
@Phaedrux The above output came from the DWC console with out the problematic Proximity switches connected. Did I provide what you want?
-
@Phaedrux I'm certain what I have attached is abbreviated. I'm ignorant on how to output a diagnostic data stream to a file... I've searched on how to do that but am not finding any how-to info on this. Any help would be appreciated!!
-
That is the complete contents of M122 as far as I know. You may be able to capture more data using the debug mode. See here: https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Monitoring_optional
I don't see anything in there but hopefully @dc42 will get a chance to take a look soon. It is a weekend though, so keep that in mind.
-
@Phaedrux Thanks for your input on that... It seemed to me that I had seen other M122 logs that had more info. That coupled with the message: "Response too long, see console" led me to believe I wasn't seeing it all, but that probably simply means to look in the Console, which is what I was already doing. Noob ignorance!!
-
@Phaedrux I'm getting a SPAM block when I try to send all I typed, so I've broken this up:
I have dug further and done some testing. As stated before, the Z proximity switch doesn't cause the fault, just X & Y. I did some testing with a meter (both resistance and voltage) and the three sensors all act in the same fashion. These switch as expected when metal is near, and each outputting nearly the same 24V (27.2) as is supplied, less a couple of tenths, when the sensor switches.
It appears that Spam detection is stopping my post when I include the dot between IO4 & in.
-
@Phaedrux One additional test: I plugged the P-switches into IO4in and IO5in with the same result: the DCS is not started. One final observation, the Diagnostic LED is flashing red about once per second with the P-switches disconnected, even though I have the inputs "Not Assigned". I'm hopeful that some of these details well shine a light on the issue... I'm befuddled. Thanks for your help!!
-
@dc42 Do you have any other thoughts on this challenge?? More info is listed in posts I made over the weekend.
Thanks!!
-
@BARN-Metal-Fab said in Pi4Duet3 DCS not started & Proximity inputs into IOx.in:
It appears that Spam detection is stopping my post when I include the dot between IO4 & in.
It's probably detecting it as a link and has determined that you don't have enough street cred to be trusted to post links yet. I've upvoted a few of your posts so hopefully that will give it a rest.
-
@Phaedrux Thanks for the cred assist... much appreciated!!
-
- Please provide a link to the datasheet or other info for the proximity switches. It sounds to me that they are PNP NC types - is that correct?
- Please provide a photo showing how you have wired the proximity switches to the IOx_IN connectors
- With the proximity switches connected and 24V power supplied, are you able to access the printer via USB and a terminal emulator program such as YAT?
-
Hi DC42... I'm working on the datasheet (P-switches were gifted by friend who's successfully used them to build this printer's older sister (Pi4 & Duet3). I believe these are NPN rather than PNP.
Photos will be forthcoming in about 5 minutes.
I have been successful in connecting to Duet3 with YAT (after powering everything off, then connecting with YAT, then powering everything up). I executed an M122... the results follow here (thanks tonnes for looking!)
M122<CR>
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode)
Board ID: 08DJM-956L2-G43S8-6JTDL-3S46L-1S2QD
Used output buffers: 1 of 40 (11 max)
=== RTOS ===
Static ram: 154604
Dynamic ram: 163100 of which 44 recycled
Exception stack ram used: 292
Never used ram: 75176
Tasks: NETWORK(ready,1980) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1436) TMC(blocked,204) MAIN(running,5016) IDLE(ready,76)
Owned mutexes:
=== Platform ===
Last reset 00:02:19 ago, cause: power up
Last software reset at 2020-09-02 22:10, reason: User, spinning module LinuxInterface, available RAM 76880 bytes (slot 0)
Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
Error status: 0
MCU temperature: min 18.2, current 26.8, max 27.1
Supply voltage: min 0.4, current 27.0, max 27.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 0.0, current 12.1, max 12.2, under voltage events: 0
Driver 0: standstill, reads 25532, writes 11 timeouts 0, SG min/max 0/0
Driver 1: standstill, reads 25532, writes 11 timeouts 0, SG min/max 0/0
Driver 2: standstill, reads 25533, writes 11 timeouts 0, SG min/max 0/0
Driver 3: standstill, reads 25533, writes 11 timeouts 0, SG min/max 0/0
Driver 4: standstill, reads 25534, writes 11 timeouts 0, SG min/max 0/0
Driver 5: standstill, reads 25534, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2020-09-10 14:37:59
Slowest loop: 3.85ms; fastest: 0.13ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
Bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== AuxDDARing ===
Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== Heat ===
Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -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 ready with "M122" 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
SBC is idle in state(s) 0
Daemon* is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 0.47ms; fastest: 0.01ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
HTTP sessions: 0 of 8- Ethernet -
State: disabled
Error counts: 0 0 0 0 0
Socket states: 0 0 0 0 0 0 0 0
=== CAN ===
Messages sent 472, longest wait 0ms for type 0
=== Linux interface ===
State: 0, failed transfers: 0
Last transfer: 34ms ago
RX/TX seq numbers: 3681/3681
SPI underruns 0, overruns 0
Number of disconnects: 0
Buffer RX/TX: 0/0-0
ok
- Ethernet -
-
One further point RE: P-Switch assignments. While all three axes' P-switches are connected, I currently have them as "Not Assigned" in Driver config.
-
Here are three images to illustrate wiring:
1 - Duet & Pi Connections
2 - 24V (27.2) Distribution of power to P-Switches
3 - Proximity Switch Signal input to DuetSignal wire going only to IOx_in, 24+/- fed to sensors with terminal block (red-24+, blue-24-)
Thanks again!!
-
I believe I may need to correct the record on PNP v. NPN. With the switch closed, I get 0V between the -24V line & Signal. My reading of the attached image would indicate these Proximity switches are, as DC42 suggested, PNP devices. I interpret this condition to require Drive Mapping Endstop Pin in IO Mapping to set to Active-Low. I'm still working on a datasheet.
One additional thing I've tried: I now have the P-switch GND wire connected to the GND input to each of the IO1, IO2, and IO3 connectors, as shown below.
I have set the Config file Endstop Pin at two separate conditions for Drive X & Y: Not Connected, and IOx_in as Active-Low. In both cases having the P-switches connected to the Duet triggers a DCS not started error.