PanelDue no longer connecting on Duet3/io0 with 3.01-RC11
-
@Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:
I'm always up to trying anything; out of pure curiosity, I am interested in what changed that would prevent both devices from sharing the data on io0.out, when it worked prior to RC11, without any hardware changes.
I'm guessing there was a drive strength change or something. I can't get to the source code right now but I can check tomorrow if @dc42 hasn't answered by then.
-
-
@Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:
I'm guessing there was a drive strength change or something. I can't get to the source code right now but I can check tomorrow if @dc42 hasn't answered by then.
Interesting. I wasn't aware that something like that was controllable through software. Thanks for the help @gtj0 .
Yeah on most "microcontroller" platforms, including the ones on the Duets, Pis and other SBCs, many pins are general purpose and have their function (uart, GPIO, SPI, etc) and capabilities (input, output, both, drive strength, pull up/pull down, tristate, etc) controlled from software.
-
couldn't spot any changes to low level functions, just some conditional logic around the higher level initilization.
https://github.com/dc42/RepRapFirmware/commit/6f912e9ca47930d7b91d504c0e9c8be31251284a#diff-52cb419324e9c23a2e2c5a269e0e70fcR3581 -
Could it be this?
setPullup(APIN_Serial0_RXD, true);
I didn’t see anywhere else where the pull-up resistor is used/set in the old code, could the setting the pull-up affect the signal enough that it “dies” enough in signal strength for two electrical connections to be too much for the paneldue circuitry?
-
@Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:
setPullup(APIN_Serial0_RXD, true);
click the beginning of the line and choose "git blame" to see when it was changed. (if viewed on github, otherwise git cli works as well)
i'm guessing its part of the other repositories then
-
@Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:
Could it be this?
setPullup(APIN_Serial0_RXD, true);
I didn’t see anywhere else where the pull-up resistor is used/set in the old code, could the setting the pull-up affect the signal enough that it “dies” enough in signal strength for two electrical connections to be too much for the paneldue circuitry?
Absolutely!
I just did a build without the pullup. See this helps...
http://dueui.org/download/Duet3Firmware_MB6HC.bin -
@bearer It was new in the last 2 commits.
-
(for CoreNG, ofc, my bad)
-
@gtj0 I downloaded the file, pushed it to the printer, and performed a "M997 S0"
Result was :
Error: Operation failed (Reason: ArgumentNullException in SimpleCode: Value cannot be null. (Parameter 'input')) -
But without the pull up? Comment said it was removed pending a M575, so the fix would be to enable it upon finding a M575 P1 command?
-
@Nuramori Eh? I just did it myself and it worked. Maybe try to download again?
@bearer Yeah I just removed it altogether to see if it helps. If it doesn't then the issue is elsewhere. -
unfortunately, my hopes were higher. No change.
-
@Nuramori Ah well. Don't happen to have an oscilloscope do you?
-
@gtj0 I in fact do! It also does fun things like I2C. Siglent DCS 1202X-E
-
@Nuramori You could examine the level on that pin with and without the Arduino connected and see if it changes. You could also see if either the Arduino or the PanelDue is attempting to pull it up or down itself.
-
Arduno won't affect the Duet's RX pin, he says that's not connected and works in any case?
(i.e. Io0.out would be the TX pin)
-
@gtj0 ok, I'll try that out. My herd of cats (family) are vying for my attention, so I'll poke at it in the morning. Thank you very much for the help!
-
@bearer correct. the only wire that's linking the arduino to the duet is through the io.out pin. removing the connection allows the paneldue to receive packets, but attached or not, the paneldue issues commands TO the duet correctly. It (the paneldue) just doesn't update with information such as temps, positions, etc. It WILL do that once the arduino wire is disconnected. The same setup worked prior to RC11.
-
@Nuramori said in PanelDue no longer connecting on Duet3/io0 with 3.01-RC11:
but attached or not, the paneldue issues commands TO the duet correctly.
then while the RX pull up is relevant, its not the cause. (unless maybe to disable it on the arduino)