Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Main board used as expansion board doesn't handle idle current percent #1019

Closed
dc42 opened this issue Jul 1, 2024 · 13 comments
Closed

Main board used as expansion board doesn't handle idle current percent #1019

dc42 opened this issue Jul 1, 2024 · 13 comments
Assignees
Labels
bug Bug that has been reproduced Done - Needs Testing
Milestone

Comments

@dc42
Copy link
Collaborator

dc42 commented Jul 1, 2024

If a main board is used as an expansion board then changing the idle current percentage on the master board using M906 with the I parameter doesn't affect the idle current percent used on the slave board, which remains the default 30%.

@dc42 dc42 added the bug Bug that has been reproduced label Jul 1, 2024
@dc42 dc42 added this to the 3.6.0 milestone Jul 1, 2024
@dc42 dc42 self-assigned this Jul 1, 2024
@dc42
Copy link
Collaborator Author

dc42 commented Jul 1, 2024

Provisional fix implemented in 3.6 source code. This could be back-ported to 3.5 if we do a 3.5.3 release.

@mbalajew
Copy link

mbalajew commented Jul 2, 2024

This is great, thank you. Did you need any help with testing?

@dc42
Copy link
Collaborator Author

dc42 commented Jul 4, 2024

Fix now implemented in 3.5-dev source code too. @mbalajew which Duet are you using?

@mbalajew
Copy link

mbalajew commented Jul 4, 2024

@dc42 I'm using two Duet 3 Mini 5+ boards

@dc42
Copy link
Collaborator Author

dc42 commented Sep 23, 2024

@mbalajew have you tested this fix in 3.5.3?

@mbalajew
Copy link

Hey @dc42, yes, unfortunately it's still an issue on 3.5.3

@droftarts
Copy link

I have tested this in both 3.5.3 and 3.6.0-beta.1, and both appear to work correctly for me, with the axes on the mainboard-as-expansion-board controlling normal axes.
@mbalajew are you controlling normal axes, or extruders, on the Mini 5+ expansion board?

Test setup: two Mini5+, running 3.6.0-beta.1. First board is on my normal bedslinger, second board has 1 motor attached to driver 0, and only has M954 A60 in its config.g. Configured motor as U axis, with same parameters as X axis.

Test: Initially M906 I30 and M84 S30 were set. I changed M84 S10, and idle timeout dropped to 10 seconds, on motors connected to both boards following a move of that axis (X and U tested). Changed M906 I100, motors on both boards maintain 100% current. Other M906 I# and M84 S# values tested, with the correct behaviour observed. So appears to be working correctly in 3.6.0-beta.1.
Reverted firmware to 3.5.3 on both boards, and ran tests again. Same result, so it seems to working as expected.

@T3P3 T3P3 closed this as completed Dec 4, 2024
@mbalajew
Copy link

mbalajew commented Dec 4, 2024

Hi @dc42 and @droftarts, just a FYI - I’m still experiencing this issue. @droftarts and I have had several back-and-forth discussions on the Duet3D forums, but unfortunately, no resolution yet. At this point, I'm wondering if we should consider this as a potential hardware problem. I can confirm that the issue persists. I've already uploaded my configuration files to the forums and am happy to make a video demonstrating the problem if you think it would be helpful.

@T3P3
Copy link
Contributor

T3P3 commented Dec 5, 2024

can you point me to the forum thread please.

@mbalajew
Copy link

mbalajew commented Dec 5, 2024

Hey @T3P3, here is the thread. It seems that since the team hasn't been able to reproduce my error on my specific hardware setup, they're considering the issue resolved.

I really don't want to come across as overly demanding - I fully appreciate how challenging it is to allocate resources in an open-source project. That said, the unexpected drop in idle current, particularly in setups like mine with a belt-driven z-stage, poses a significant safety risk. My printer has already sustained several damages because of this issue, and I'd hate for others to experience the same. I do have brakes on my z-stage motors but these will not help in this kind of scenario.

Again, I deeply respect the effort it takes to maintain an open-source project, so please don't take this as an entitled complaint - just a genuine concern I felt was worth sharing.

@T3P3
Copy link
Contributor

T3P3 commented Dec 5, 2024

Thanks @mbalajew We closed it as we replicated the issue then fixed it in the replication. as you say it may be a hardware issue or something else specific to you config. If its turns out be still a firmware issue we will reopen this to track it to resolution

@droftarts droftarts reopened this Jan 13, 2025
@droftarts
Copy link

Following my testing, there is an issue with setting M906 I parameter for expansion boards and mainboards-as-expansion.

Tested in 3.5.3, 3.5.4 and 3.6.0-beta.2+5, on Mini 5+ WiFi v0.5 mainboard, Mini 5+ Ethernet v1.02a as expansion, and 1LC v1.2a (motor currents not tested on 1LC). X and Y axis are on mainboard, Z axis (4 motors) are on the mainboard-as-expansion.

Generally, sending M906 I# commands appear to be setting the motor idle current percentage correctly for me, in 3.5.3. However, it seems like the correct motor current is not restored when a move is made after the motor idle current is changed. For example, if M906 I1 (ie 1%) is set in config.g, turn on machine, G92 all axes, move Z, hold time and idle current are correct (same for X). If I then send M906 I100, followed by M906 I1, then move the Z axis, the motor current does not increase for the move or for the hold time. Same result in 3.5.3, 3.5.4 and 3.6.0-beta.2+5.

A similar issue occurs with expansion boards. Tested in 3.6.0-beta.2+5, on Mini 5+ WiFi v0.5 mainboard, 3HC v1.0, and 1LC v1.2a (motor currents not tested on 1LC). Though there is a difference in how this manifests itself. If the M906 I# is sent while the motor is on idle hold (ie at active motor power) the M906 I# command is ignored by the expansion board. Any subsequent moves happen at the motor current of the last registered M906 I# command, ie not at the 'proper' axis motor current.

@dc42
Copy link
Collaborator Author

dc42 commented Jan 13, 2025

I have confirmed the issue reported by @droftarts and implemented a fix. Transferred to new issue #1072.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bug that has been reproduced Done - Needs Testing
Projects
None yet
Development

No branches or pull requests

4 participants