Welcome! Log In Create A New Profile

Advanced

How many extruders do you need?

Posted by bobc 
How many extruders do you need?
September 20, 2013 09:58PM


I am keen to get support for multicolor printing out there, so I have been working on an extruder expansion board.

The initial concept is for 4 extruders (stepper drivers, heater outputs and thermistor inputs).

The interface is via I2C for ADC and serial IO (SPI compatible) to set outputs. It could be scaled up to 6 or even 8 extruders quite easily, though I would consider using a microcontroller for 8.

It is compatible with 3.3V or 5V logic, so could be used with any system with some spare IO.

Let me know what you think!

Edited 3 time(s). Last edit at 09/20/2013 10:06PM by bobc.
Attachments:
open | download - RAMPS-FD-EXT.png (28.6 KB)
Re: How many extruders do you need?
September 25, 2013 06:08PM
I think a four extruder expansion board would be perfect. Now that I've gotten dual extruders working well, I am keen on getting even more working.


Help improve the RepRap wiki!
Just click "Edit" in the top-right corner of the page and start typing.
Anyone can edit the wiki!
Re: How many extruders do you need?
September 25, 2013 06:25PM
Four extruders works quite well, because the ADC chip has 4 channels, and the digital IO fits on two chips.

I guess that it might be cost effective to use two four-channel boards to get 6 or 8 extruders.

Hopefully I will get this board made with the next batch of RAMPS-FD PCBs.
Re: How many extruders do you need?
September 26, 2013 08:38PM
I have uploaded latest version to github [github.com]

The board is routed and I'll be doing gerbers soon.
Re: How many extruders do you need?
October 05, 2013 09:21PM
This sounds interesting. I think 4 extruders is a good number. I would like the ability to have more x, y, and z motors that can be run indepentant of each other. Think of 2 y motors that control the bridge gantry. Each motor has its own home switch so that it can square the gantry. On this gantry is 4 x motors. Two on each side. Each one independent and each one holding its own extruder. This way you could print 4 things at once or move three of the extruders out of the way and only print with one. No ooze over your work. Each one has its own home switch and two of them have over travel switches mounted to themselves between the two X's that don't have overtravel sensors. No crashing into each other.
4 motors on the Z would be nice one at each corner with 4 sensors for home and one over travel so that it could auto bed level.
To go a bit further you could have 4 Y bridge gantry motors. 2 bridges. 2 X motors on each one Or maybe 4 one each one Then you could space the bridge gantrys a set distance apart in software and then print 4 larger intems at the same time in slave mode. And of course you would need a over travel on one of the bridges like the X motors to keep detect crashes.
The last method would take 16 steppers if you went with 4 extruders or 20 if you went with 8 extruders. Lots of home and overtravel sensors and many thermistor inputs for the extruders and hot bed. Not to mention plenty of Fans and cartrige heaters. Would be a very productive machine.

Donny
Re: How many extruders do you need?
October 10, 2013 09:33AM
Wow, 20 steppers is a lot! I would love to see that machine smiling smiley

I realised the ADC chip I picked is not really a good choice. the MCP3428 is a 16 bit ADC, but has a low sample rate. I have therefore changed to MCP3008 which is faster but only 10 bits. I think that is enough for temperature control, although there is a 12 bit version. MCP3008 also has 8 channels.

I also wanted to have the MOSFETs PWM controlled, bit banging across SPI for software PWM is quite an overhead, and I really want to have the SPI kept free for stepper control. Looking for a chip which does PWM, there are several designed for LED control, and I have picked PCA9685 which looks close to what I want. This allows each MOSFET to be set with its own duty cycle via I2C and does not require constant updating.

With the availability of extra channels on the ADC, I have increased to 6 extruders. I know there is at least one person looking for 9 extruders! I have also simplified the output mapping, so there is one byte for each of step, dir and enable pins which should make software easier and avoid excessive bit manipulation.

I am just finished off the layout for the new revision, hopefully I will be ready to get boards made soon.


RAMPS-FD-EXT6 by donotdespisethesnake, on Flickr
Re: How many extruders do you need?
October 11, 2013 08:22AM
2 points:
1) Temperature moves slowly. Fast ADCs are not a requirement for temperature control. You can calculate the speed needed from the load variability and the thermal mass heat capacity of the hot end. The load variability is just the power needed at maximum extrusion rate minus the power needed at minimum extrusion rate, multiplied by the maximum rate of change of extrusion rate.

2) I've looked for I2C or SPI PWM controllers for years. They don't exist. That's because it's cheaper to just use a microcontroller with a lot of PWM instead. If you need more PWM channels, maybe consider a larger microcontroller?

Edited 1 time(s). Last edit at 10/11/2013 11:43AM by Annirak.
Re: How many extruders do you need?
October 11, 2013 08:28AM
Or add a small cheap microcontroller that accepts I2C or SPI to produce the additional PWM channels? This assume you can do the coding or find someone to do it for you.

Maybe I might just have to look into something like that for a future project myself as a generic module, not just for RepRap extensions.
Re: How many extruders do you need?
October 11, 2013 12:57PM
Annirak Wrote:
-------------------------------------------------------
> 2 points:
> 1) Temperature moves slowly. Fast ADCs are not a
> requirement for temperature control. You can
> calculate the speed needed from the load
> variability and the thermal mass heat
> capacity of the hot end. The load variability is
> just the power needed at maximum extrusion rate
> minus the power needed at minimum extrusion rate,
> multiplied by the maximum rate of change of
> extrusion rate.

Hmm, well what you say may well be true, but the faster chip was cheaper and has more channels, so that was really the reason.

> 2) I've looked for I2C or SPI PWM controllers for
> years. They don't exist. That's because it's
> cheaper to just use a microcontroller with a lot
> of PWM instead. If you need more PWM channels,
> maybe consider a larger microcontroller?

Have you looked at PCA9685? (and similar)

My first thought with this board was to use a micro, but there are some disadvantages. Costwise there is not much in it. The big plus is that a "dumb" board requires no firmware, so anyone can build it and get using it straight away. Writing software may be "free" but does cost time, which means I can design it and start using it ASAP.

A separate micro also means comms, and comms means protocols, and protocols need software, all of which adds up to complexity, latency and timing issues. RepRapPro are using a slave board for their Tricolour Mendel, so I figure they have that angle covered, but I hear through second hand sources they have difficulty with synchronisation issues... could just be rumour.

Using a bigger (master) micro means designing a whole new mainboard, so that is quite a different thing to an expansion board. The Due has a 144 pin chip, yet there are not quite enough pins to support a further six extruders, especially if you also want to support LCD panel. An extension board like this means that anyone from Sanguino upwards can add extruders to the base system.

I am tempted to design a variant with a micro, but that would be more for exercise as I don't see much benefit, except that it could also be used as a standalone stepper controller/temperature controller. Deciding which chip to use is the thing, do you have one in mind? And who will write the software?

I have quite a few other projects on the go, but if anyone wants to volunteer to write the software, I will design and build a board and send it free of charge! Just name your cheap microcontroller smiling smiley
Re: How many extruders do you need?
October 11, 2013 01:01PM
One reason I commented on designing around a micro, is you can probably offload the ADC & PWM functions to the same device, freeing up more pins for other things, like additional servos. Of course that does require code changes in the main mcro as well as the auxilary. A quick look showed that the ATMEGA48P or similar may be good candidates for the job based on cost, features, & pin counts.
Re: How many extruders do you need?
October 11, 2013 02:04PM
Yes, I was assuming that we would replace the 5 ICs with one microcontroller, which requires 6 ADC, 6 PWM, and 18 GPIO, which I think requires a micro with at least 44 pins which would rule out Atmega48 - but according to Atmel there are 104 other AVRs with 44-64 pins to choose from! Perhaps Atmega32 in a 32 pin package?

If it was AVR, then it would be handy to make it Arduino compatible so the Arduino IDE can be used for code development. To make design easy, it would be nice to use a ready made module, like a Nano or Teensy, at least for a prototype.

Personally, I would like to design a board based on Freescale KL25, Cortex M0 running at 48MHz, 128KB flash, 80 pins, loads of timers, only £4. It is also supported by the mbed platform, and there is a £10 Freedom board. I have the hardware already, not really used it yet. The Mbed online compiler is quite usable, and there is also now an offline ability.
Re: How many extruders do you need?
October 11, 2013 02:20PM
Actually, I was thinking of fewer per ATMEGA48P, and reserve several lines for low bits on the Addressing, then connecting via I2C people can hook up as many as they need based on their needs since not veryone needs a huge number.
Re: How many extruders do you need?
October 11, 2013 02:47PM
Ah, I get you. So maybe support 4 extruders with one Atmega48? I think that is doable. And it would expand easily, I like that. I posted a 4 channel version up thread, so it would look like that with a CPU in the middle instead.

Can I tempt you with Atmega32u2? It has USB, and also is the same chip as Arduino Leonardo so has built in IDE support.

I guess I committed to doing this, but I would make a slight tweak which is to have a plug in CPU module. Then we have the option to use different CPUs.
Re: How many extruders do you need?
October 11, 2013 09:18PM
The extruder is a "spatial" dimension, E... just like X,Y are. Implementing the extruder stepper via i2c is practically same with implementing X via i2c, while Y is still connected traditionally to master uC. For all these dimensions the computation has to be done together, but also the execution has to be together - no delay(s) acceptable. So, coz E and XY sort of "work together", such involved comms would be required to be sort of "realtime" ... smiling smiley
Re: How many extruders do you need?
October 11, 2013 09:35PM
My thoughts were the heaters PWM & sensors would be off loaded, not the steppers. If you offload the steppers you MUST kill the latency which isn't practical.
Re: How many extruders do you need?
October 11, 2013 10:34PM
The heaters and adc pins are minimalistic load task, other than the fact they keep some pins occupied, not much else that would justify migrating them to other uC. I think solution would be just to use a uC with a heap lot of pins. Like for 10 total steppers would be 30 pins, though some of the enables could be shared. Not impossible, some offer like ~50-60-70 pins.

Alternatively perhaps use dedicated steppers with other interface than step/dir/en, like one interface that could allow daisy chain of the stepper drivers. That would be however lots of work both hardware and software, would be more expensive, and probably tied to a certain driver IC or manufacturer. Not much along the lines reprap usually goes.
Re: How many extruders do you need?
October 12, 2013 02:16AM
Have you guys seen reprappros [github.com]

They are using a second controller board as a slave board to drive their extra extruders

[www.reprappro.com] for more details.
Re: How many extruders do you need?
October 12, 2013 05:58AM
Learner Wrote:
-------------------------------------------------------
> My thoughts were the heaters PWM & sensors would
> be off loaded, not the steppers. If you offload
> the steppers you MUST kill the latency which isn't
> practical.

Yes, that was the key point of my design, which was perhaps easy to overlook. The stepper data is transferred over SPI, but only becomes active when the latch pin is toggled. So the step pulse can be exactly synchronised by the host to the step pulse of the hosts own steppers.

Any system where you transfer data via comms will result in an unpredictable latency and a synch problem, the host just doesn't know precisely when the slave is outputting the pulses. I believe this is the issue that RepRapPro have encountered, and are fixing in a similar by having a GPIO line to act as a synch signal.

On RAMPS, there are only so many spare IOs. If you use an LCD panel, there are maybe 10 left on AUX4 plus others spread around. 4 extra steppers takes 12 pins, or 8 if you don't bother with enable lines. So you might just squeeze in 4 steppers, then there is no further room for expansion.

With this board I can support up to 6 extruders with a handful of pins, and each additional board would take an extra couple of pins. It's cheap, efficient on pins, easy to drive, there's no slave software, no latency, can be added to any base board... clearly it's the best solution smiling smiley
Re: How many extruders do you need?
October 24, 2013 06:59PM
Gerbers now sent for PCB fabbing!

I've added some extra headers to break out unused PWM and motor channels, apart from that it is same as above.

I have a couple of ideas already for the next version smiling smiley I want to add direct control of Step pins, as an option, in case the SPI control is too cumbersome, or if SPI is not available, and also break out all the Motor control pins to allow external motor drivers to be used.


Re: How many extruders do you need?
October 31, 2013 07:51AM
bobc Wrote:
-------------------------------------------------------
> Annirak Wrote:
> --------------------------------------------------

> > 2) I've looked for I2C or SPI PWM controllers
> for
> > years. They don't exist. That's because it's
> > cheaper to just use a microcontroller with a
> lot
> > of PWM instead. If you need more PWM channels,
> > maybe consider a larger microcontroller?
>
> Have you looked at PCA9685? (and similar)

It would seem that things have changed. This looks nice.


> My first thought with this board was to use a
> micro, but there are some disadvantages. Costwise
> there is not much in it. The big plus is that a
> "dumb" board requires no firmware, so anyone can
> build it and get using it straight away. Writing
> software may be "free" but does cost time, which
> means I can design it and start using it ASAP.
>
> A separate micro also means comms, and comms means
> protocols, and protocols need software, all of
> which adds up to complexity, latency and timing
> issues. RepRapPro are using a slave board for
> their Tricolour Mendel, so I figure they have that
> angle covered, but I hear through second hand
> sources they have difficulty with synchronisation
> issues... could just be rumour.
>
> Using a bigger (master) micro means designing a
> whole new mainboard, so that is quite a different
> thing to an expansion board. The Due has a 144 pin
> chip, yet there are not quite enough pins to
> support a further six extruders, especially if you
> also want to support LCD panel. An extension board
> like this means that anyone from Sanguino upwards
> can add extruders to the base system.
>
> I am tempted to design a variant with a micro, but
> that would be more for exercise as I don't see
> much benefit, except that it could also be used as
> a standalone stepper controller/temperature
> controller. Deciding which chip to use is the
> thing, do you have one in mind? And who will write
> the software?
>
> I have quite a few other projects on the go, but
> if anyone wants to volunteer to write the
> software, I will design and build a board and send
> it free of charge! Just name your cheap
> microcontroller smiling smiley

I have something on the go myself, so I won't be taking you up on your offer.
Re: How many extruders do you need?
December 29, 2013 11:16AM
hello!
I'm new in this 3D printing's world and I'm still need learn a lot.
There is no way to mix color inside an extruder?
If it was possible, an idea is make a indenpendent and multimulticolor extruders based in AVR controllers using I2C or SPI.
With 4 or 5 steppers mixing the colors or maybe mixing some pigment on the filament.
Maybe to desing anothers tools following this line. Like drillers or something.

Cleber
Re: How many extruders do you need?
December 30, 2013 09:12PM
A few people have tried it, e.g. [richrap.blogspot.co.uk]. It seems that to get good mixing you need a "stirrer", I think RepRapPro did some stuff on this.
I would love to build an extruder like this, but my machining capability is not good, so for the moment I am setting up multiple single extruders.

BTW, I have an EXT6 board assembled, I just need to get round to writing the firmware and testing it smiling smiley


What is Open Source?
What is Open Source Hardware?
Open Source in a nutshell: the Four Freedoms
CC BY-NC is not an Open Source license
Re: How many extruders do you need?
January 03, 2014 04:42AM
Just a thought - why not multiplex the extruder control and switch on whichever extruder you require (you could feasibly do it with one extruder driver and just multiplex the output control with a couple of mosfets per channel) and use I2C to switch on/off the channel you want to drive. It could allow for relatively easy switching of multiple extruders. If you want to mix several colours at once, then a mix chamber before extrusion is probably the easiest way (spiral grooves? Mixing impeller?) with a single heat source and four bowden tubes to feed it? So then your temp control doesn't expand as your only driving one extrusion nozzle, but the control only needs to expand to multiple feeds into the nozzle

Just a thought
Re: How many extruders do you need?
January 05, 2014 07:33PM
It's a possibilty, but I think by the time you have added the multiplexer and all the mosfets required it would be almost as complicated as using separate stepper drivers. Stepper drivers are basically a bunch of mosfets in a single package anyway.

I hear more rumours of 4 way hotends, so it's time to revise the extruder expansion board again.

I need to rework the 6 channel version (EXT6) with improvements I have picked up from RAMPS-FD. I also haven't got round to writing any firmware to support it.

While I wait to do that, I decided to revisit EXT4. That had the advantage of not needing any special firmware support, and should be plug and play. I reworked the layout and I think came up with a much better design.

So there will be two versions, EXT4, a simple extension, and EXT6, a more advanced version to support up to 8 channels.

This is EXT4 as it currently looks:



The thermistor inputs have their own zone in the corner with a separate Reference voltage and ground, and the stepper drivers and heater mosfets are also separated in two zones, although they share a common ground.


What is Open Source?
What is Open Source Hardware?
Open Source in a nutshell: the Four Freedoms
CC BY-NC is not an Open Source license
Re: How many extruders do you need?
January 06, 2014 03:54AM
There's a bit more to the stepper drivers (logic, current control) than mosfets (although it's fairly certain that they use them in addition), I'm just coming up with ideas - you might be able to multiplex the signal bus to the stepper drivers (direction and step signals) a little easier instead of switching on/off power mosfet (or relay?) a lot cheaper (milliamp [microamp?] switching capacity, TTL logic)
Re: How many extruders do you need?
January 09, 2014 03:57AM
hi bobc !
I have just tested 4 color printing in one single hotend.
do you have yet tested the EXT4 ?


[www.falla3d.com]
[3dita.blogspot.it]
Re: How many extruders do you need?
January 09, 2014 06:58PM
I haven't build any boards yet, so no. I plan to send an order to get some boards this weekend.


What is Open Source?
What is Open Source Hardware?
Open Source in a nutshell: the Four Freedoms
CC BY-NC is not an Open Source license
Re: How many extruders do you need?
January 10, 2014 07:11AM
Hi bobc!

I just came across your work recently and I have to tell you that your work will have huge impact on new machines! Excellent work, keep on going! Can't wait to see your RAMPS-FD released!
Re: How many extruders do you need?
January 10, 2014 08:57PM
Hey Bobc

Exellent work. If I go for a larger expansion board than 4 for the duet then sonething along these lines would be good. I was wondering though about the relectance to use a slave microprocessor for pwm/adc. Surely the chips you are using have a protocol (i2c/spi) like the i2c digipots and gpio extenders I use. So if you lije that protocol then implement it on the slave microcontroller. Effectively that firmware plus microcontroller becomes a giant pwm or adc expander.

Cheers

Tony
Re: How many extruders do you need?
January 10, 2014 10:27PM
In my experience, implementing high-speed low latency comms protocols is not that easy. It's the kind of thing I do at work smiling smiley Someone has to write the firmware, test it, support it. Users will also need a way to program boards. I did offer to design and build a board with a micro if someone wants to go that route, but no takers smiling smiley In fact, you probably don't need to design new hardware, I think there are already printer controllers with ARM and SPI/I2C interfaces.

I think the only people to have tried the slave processor recently are RepRapPro with the colour Mendel, you might have more knowledge of that than I do. From the little I have gleaned, there were problems with it, which may be partly why RRP took a different approach with Duet.


What is Open Source?
What is Open Source Hardware?
Open Source in a nutshell: the Four Freedoms
CC BY-NC is not an Open Source license
Sorry, only registered users may post in this forum.

Click here to login