D3D Printer Design

From Open Source Ecology
(Redirected from D3D Requirements)
Jump to: navigation, search

Tech Tree of Choices


Higher Level Goals

  1. Fits Extreme Manufacturing model. This means optimizing for a parallel build process.
  2. Distribution of the machine through distributive enterprise propagation
  3. Design being built upon, resulting in design remixes/derivatives
  4. Distribution of derivatives through distributive enterprise propagation
  5. Distributed Market Domination via derivatives



The following requirements lists have been compiled using parts of Axiomatic Design Methodology. The main point we've borrowed can be summarized like this:

We strive towards creating lower triangular matrix mappings (preferably diagonal matrices) between the four domains:

Customer needs ↔ Functional requirements ↔ Design parameters ↔ Process variables

The formulation "striving towards diagonal matrix mappings" may be formulated more verbosely as

Try to organize a list (vector) of customer needs such that they are mutually independent.
Try to make each functional requirement address exactly one customer need.
Try to organize a list of functional requirements such that they are mutually independent.
Try to make each design parameter affect the fulfillment of exactly one functional requirement.

There's a special emphasis on the mutual independence of functional requirements within the axiomatic design methodology. The principle is regarded so useful and important that it is dubbed Design axiom 1.

The matrix mapping formal language


See MIT course notes for more on axiomatic design.

Desired Attributes

  1. Easy to use (consumer grade)
  2. Technical coherence within OSE product ecology
  3. Produce-able with other open source tools (see Productive Recursion)
  4. Easy to build
  5. Cheap
  6. Reliable and maintenance free
  7. Easy to document
  8. Easy to teach
  9. Fast/effective printing
  10. Fills group of related production needs
  11. Scalable
  12. Easily extend-able
  13. Ethical and philosophical coherence with FSF and related Open Source Hardware communities
  14. Has documented criteria for performance and quality of printing

Functional Requirements

Each FR maps to one or more desired attributes. Marked within parenthesis.

  1. Build-able during 1 day workshop, including a pleasant learning and social experience, even for inexperienced builders (4, 8)
  2. OSE Label documented (2, 14)
  3. Automatic bed leveling mechanism (1, 6, 8, 9)
  4. OSHWA certification compliant (2, 13)
  5. $500 in parts for single print head version (5)
  6. Wirelessly controllable (1, 9)
  7. Capable of storing and independently running wirelessly uploaded gcode (9)
  8. Ninjaflex print capable (10)
  9. Single print head version easily extend-able to accommodate quadruple parallel printing (9, 12)
  10. Capable of 1000 hours of maintenance free printing between any required fix (6, 14)
  11. Independent parts must be used in such a way that the complete design is easily scalable up to sizes that support meter scale 3D printers (2, 11)
  12. Addable clear enclosure (10, 12)
  13. Modular tool head attachment (2, 12)
  14. Functions as an effective Repstrap (13)
  15. XY-fixed build platform (6, 11)
  16. Heated build platform that can be retrofitted readily without compromising bed leveling mechanism. (10, 12)
  17. Capable of bumping (strong and tall) prints off of build platform without human assistance (6, 9)
  18. Works with open source filament from open source filament extruder (2, 3, 13)
  19. Functional Logic and design rationale is fully documented (1, 4, 7, 8, 12)
  20. Capable of printing currently mass produced conductive filaments (10)
  21. Modular linear actuators (2, 4, 7, 8, 10, 12)

Design Parameters

These are found in the design file Design_numbers.scad.

Some parameters that this project does not control (like exact size of Nema17 motor) are captured in Measured_numbers.scad.

At the time of writing this (31 Dec 2015), no complete mapping between functional requirements and design parameters is yet finished.

Future Work

  1. Respects Your Freedom certified
  2. Works with irregular dimension filament
  3. Coherence with other machines to achieve Productive Recursion of a complete workshop tool chain
  4. Capable of sensing different abort situations
    1. Detached print
    2. Failing material feed
    3. Improper temperature of print
    4. Failing positioning system (skipped stepper motor steps or similar)
  5. Capable of automatically pausing abort situations 1 and 2 and presenting manual mitigation instructions and resume options
  6. Capable of automatically mitigating abort situations 3 and 4
  7. Addable syringe head for conductive ink printing

Link Matrix

Source code: Github repo
Licences: Repo: GPLv3, All wiki information: CC-BY Follows FSF's recommendations
Part of: D3D Fusion

Design Brainstorm

Making it modular

Much like Alexander Stepanenko has done for CNCs here:

This would allow extending to a multi purpose machine at a later stage. Examples of existing multi purpose machines are Diyouware[1] and Fabtotum Fabricator[2].


This means driving the X/Z directions by rotating two motors in same/opposite directions. The idea has been tested with good results[3].

The big win with this configuration is saving one motor (compare to current common designs that uses 2 motors for Z axis) and much easier build (thread and bearings replace threaded rod with nut).


There's nothing hindering us from also driving a Y axis with lines, like shown here:

Again, saving in a Y-axis belt and motor makes it an easier build. Using v-groove bearings and dynema line for driving all axes also takes down the unique part count really low.


  • Prusa i3 Steel
  • Ultimaker
  • DIY CNC machines - specify more here...
  • Linear actuators built as stand alone modules
  • Modular Desktop CNC

Everything below here is being rewritten and filled into the D3D Tech Tree of Choices slide show

Weight calculation for steel sheet frame

Mass fills a function in itself because higher inertia counteracts vibrations. A mapping from design parameters to resulting eigenfrequencies would be useful to better explain this.

Side lengths/m ~0.3
Sheet thickness/m ~0.003
Cut away fraction 0.44
Resulting steel volume/m^3 0.0006048
Density of steel/(kg/m^3) ~8000
Resulting total weight of frame/kg ~ 4.9

Motor placement

Z motor is placed near top of printer so that we can scale in Z-direction by giving frame "legs" and mount a longer Z-axis actuator without imposing a new motor position for Z motor.

Linear motion

A 3-axis Cartesian 3D printer needs to control linear movement very precisely. To keep firmware simple and computational load low, open loop arrangements (no sensor feedback regarding motion) are preferred for simple printers. This could for example be achieved by putting electromagnets on a row and placing a ferromagnet above it. Sequentially activating the electromagnets would make the ferromagnet move along a straight line in a controlled way.

Pros of this solution:

- Easy to understand
- Open loop control, no feedback or feedback processing needed


- Needs many electromagnets and wires (doesn't scale)
- Off the shelf driver soulutions not available
- A range of possible speed/force-ratios are built into the machine
- Steps are discrete, so precision is limited

All small 3d printer designs overcomes the cons by having the electromagnets arranged in a circle, and the ferromagnets attached to a shaft right in the middle of it. This gives the advantages

- Scaling problem solved. Can do infinitely many rotations with fix number of magnets.

... but adds the disadvantage

- Outputs rotational motion that needs to be converted into linear motion

Converting the rotation into a linear motion could be done in a number of ways:

  1. Rotating a pulley that drive a belt/wire
  2. Rotating a threaded shaft
  3. Rotating a gear that "walks" a toothed strip

See Polhems mechanical alphabet for suggestions...

Pulley and Belt or Wire

The usual way to drive the axes of a 3d printer is by belts (GT2) or by some kind of non-flexible line/wire. The pros of belts/wires:

- Cheap
- Well known/widely used
- Easy to source
- You can change gear ratio by changing pulley, keeping the belt itself

Cons of belts/wires:

- Must be cut to length
- Must be fastened somehow
- Must be tightened somehow
- Needs retightening after some time
- Needs guides and bearings to run smooth and stay in place

Threaded shafts

A common way to build a linear actuator is to use a threaded shaft and a nut/bearing for translating rotational motion into linear motion. The choice of threaded shaft type is a compromise between price and performance.

Construction type

Cheap common studs designed to be used in tension, keeping things in place. They're not designed to be very straight or to be very wear resistant. When supported by additional smooth rods or extrusions, they're good enough for light and slow linear actuators. Most RepRap designs use them in their Z axis actuator.


Designed to translate turning motion into linear motion. About twice the price of construction type studs.

Available already mounted as stepper motor shafts: [4][5]

Ball Screw

A helical raceway for specialized ball bearings. Less friction than leadscrew. About twice the price of leadscrew.

Roller Screw

High precision screw type that use planetary type bearings. Performance is usually very good, but price is an order of magnitude higher than that of ball screws[6].

D3D Printer Design Choice

The D3D Printer will have a Cartesian coordinate system driven by four linear actuators. For modularity and ease of build we want the linear actuators for the different axes to be as similar to each other as possible without sacrificing print speed or accuracy.

The leadscrew type of threaded shafts will be tested first. Since they are sold as mounted stepper motor shafts, they can potentially eliminate the need for a coupling between motor and shafts. Couplings are usual sources for misalignments, so getting away from them is a big relief.

The pros of ready-mounted threaded shafts:

  • Easy and fail safe mounting
  • High and predictable precision over time
  • No maintenance
  • Needs less guide/support parts than belts

The cons of ready-mounted threaded shafts:

  • Harder to source
  • More expensive
  • Fixed pitch

Price examples

Pitch/torque Examples

  • 3 tpi, 8 mm. 10 RPS = 600 RPM. Typical curve. - [7]
  • RepRap Lisa Simpson - [8]
  • Using these motors - [9] - torque curves are - []
  • About stepper motor curves - [10]

Linear guides

Use linear bearings with flanges for easier mounting: [11]

Positioning in 3D space

Feeding plastic



Direct extrusion Used by most early RepRaps. Drawback is that Extruder motor is heavy (do we don't want to move it along with hot end). Some effort has been put into combining direct extrusion with fixed E-motor and a sliding hobbed bolt[12]. There's also the Flexible Drive Shaft Extruder[13] which has been reported to work well.

Bowden extrusion This is the most common way to extrude filament. Extruder motor is fixed and filament is pushed from extruder motor to hot end through a PTFE tube. Introduces more delay and tension complications than either of the direct extrusion solutions.