You may find more information on my Blog here - http://richrap.blogspot.com/2011_06_01_archive.html
This is the basic Idea for making one -
People seem to do this in a number of different ways -
1) - Start the print with one colour filament, pause the print and reverse out the filament and load a new colour, continue the print.
2) - Join lengths of different coloured filament together and print them in one go (using hot-air guns or flames).
3) - Use multiple extruders with different coloured filament, produce some complicated Gcode to control them.
I tried joining with a flame (lighter) this is not a good idea, it does not work well and it's easy to snap the join after cooling, it also can char the filament, not something you want to feed into your extruder.
I then tried a flat heated block of Aluminium, melt both ends and join, roll them on the block, this works but can make a mess and it's a little fiddly.
And after a quick try of a hot-air gun (don't bother it's not easy at all) I decided to try and make a temperature controlled filament joiner -
I decided to make a Aluminium block with a heated channel so I can join and rotate the filament, this works really well and it only takes 5 seconds to join pre-cut lengths together.
1) - Cut an Aluminium block, drill a hole for the resistor (6.8Ohms) and then slice it so you have 'joining channels'
2) - Bond in the resistor (fire cement) and then insulate the bottom of the block with something that is not going to catch fire, PEEK, PTFE, silicon etc.
3) - Wire it up just like you would with a 3D printer hot-end and add a thermistor (I also added an LED to tell me when it's on)
Mount it to a block of wood or something you can clamp down.
4) - You can use your RAMPS electronics setup and a host program to control the temperature as it's the same as your hot-end. (if you have a resistor hot-end that is)
I found a good temperature was about 160 Degrees C(For PLA, For ABS it's going to need to be hotter), this gives you time to heat and rotate the filament and also joins it really well.
5) - So if you hold a piece of filament in each hand and melt both ends on the side of the Alu block, then sith the into the grove and push together then give them a quick rotate you should have a joined filament (after a little practice).
Improvements and changes to think about if you decide to build one -
1) - Have a shorter heating zone, just ~4mm for each side, this would help keep the filament more rigid when you twist it to remove the join.
2) - Have a bigger flat area that you can quickly melt both the filament ends, I'm using the side of the block to do this, but a bit more area would be good.
3) - Have a cold block or wet sponge to rapidly cool the joined filament in place or a foot pedel (you need both hands to hold the two filaments) controlled fan so you can blast cool it.
*- Maybe make the heating block clamp together in two halves like an electric plumbing pipe joiner - (See picture and if anyone makes one, let me know how well it works).
If you had a foot-pedal controlled one of these for filament joining it may make the job even easier.
Make one, you can print all sorts of cool looking things and lots of colours will just make them look even better.
Please post improvements, ideas or your results.