-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
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
[1.1.x] Hangprinter support #9180
[1.1.x] Hangprinter support #9180
Conversation
d05cc0f
to
fdabf8e
Compare
Synced with upstream/bugfix-1.1.x, fixed issue found during travis check and squashed. |
Looks good! It's almost ready to merge. I just need to go through it over the next few days to absorb all the changes. I will post review questions in the code. Once it's prepped to merge for this branch, we'll put together the same for 2.0.x. I hope to get this merged relatively soon so it won't go stale. With the addition of |
Agree that X_CART, Y_CART, Z_CART for consistency would be a good thing. It's very easy to trip when listing up" X_AXIS, Y_AXIS, Z_AXIS, E_.... CART". |
I'm thinking that for now it would be cleaner to always assume On the planner side, we already have |
Copy/pasting in parts of my comment from the previous thread here for reference.
I'm in favour of splitting all arrays that contain both kinematic axes and extruder axes later, maybe not in this PR. As you say, keeping In the longer run, some Hangprinter users might scratch their heads if E_AXIS is used in place of E_CART, which will cause "index out of bounds" error for them. Could maybe be easily exposed by the travis-script if it runs a test compilation using example_configurations/hangprinter/Configuration.h ? |
This is a brand new feature that never existed in Marlin before. Maybe it would be easier for @tobbelobb to support if only in one branch ? Otherwise, you'll have some people on 1.x and others on 2.x. Seems a bit messier with not along of benefit ? 🤷♂️ |
How is it going with the code review? Have questions come up that I can help sort out? |
@fiveangle Likely this will only be merged to 2.0.x. But it's easier for some to develop for 1.1.x and then move it over afterward. |
What was the change to M906? I don't see any mentions to hangprinter in it. Also don't forget to update all the other the config files too. Will |
fdabf8e
to
be5af5b
Compare
Synced with upstream. @teemuatlut You're right, the former M906 code would just have put D-current == E-current. Updated M906 to take ABCDE parameters and set a separate D-current.
will work. But
will break Hangprinter compatibility. @thinkyhead I'm about to implement a few more Hangprinter features. Since Hangprinter won't be merged into 1.1.x anyways, can I push new features to this branch (bugfix-1.1.x_hangprinter branch on tobbelobb/Marlin)? If yes, then commits will show up in this PR, and I will be saved from a lot of extra rebasing and branch bookkeeping whenever I sync with upstream. I guess keeping this PR (or another thread where I can keep you up to date and answer questions about Hangprinter code) alive is a good idea. |
b7d8e93
to
f780dd9
Compare
EDIT: The reason for Travis build fail seems to be the thing that is fixed in #9302 |
f780dd9
to
d0ee47b
Compare
4f693ed
to
2bda584
Compare
@tobbelobb For an extra collaboration channel you can send me a request to connect to the Marlin project on Slack. See #9154 for details. Don't worry about making the transition to 2.0.x while you're in the zone getting things patched up and improved here. My thinking was that once it was ready I would quickly port it over to 2.0.x — a process which is pretty quick and painless … usually — and then we would go from there. So carry on as usual. It's true that we'll be closing some other PR's targeted to 1.1.x shortly. This one should stay open while it's underway, and just let me know when you feel it's top notch and ready to move over. |
ddf4578
to
71a22f3
Compare
d2508ce
to
5def24b
Compare
I think maybe this should be merged now. It's very hard to get something like this top notch in the first try, so please bear with me. It works on my setup and has been used both for printing and auto-calibration. It would be very good if you could look for mistakes that could break UX for cartesian printer users in there. This is a tad nervous, but the PR is now so big that keeping up to date with upstream is eating into my time budget. |
I just discover what is hangprinter ... or spiderprint or aracnea printer , it's pure madness .... |
My Youtube channel is here: https://www.youtube.com/channel/UCw1Nz0VCw4z-dfq4WjSkFzQ |
8324dfe
to
1ca1889
Compare
Hey @thinkyhead, there were some more new breaking changes there, but I patched it all together again and squashed. Testing the new patched version on hardware, with Hangprinter and all the other options enabled takes a few days. Within a few days, breaking changes are merged upstream, and I'm caught in a never ending interrupt loop. So I have to ask you to take a chance. Can you please merge this now? |
1ca1889
to
30d6bf1
Compare
Research is being done on adding computer vision feedback and also physically modelling to predict line flex (like this). Getting onto Marlin v2 and 32-bit controllers will boost our progress. |
@tobbelobb Damned !!!!! ......... 😨 |
89ddbb5
to
9d43f48
Compare
- Kinematics, 4th axis, save anchor locations in eeprom, UNREGISTERED_MOVE_SUPPORT
…e on D is nonzero
… effect afterwards)
9d43f48
to
25ad724
Compare
Marlin/Marlin.h
Outdated
#define disable_E1() NOOP | ||
#else | ||
#define disable_E1() E1_ENABLE_WRITE(!E_ENABLE_ON) | ||
#endif |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tobbelobb — Since E_STEPPERS
is the same as EXTRUDERS
and this block begins with #if E_STEPPERS > 1 && HAS_E1_ENABLE
there's no possibility for #if ENABLED(HANGPRINTER) && EXTRUDERS == 1
to evaluate as true
. So disable_E1
will always be defined as E1_ENABLE_WRITE(!E_ENABLE_ON)
regardless.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applied a correction where these are undefined / redefined just below… See the commit labeled "Assign ABCD like X2, Y2, Z2" for details.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right, good catch! I think the correction commit implements the desired behavior properly.
e5fcf95
to
36df404
Compare
36df404
to
463bf35
Compare
463bf35
to
6dfbba1
Compare
Thanks for rebasing, reviewing and investing your time. Getting merged into official Marlin releases would greatly benefit the Hangprinter Community. |
…for saving anchor locations in eeprom, and new defines.
New gcodes:
Adapted gcodes that still use XYZE parameters:
Adapted gcodes that use ABCDE parameters:
Adapted gcodes with other parameters
New features that also work on non-Hangprinter machines:
UNREGISTERED_MOVE_SUPPORT
MECHADUINO_I2C_COMMANDS
Features that are Hangprinter specific:
LINE_BUILDUP_COMPENSATION_FEATURE
Other changes:
NUM_AXIS[_N]
andMOV_AXIS
instead ofXYZE[_N]
andXYZ
for indexing and initializing arrays that refer to kinematic axes (movement axes on physical machine) rather than the cartesian axes of incoming gcode.E_CART
instead ofE_AXIS
for indexing arrays that refer to cartesian axes of incoming gcode.Discussion ahead of this PR: #9101