Welcome! Log In Create A New Profile


New XY table printer - software question

Posted by leadinglights 
New XY table printer - software question
August 29, 2014 10:09AM
I am building a new 3D printer and am hoping to short circuit some of the work on the software by picking the brains of the community.

The whole philosophy of the new printer is to have an awful lot of extruders --- like this

Initially I am hoping to have at least 5 extruder/hot ends and one other device - such as a bed leveling probe.

since many extruders would result in great mass I have opted for a table moving in bot X and Y with the extruder/hotends moving only in Z. This is similar to the mechanism used in printers such as the microFactory, Velleman K8200 etc., this will allow the extruder/hot ends to be mounted in a revolving turret. The required hot end being rotated into the datum and moved down by 1mm or so. There may even be a second turret so that very fast changes could be between selected hot ends with movement of the build stage only.

Photographs show the mechanism - somewhat similar to the moving XY head printers like Ultimaker and Tantillus. This avoids moving the mass of one stepper moter as is done in other printers with XY tables.

O.K., so down to the problem. Coordinating the rotation of one or maybe two turrets along with advancing the selected hot end is a bit non trivial but I think that it is within my capabilities to make a simple controller using a PIC microcontroller (8 bit PICs and I are old friends) which would take care of driving the steppers to select the hot end and advance it to the printing position, but it would need some form of command from the main controller - presumably RAMPS. The main controller would also have to wait for an acknowledgement from the turret controller.

Where to start with this bit is the bigest problem as I can talk assembly language of many microcontrollers like a native but am a bit leery even of K&R 'C' and hide under the desk if I come across C++ or Java. Without looking into the source code of Repetier, Marlin etc, where can I find that part of the interface?



Edited 1 time(s). Last edit at 08/29/2014 06:10PM by leadinglights.
Re: New XY table printer - software question
August 29, 2014 06:19PM
Just thinking, but you could use E1 (the second extruder) to control your stepper on the turret. You would need some sort of feedback ( one of the unused end stops) to know that your locked in. I am more intrested in how you will control all of the extruders and hot ends.
Re: New XY table printer - software question
August 30, 2014 05:13AM
That was my original thought but I went away from that when I realised that lifting the hot end off of the print to move or to switch hot ends takes a significant time already. Doing this with a turret of 5 weighing up to 2kg would be pretty slow.. It would be better to have an additional motor to lift only the extruder/hot end that is at the datum position. (or even just the business end - but this will be in another post)

The driving of the selected extruder is another one that makes me think in terms of a slave controller. If the step, direction and enable signals for the extruder are extracted from the RAMPS board they can be switched to each extruder motor under the control of the slave controller and a bunch of MOSFETs. Another possibility is having a clutched drive from one motor - baring any sudden insights I think this will be too difficult though.

I have not yet decided on the control of the hot end temperatures. Easy bang-bang control using the slave controller or possibly search ebay for cheap PID temperature controllers. I imagine that I will use the RAMPS temperature controller for one filament so that first layer temperature control can be hotter than the body temperature. Display of temperature is again undecided as are many other details.

Re: New XY table printer - software question
August 30, 2014 07:35AM
I was a little surprised at the 2KG head, but then I realized it is fixed, so you are not trying to move that mass.
I looked at a clutched idea myself for a not related, but similar project. search for copier clutch, they are small and cheap, down side is they are 24v, but that is easily overcome. I think to keep size down that is almost a must. Are you thinking direct drive or Bowden tube?
I just had another thought on this, coffee kicked in. need to draw it out, but the image in my head say.. damn that is good.. I will share after I draw it out.

the other thought I had was a dual z axis set up of sorts. the normal z, and a quick short travel z to lift the head and switch the hot end. maybe a cam or solenoid to pick up the assembly. Maybe I'm over thinking.. I tend to do that.
Re: New XY table printer - software question
August 30, 2014 08:54AM
ok so here is the idea, each extruder is actuated to mesh with the large gear when it is it's turn to extrude, otherwise it is lifted off the gear and sits idle. so you have one motor driving all of the extruders. only one g code for the extruder, you just need to insert an M-code?? to move the extruder into position.

i know there has to be a flaw in this that I am not seeing because it seems way to simple to execute.

Re: New XY table printer - software question
August 30, 2014 09:45AM
Hi good drawing you don't mess about. but don't think this can work. what about all the filament going into one extruder, yes you would need more motors but only one motor is running at any one time and extruder could move on its own, it would be normal weight. what do you think of this winking smiley
Re: New XY table printer - software question
August 30, 2014 10:30AM
Think of it as a stand alone unit, feeding the hotend(s) using Bowden tubes.
you could have them all feeing one hotend by combining all the tubes to one, with lots of retraction. I've seen multiple fed hotends.
Or you could feed multiple hotend, even at the same time.

I'm not sure I understand your exception, so please elaberate, if I didn't get it right.
Re: New XY table printer - software question
August 30, 2014 11:49AM
That's an interesting idea, cat.farmer. How would the gcode be generated to run such a mechanism?
Re: New XY table printer - software question
August 30, 2014 12:07PM
hell I don't know.. have to be someone smarter then me.
smileys with beer
Re: New XY table printer - software question
August 30, 2014 04:24PM
Hi cat.farmer,
That is a good idea. I initially dismissed it as I thought there would be problems if the gear teeth were not aligned when the bevel gears were brought together. However, after a bit of thought I decided that this is a good case for fixing in software by the following sequence

1) When an extruder is about to be swapped out the filament is retracted by the required amount PLUS a little bit to get the small bevel gear into a particular position. The exact amount of retraction is stored as a variable for that extruder so that it can be returned correctly
2) The extruder including it's small gear is then lifted out of contact with the large bevel gear and the whole turret is rotated so that the new selected extruder is in the datum position. The position of the small bevel gear will of course already have been set up during initialisation or from the last time it was used.
3) The new selected extruder is lowered so that it's small bevel gear meshes with the large gear
4) The previously saved retraction is reversed so that the hot end is properly recharged
5) Printing continued until the next chance is called for.

Picture shows the extruder at about 10 O'clock in mesh - all others lifted.

It is possible that with no extruders lowered the extruder motor could be used to turn the whole turret mechanism through some kind of a dog clutch.

Residulal problems involve things like the total amount of backlash being possibly quite large and whether there needs to be some Z-lift seperate from the unmeshing lift so that extruded filament is not sucked back into the hotend. I will compare this with a multi stepper motor solution - the problem may well be that a set of bevel gears costs more than a bunch of stepper motors.
Re: New XY table printer - software question
August 31, 2014 05:40AM
If the extruders are laid next to each other like a mouth organ instead of a turret then many of the problems go away. The extruder with it's gear could still be lowered onto the driving gear, with a number of extruders driven by a single stepper motor. Using software to position the gears such that they are already in mesh when the extruder gear is moved onto the motor gear etc..

Advantages of this are that the drive gear for the hobbed bolt can now be larger than the driving gear - and spur gears are much cheaper than bevel gears. Locking of unselected extruders to prevent the gear from rotating would be a simple matter of having a pin to engage with a tooth on the gear above and even the moving of the extruders until the selected one is at the datum position could be done with the same motor.

I will draw this up this evening
Re: New XY table printer - software question
August 31, 2014 08:57AM
from what I am understanding, and from what I see in the picture, you are going with direct drive hot ends?
wouldn't a Bowden set up make things easier and allow for more hot-ends?

I had thought about backlash in my design, and thought it should be minimal, no greater then 3/4 of the tooth pitch. (if my brain is grabbing the mechanics correctly)

I will agree that lining up the hot-ends makes things much easier, then you just need to set the offsets for them and you could build one big heat block, though one big heat block may not be a good idea.and you can build a 2d array of them as long as the farthest offset reaches center. looking at your x-y set up you have 6-7cm of travel, which should give you up 6-9 hot-ends, with a common heat block.
I am giving thought to how to control the separate extruders in my set up. both hardware and software. using the I2C bus on the Mega seems like an easy answer as I want to off load the control to the extruder set up, I am a PIC guy myself, so I may look at that and see which is the best way to proceed.

Oh- and I planned on printing the gears, who buys gears anymore????

cheers -

Re: New XY table printer - software question
August 31, 2014 12:28PM
The reason for the direct drive is that softer materials such as Ninjaflex do not work too well with a Bowden setup. Since I hear that even softer materials (including a very soft Silicone analogue) are being trialed it seems to be a good idea to use a close coupled setup (I will call it close coupled to avoid confusion with ungeared extruders)

Your point about Bowden cables is well taken though. my Rostock used a Bowden - direct drive (ungeared) as it happens. I have been very happy with it, particularly with PLA. I may opt for something like a set of 6 heads with the middle 4 being Bowden types and the end two being close coupled this would allow much closer spacing than an all close coupled setup.

As you mention offsets, perhaps I am being confusing about what I propose. The idea is to have no offset between the hot ends: When a new one is called the old one is shuffled along and a new one takes it's place - think CNC machines changing tools. I have not yet got round to doing any design work, but the old drawing below may help to clarify:-

If say the second extruder is in use and the forth is wanted then the following would happen:
The second head would be lifted 1+mm
The whole bank would move along by 2 positions until the forth head is in the position which the second occupied
The forth head is now lowered by 1+mm leaving the others high so they wont drag on the print
Printing now resumes with the selected material
Note that there may actually be an offset, but hopefully it would be a calibrational thing, something like X+0.120mm Y-0.065mm, Z+0.003mm

If you look at the picture you will see why I said 2kg weight, and why I am so pleased with your idea of clutching only the selected extruder.

The reason for not using printed gears is that the teeth should be as small as they can be so that a fairly small solenoid can be used to lift the unselected extruder. Printed teeth are good but not nearly as strong as Nylon or Delrin. On the beveled gears I would have used steel for the necessary strength.

On your final point, about having only one heater block: The wide variation between different materials makes this a bit difficult. Even different color PLAs can need different temperatures.

Edited 1 time(s). Last edit at 09/02/2014 05:46AM by leadinglights.
Re: New XY table printer - software question
August 31, 2014 11:38PM
Are you going to have each hotend wired in direct or have a set of contacts to power them?

Thanks Mike
Re: New XY table printer - software question
September 01, 2014 02:56AM
Each hotend would have it's own temperature controller except the one selected for the first layer so that temperature for thet could be higher for the first layers.
Re: New XY table printer - software question
September 01, 2014 05:25AM
Each hotend would have it's own temperature controller except the one selected for the first layer so that temperature for thet could be higher for the first layers.

Sorry I was thinking about how the physical setup would work out with the wires spinning around the central shaft, or if you were going to use a set of positional contacts for each hotend thermistor. The contact setup might be a way to tell the controler which hotend is where.

Thanks Mike
Re: New XY table printer - software question
September 01, 2014 06:31AM
The turret would be constrained to about one full rotation. Any more than that and the filaments would get in a terrible tangle. for example, extruder 1 could be swapped out and replaced by extruder 4 by going clockwise, but if extruder 4 were to be replaced by extruder 1 then the turret would have to rotate counderclockwise. Direct wiring would be possible here.

Having said that, I am now much more interested in using a sliding bank of extruders - approximately as shown in a drawing a couple of posts back, but now using a mix of types and only a single stepper to both move the hotend/extruders and feed the filament in the close coupled (non Bowden) extruders
Re: New XY table printer - software question
September 01, 2014 10:14AM
OK.. I get your reasoning now. had not considered the use of softer filamets.
if you run them in a all in a straight line bank, then there is no need to lift them, the heads will all be above the print. The tool exchange would just need to slide into place.

and for that matter, if you did use a turret, and it ran parallel to the bed, you would not need to lift it either.

side note- I like those extruders in your pic, I have never sen one that has a lock down bar on it, that would make changes and cleaning so much easier.
Re: New XY table printer - software question
September 01, 2014 11:16AM
Hi cat.farmer
The main point of lifting it to avoid raking the unused hot ends across the print. It also allows things like bed leveling probes to be part of the weaponry

The design is coming along very sweetly at the moment, things keep simplifying themselves and I am hoping to put together a proof of principle in the next week or so.

The loading door and locking bar works well as long as you don't install the filament but have the bar on the wrong side of it - that catches me every time. You will find more details at [www.thingiverse.com]
Re: New XY table printer - software question
September 15, 2014 03:11PM
In case this is of interest to anybody- and also in the hope that somebody knowledgable in the software can advise me. I have started printing the parts for my 5 filament extruder but am held up for some parts for a couple of weeks. To further clarify the design, I have included some drawings and renderings.

Showing two geared extruders and 3 bowden hot ends. The idea is to move the required hot end into the printing position, thus allowing the full area of the print bed to be accessed by each hot end. Hot ends not presently in use are lifted to prevent them coming into contact with the print.

Only one stepper motor is shared between all of the hot end or extruder/hot end combinations. The central gear is on the stepper motor and drives either a leadscrew to move the bank across, or drives the lowered extruder. Obviously, the teeeth of the gears must be lined up before they are meshed, but the way I see it, that is what software is for..

Renderings of a the heads above plus a bowden setup to feed the three center hot ends. This is very similar, but the leadscrew only selects which extruder is attached to the motor
Re: New XY table printer - software question
September 17, 2014 07:20AM
O.K., perhaps having pretty pictures does not get anybody interested, perhaps if I definded a little more clearly where I am having problems with the software side, somebody may have some helpful tips or even pointers as to where to look. So, in detail:

The first need is to have some output from a RAMPS board on SPI, I2C or even RS232 when a tool change is requested. The question is how to do this in Repetier firmware, Marlin or anything else. A particular problem is if the firmware were limited as to the number of different tools it can handle - or could the tool change be simply forwarded to the slave controller.

My design shares the tool change with the extruder stepper. When the stepper is driving a tool change, the steps would come from the slave controller, but when it is extruding the step, direction and enable signals would be taken directly from the part of the RAMPS board where the Pololu is normally connected and routed through to a Pololu on the slave board. The question here is if the firmware is able to send a tool change and then wiat for an acknowledgement that the tool has been changed before sending enable, step and direction signals.

I guess those will do to be going on with. Can anybody point to a blog or build log where anybody has looked into the detail of interacting with mainstream firmware for customisation purposes.

Sorry, only registered users may post in this forum.

Click here to login