-
-
Notifications
You must be signed in to change notification settings - Fork 19.7k
Working version of multiple extruders (up to 3) #27
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
Conversation
|
Thanks guys, all sounds good. |
of the global set by T command
- per extruder config Major parameters like steps/mm, acceleration, etc. are now configurable for each extruder. - retract jerk Added DEFAULT_E_JERK parameter for extruder retract moves to allow fine tuning (without it the intial speed varies and retract is not efficient in eliminationg blobs) - extruder offset Added parameter for extruder offset that allows configuring how the priniting head should be repositioned when switching extruders. The T* command can now also accept the feedrate at which to reposition the head when switching extruders. Notes: There were changes in LCD management code I did not test. In general, the commands and settings for extruder are applied only to the active extruder. For example, to change max feedrate for extruders 0 and 1, one has to switch to the first extruder, set its rate, then switch to the second and set its rate. M503 shows multiple 'E' values starting with extruder 0 and so on. As of this commit the firmware can be used to print suport in different material by simply switching extruder in skeinforge support start/end script and adjusting the steps/mm, etc. to make the same gcode work for both main and support material extruders.
Made some redame and config changes.
position for the extruder. It can be either its own last position or (if S option is specified) the last position of any other extruder. The latter is useful when using for printing support, the former makes it easier to print skeined independently parts of the object.
Fixed issues: - The retract was not detected when preceeded by a very short moves that were ignored and merged into the next (retract) move. That caused incorrect speed used for those retracts and steps skipped in complex small size objects. - The output during temperature wait was too long causing Printrun's UI to misbehave.
The PID_RANGE define can be used to set range (in degrees) within the target temperature where the PID is active. Outside of the range the simple heater on/off method is used. Changed config to speed up getting to the target temperature, enabled min/max temperature safety check for the second extruder
- rewrote M109 code to be less confusing; - removed do not wait if lowering temperature configuration var (just use m104 if lowering); - changed the wait logic to consider any temperature within the TEMP_HYSTERESIS range to be acceptible to stop waiting; - added W parameter to allow changing the time it waits for temperature stabilization after reaching the target range; - added A parameter that if set to non 0 value will make the command wait for all the extruders that have non-0 target temperature; - added experimental L and H parameters (to M104 too) that allow to make the temperature lower or higher than the current target (will remove if temp control can't help with oozing from idle hotend); - added m208 command that take parameters T,X,Y for configuring extruder offset (T - extruder number, X,Y offset from the imaginary printing point); - made the extruder offset be a EEPROM storable/retrievable;
The temperatuires are printed like this "ok T0:27 T1:28 B:27". Here the 0 is the active extruder (active elways printed first).
|
We are trying only a dual extruder, and for start with, we will try to print only suport material with the second extruder. It's marlin capable? Also if you have a beta I will be very interested in testing all types of new stuff for RAMPS v1.4 board, so I can try the improvements and say if they are working or not! |
- Cleaned up and removed a bunch of unnecessary and inefficient code in the serial input processing; - Made the error detection ignore the incorrect line numbers if it saw an error and might be still looking at the bufered input that the host side sent before it saw the error message; - Added bed temperature window parameter and made the wait for bed heater code ignore the request if the target temperature is not set.
|
Is this pull request still live? It seems quite old? |
|
Clean up daid, clean up! and keep it up :) I'm here for the exactly same reason. I think some people just give up given how long it takes moderators to clean stuff up (not blaming, just saying). Would be good to improve it... |
|
Weired, I didn't get any notifications about the posts. I'm not sure about the pull request status, but the code is fully functional (for RAMPS electronics, the LCD support is untested). I've been using it for a while (it's quite stable now) and adding minor improvements from time to time (here are some recent experiment results: http://www.okob.net/wp/index.php/2012/10/29/dual-extruder-pla-printing/ ). I'm thinking of merging the mainstream changes in eventually. If/when done it will be easy to pull it back into mainstream, but the merge won't be simple (thousands of lines have changed in both my code and Marlin_v1). Not sure when I can undertake it. Might be a good idea to wait till Marlin_v1 is released. |
|
The current Marlin_v1 already supports 3 extruders, with LCD. (I know, because I have 2 dual extrusion Ultimakers that I can use) |
|
GIT log says that everything commited up to Dec 5 2011 has been merged in (commit 4fd75dc). I saw that Eric has created dob71merge branch a few months ago and can see that something (for example code for E-jerk) was moved in manually. Without knowing which commits were looked at it is hard to tell what other changes made it in. There are a number of things that I have added since the last year and from the quick look at the 'T' command code and the configuration file not many have made it in. Here are a few things from the top of my head:
Since you know the state of the dual extrusion support that is currently available in the mainstream one way to start might be checking what's available against the "Multiple extruder support" section of the README file on the https://github.com/dob71/Marlin/tree/m branch. It mentions almost all the changes visible to the user (I haven't described the options for relative temperature adjustments yet). |
|
While I would love to check out the changes, I currently have other priorities. I will keep this pull request open as a reminder that multi-extruder support can be improved quite a bit. As I see some changes in your list that I like 👍 so nice job! |
|
hey is there already a completed zipe file of all this changed programme. |
|
There might be a few things that could be useful for mainstream, but that pull request is really old. All the new developments have been moved to "https://github.com/dob71/MarlinX2". |
…ersioning explicit release versioning with check
Allow build-firmware to work with ccache in lib64
Resolve "Hotend Idle Timeout not being used" Closes MarlinFirmware#27 See merge request lulzbot3d/marlin!19
…ly-responses EX-1723 Com module friendly responses - add G7 relative move - add M801/M802 printbed temp commands - add M824 get active printhead command - add M797 reset calibration command - add M1015/M1016 position reporting commands - add M821 axis homing check - add M1017 multi status report
…dates Issue/firmware updates
Hi guys,
I'm working on adding another extruder to my Prusa. I haven't found suitable firmware w/ multiple extruder support, so grabbed Marlin and made the changes (saw a commit about that, so assume you are interested in multiple extruder support too). There are a lot of changes happening and merges will quickly become difficult, so don't want to hold on sending the pull request even though I havent' spend much time testing.
The changes should allow support up to 3 extruders. I have RAMPS 1.4, so the config is chnaged to show how to use it w/ 2 extruders (fan moved to pin 4).
There are quite a bit of changes. I've just merged them on top of Bernhard last commit.
(not sure what to do w/ autotemp though)
Changed the pins assignment to clearly separate bed and extruder heaters
and temp sensors, changed a bit how termistor tables are handled.
(only chanages what pins it uses depending on the active_extruder var,
but that's enough for switching extruder in the start.gcode in the
the profiles)