Rostock

From RepRap
Revision as of 20:09, 19 July 2012 by Johann (talk | contribs) (Design Goals)
Jump to: navigation, search
Crystal Clear action run.png
Rostock

Release status: working

Rostock.jpg
Description
Rostock is a delta robot 3D printer prototype.
License
Author
Contributors
Based-on
Categories
CAD Models
External Link


Rostock is a delta robot 3D printer prototype, built in 2012 by Johann in Seattle, USA.

Design Goals

  • Build volume: 200x200x400 mm (8x8x16 inches).
  • Footprint: 300x350 mm (12x14 inches).
  • Print surface: 200x200 mm heated glass which never moves.
  • Mass of end effector with hotend: less than 50 grams.
  • Positioning speed: up to 800 mm/s in all 3 directions.
  • Positioning accuracy: at least 30 steps/mm in all 3 directions.
  • Simplicity: fewer than 200 parts.
  • Hardware cost: less than $500 USD.

Bill of Materials

See #Links for full BOM spreadsheet with vendors.

  • Stepper motors: 4x NEMA 17 (3 positioning, 1 extruder).
  • Timing belt pulleys: 3x GT2 plastic pulleys with 40 teeth. Smaller would probably work better.
  • Timing belt: 3x 1524 mm GT2 belt (2 mm pitch). Closed loops or open end is okay.
  • Smooth rod: 6x 762x8 mm precision smooth rod. Drill rod is probably okay too.
  • The length of belts and rods can be changed in the firmware.
  • Ball bearings: 4x 608ZZ, 3x F608ZZ, 1x MR105ZZ. If you can't find F608ZZ, use 608ZZ with printed plastic flange.
  • If using smaller pulleys, replace 608 (8x22x7 mm) with 688 (8x16x6 mm) or similar.
  • Linear bearings: 6x LM8UU.
  • Plastic parts: printed from PLA on Prusa Mendel.
  • Fasteners: stainless steel, mostly M3 (some M4 and M8).
  • Hotend: MakerGear hotend for 1.75 mm filament, 0.5 mm nozzle.
  • Filament drive: Airtripper's direct drive bowden extruder.
  • Top and bottom frame: hand-cut plywood (300x350 mm baltic birch).
  • Endstops: 3x ZM micro switch (pin plunger, no lever). You need only 3 top endstops. The bottom endstops are not necessary and will be removed from the design soon.
  • Electronics: RAMPS 1.4 or any other RepRap board.
  • Firmware: Modified Marlin (see #Links). This is a pretty hacky proof of concept. Hopefully we will have better firmware soon.
  • Software: Same as other RepRap printers, e.g. OpenSCAD, Slic3r (see GitHub for recommended settings), Printrun.

Firmware

The prototype is currently running modified Marlin firmware. This is a pretty hacky proof of concept and not a long-term solution. But it successfully receives regular G-code over USB and converts it to Delta geometry in realtime on the Arduino. I used Arduino 0023 to compile and upload this firmware to the RAMPS 1.4 board. When I tried Arduino 1.0 it didn't compile, but someone told me that newer versions of Marlin are supposed to work with Arduino 1.0.1.

I changed the G1 prepare_move() function in Marlin.pde to do the following:

  1. Estimate how many linear steps should be done for this line.
  2. Divide the line into many very small linear segments (less than 1 mm each).
  3. Calculate delta coordinates and speed for each segment.
  4. Add each segment to the path planning buffer.
  5. If the path planning buffer is full, wait until the next segment has been executed.

Also I improved the G28 (home all axes) command:

  1. Move all three carriages up until each hits the top endstop microswitch.
  2. Now we know that the end effector is exactly centered at the top.
  3. Move the end effector down and touch each of the three bottom endstops.
  4. Use each bottom endstop to calibrate the zero position of that motor.
  5. All top and bottom endstops are adjustable with M3 screws on the moving parts.

Note: The bottom endstops are probably going away in the next release, because the top endstops are already micro-adjustable, and the distance between top and bottom endstops should never change (assuming the smooth rods are at room temperature).

Tips and Tricks

Print with pronsole.py instead of pronterface.py if your prints have warts. They may be caused by Pronterface redrawing the G-code view while printing, which creates significant delay between segments. My modified Marlin firmware generates many shorter lines for each G1 command, so the Marlin look-ahead buffer will run empty if you don't send the next G1 command ASAP. This can also be solved by printing directly from SD card.

Future

The following improvements are planned for future versions:

  • Remove bottom endstops because the top endstops are already micro-adjustable.
  • Enable high-speed lift (Z motion) during retraction for travel moves.
  • Use smaller timing belt pulleys and idler bearings.
  • Find cheaper timing belts and pulleys, e.g. T2.5 / HTD-3M / GT3?
  • Write a new clean delta firmware based on Grbl.
  • Create a Mini Rostock variation with 120x120x120 mm build volume.
  • Replace metal binder clips with printed plastic clips to hold the glass platform.
  • Use OpenBeam aluminum extrusion instead of plywood frame.
  • Use OpenRail (or hybrid roller slide directly on OpenBeam) instead of LM8UU and smooth rods.
  • Experiment with dual extruders.

Links