RUG/Pennsylvania/State College/Software/Parts/Dual Extruder

From RepRap
Revision as of 19:42, 7 December 2012 by Bbv5002 (talk | contribs) (The Quest for Dual Extrusion)
Jump to: navigation, search

The Quest for Dual Extrusion

The purpose of this page is to document the Penn State RepRap User Group's progress towards a system that will be capable of dual extrusion. There are many incentives for the pursuit of a dual extruding RepRap. With such a system, the class would be capable of printing much more complex objects by using different colored plastics and different types of materials in the same print. Furthermore, as the capabilities of our systems continue to grow (in terms of being able to print a wider variety of objects), the class' usefulness for both the RepRap community and the Penn State College of Engineering will also continue to increase. There are already many introductory level engineering design classes that utilize the printers to create solid models for their design projects, but with the ability to print in multiple colors and materials, other professors and groups within the university may become interested in utilizing our services rather than having objects printed commercially.

For simplicity's sake, we have chosen to try and construct a dual extruder that is based off of the current single extruder (a derivative of 'Wade's Extruder'). In this way, we would be able to use existing parts and designs to assemble the new extruder, hopefully making few, if any alterations. The only major change that will need to be made is the creation of a new hot plate that will be able to support two extruders. Other than that, the goal is to use exclusively parts from our current extruder design, most likely simply placing two complete extruders side by side on the same OpenX assembly.

Beyond the actual hardware of a dual extruder system, there will also need to be some modifications made to the firmware and software that communicates with the extruders and allows them to communicate back to the computer. Adding a second extruder means calibrating the system so that when one color is finished printing its part of a layer, the second tip can move into the correct position on the layer. This should involve simply compensating for the horizontal distance between the two hot tips, assuming that the two tips will be in line with each other on the carriage. We will also need to find a way to

Progress Blog

1.24.12: It turns out that there was someone else who had the exact same intentions as I did (Dual extrusion, Ramps, Marlin), but he was just quicker to figure it out than I was. Awesome, less work for me. But now that I have the proper firmware (found here), I've changed the proper lines in the configuration.h and pins.h files, and so in theory it should work. The Mondo is almost assembled, and one of my colleagues is looking into the specific build of Skeinforge that supposedly is capable of generating G-code for dual extrusion. The goal is to have the printer running with a single extruder in the next week or two, with the dual setup operational shortly thereafter.


1.17.12: It's a new semester, meaning another attempt at Dual Extrusion. After my short battle with it last semester, I'm back and ready to tackle it once and for all. If MakerBot can produce a commercially successful dual extrusion system, I should be able to figure it out with a little help from my colleagues here at Penn State.

We've made a few decisions as to the configuration of the system. We are going to be using RAMPS electronics, a shield that attaches to an Arduino unit, to drive the machine. Tentatively, the firmware used will be Marlin, a derivative of sprinter but with a few upgrades that make it a step above. All of this will be mounted on a Mondo RepRap, allowing for more room and hopefully some really big and cool prints.

Changes of the day:

Under configuration.h

#define EXTRUDERS 1 becomes #define EXTRUDERS 2 (to specify 2 extruders instead of 1)

#define MOTHERBOARD 7 becomes #define MOTHERBOARD 33 (to load the pin configuration for RAMPS 1.3 and 1.4)

I commented this line #define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200*8/3,760*1.1}
and uncommented this line #define DEFAULT_AXIS_STEPS_PER_UNIT   {80.3232, 80.8900, 2284.7651, 757.2218}

This was to bring the parameters to what is specified for the SAE Prusa specs, I'll need to check on these for our current machines.

Thoughts to work with for next time.


This line was located about 3/4 of the way down on the Marlin.h tab.

#if (EXTRUDERS > 1) && defined(E1_ENABLE_PIN) && (E1_ENABLE_PIN > -1)
  #define enable_e1() WRITE(E1_ENABLE_PIN, E_ENABLE_ON)
  #define disable_e1() WRITE(E1_ENABLE_PIN,!E_ENABLE_ON)

I believe that tracking down these other parameters will help me figure out more about how to tackle the firmware.



10.18.11: Firmware night, and I must say, it's going to be quite the task. I spend the night familiarizing myself with the firmware language and editor, as well as locating the sections of code that will need modification. The actual firmware rework will have to wait though, as I need to see exactly what sort of code will be sent to the machine with regard to tool (extruder) selection. This will happen as soon as I can learn Skeinforge and begin generating the code that will be sent to the machine.


10.11.11: Today marks the beginning of the project. I assessed the feasibility of the project and determined which software, electronics, and hardware to use. The selections can be found in each of the respective sections below.

Aspects

Hardware

Electronics

Firmware

Software

Code