Tag Archives: OpenSCAD

3D Printer Ashtar C

Status: fully functional, it prints successfully

Updates:

  • 2022/09/19: new board MKS Monster8 with Marlin 2.0.x, 8 drivers
  • 2022/08/01: Refining pieces, belts replaced with GATES LL 2GT
  • 2021/01/14: Adding IDEX option as a draft, untested
  • 2021/01/10: Finally more detailed and complete renderings with routed belts
  • 2019/05/04: Dual Z + Dual Extruder for MKS Gen L for Chimera/Cyclops hotend
  • 2019/02/08: Added “Maintenance” with first few points what’s important on this Core XY setup, up-to-date OpenSCAD model renderings
  • 2019/01/31: First prints successful, Z axis redone with 2x Z motors with 2x 760 mm closed loop GT2 belts
  • 2019/01/01: CoreXY mechanism complete: belt routing finalized and Marlin firmware configured, brief “preflight” video (no extrusion yet)
  • 2018/12/08: Parts delayed, so development delayed as well, A/B motors installed and Bowden extruder, “Current State” photos uploaded
  • 2018/11/09: Main frame setup with basic belt routing with mockup stepper motor.
  • 2018/10/03: Dedicated corner bracket cci_2020() OpenSCAD module, first scaffolding the frame with printed parts
  • 2018/09/10: First draft, fully parametric approach, detailed routing of belts not yet done (most important)

Current State

2022/08/01: corner pieces redone, high quality belts

Introduction

After Ashtar K (Prusa i3-like), I thought to still use single size 2020 T slot 6 (B-Type) alu extrusions to compose CoreXY styled 3d printer, fully parametric designed:

As first study shows, while trying to develop a single sized beam design: 16x beams make up the main geometry including bed mount, plus the X gantry which has to be shorter to lie between the top Y beams (if it sits above the belts also have to be routed above, and Y axis V modules and X axis V module not being on the same plane) and I used the same beam for the X beam where the X carriage rides the same length, using the Z offset to my advantage (instead to shorten it and fit it between the Y carriages): 17x 500mm alu extrusions (14x T slot and 3x V slot for X and 2x Y).

20180831_134523
V modules with different kind of wheels.

So far I like to reuse the V modules to ride on the alu extrusions directly, that is X, Y and Z axis.

The Z axis details aren’t defined yet, I tend toward belt implementation, which is a bit more overhead than thread or lead screw implementation. The Z axis is done with 2 stepper motor driving each 2x threaded M6 rods (or lead screws optionally).

Specifications

  • CoreXY style
  • ~385 x 400 x 380mm build volume (300×300 or 300×400 or 400×400 build plate)
  • 500 x 520 x 520mm frame size with
    • 14x 500mm 2020 T slot alu extrusion
    • 3x 500mm 2020 V (or T slot as well) alu extrusion
  • Bowden setup for fast X/Y movement and fast printing therefore
  • MKS Gen L main board + Smart Full Graphic display (with dialer)
  • Reprap style with many parts to be printed
    • M3: assemble most parts
    • M5: idlers of A/B belts
    • M6: Z axis threaded rods

Electronics

For Ashtar C #1 I use the MKS Gen L V1.0 board:

In order to add the RepRap Discount Full Graphics Controller I had to remove the notches and rotate EXP1 and EXP2 by 180 degrees so the display would work. I gonna use 5x A4988 as stepper motor drivers.

Update 2022/09 using MKS Monster8 V1.0 running Marlin 2.0x (requires PlatformIO to compile) with 8x TMC2209 motor drivers, MKS Mini 12864 V3 display (EUR 58):

MKS Monster8 (2022)
MKS Monster8 Pinout

One has to use SDcard to put firmware on and reboot the board in order to install the firmware, there are firmware uploaders available just not for Linux.

With 8 motor drivers there are plenty extensions possible, especially the Z motor driver has two connectors (e.g. usually 2x Z motors, also in my case with CoreXY I use Z motors):

  • X, Y and Z(2): 3 drivers occupied
  • max 5 extruders

The board supports 3 independent hotends, so IDEX or even a 3x tool-changer possible with this board.

BigTreeTech ZSYong 3-in-1 with 3 materials/colors mounted on Ashtar C #1

XY Belt Routing

The XY belt routing of CoreXY is more complex than usual, I decided to separate A and B motor belts on the Z axis with two levels, and twist the belts once so the notches would not roll over the redirectional idlers (more detailed photos follow):

CoreXY belt routing of Ashtar C

Key features:

  • V (3 wheels) shaped 2x Y carriages: v_plate(width=54), width=48 was too narrow as the belt would touch the X beam, to ride on 2x “Y” V slot extrusions
    • using one roller axis to extend for belt routing with 2 idlers made with 625ZZ bearings and a couple of printed washers
    • attaching belts on the back of the X carriage, very little space wasted
  • V (3 wheels) shaped X carriage: v_plate(width=48) narrow enough to achieve in X ~385mm range
  • stepper motors A & B at the back

Bed

Alike with Ashtar K I used a mirror as main bed structure for Ashtar C:

  • 400 x 400mm black bed sticker (~0.7mm thick)
  • 400 x 400 x 4mm mirror (custom order)
  • 4x bed corner mounts (printed), with M3 x 30 and spring and 4x washers each
  • 420 x 420 x 4mm OSB

residing on 2020 T-slot alu extrusions.

c-bed-size

There are few millimeters in front in the left and right corner which cannot be printed on because of the bed mounts; at the back the nozzle won’t touch the bed mounts, but fan shrouds might – so one has to be aware of:

  • the X stop is at the left (X=0)
  • the Y stop is at the back (Y=390)
  • start of print at X = W/2 (e.g. 190), Y = -3, so the oozing of filament will be chopped when moving to the print position.

Z Axis

It took me some research and trial-and-error to determine Z axis in its details:

  • Option A
    • 2x Nema17 (45Nm) stepper motor with 18 teeth GT2 pulley 5mm bore
    • 2x 760mm closed beltbelt-routing-z-axis
  • Option B
    • Using 3 or higher : 1 gear box (e.g. 3:1 gearbox could be used, but external shaft isn’t strong enough stabilized versus tilt) or alike to increase torque and still drive 4 threaded rods
  • Option C (not recommended)
    • 1x Nema 17 (45Nm) stepper motor driving 4x M6 threaded rods with 1524mm long closed GT2 belt – even when well greased rods and well aligned, I still experienced occasional skipped steps, which made this option not reliable – so I switched to 2x closed loop belts Option A.
  • 4x M6 x 490mm threaded rods
  • 4x M6 nuts with bed mounts (printed)
  • 4x bottom Z rod mount (printed)
  • 8x 606ZZ bearings (each rod has 2 bearings)
  • 4x 18 teeth GT2 pulley 6mm bore
20190130_170822

Electrical Wiring

I positioned the main controller board near the A/B stepper motors and the extruder motors at the back of the cubic framework:

  • advantage: most cables remain short and can be well put together
  • disadvantage: controller box with display cable too short to mount it in front, so remains on the back as well

Firmware

I’m using Marlin 1.1.8 (for MKS Gen L1), following changes were required

  1. stepper motors A & B reside on the back, left-front will be 0,0
  2. X direction was reversed
  3. Y direction was correct

It was quite complicate to reverse X, as #define INVERT_X_DIR true was not doing it, but just reverse the motor direction, which in CoreXY also affects Y.  Solution was, after some back and forth trying #define COREYX as well and failing, was to swap cables of A/B motors and

  • Configuration.h
    • #define COREXY
    • #define INVERT_X_DIR true
    • #define INVERT_Y_DIR true

Further, Z axis is driven by 2x Z motors, as driven 3 or 4 threaded rods with a single motors lead to various missing steps, so 2x Z motors with MKS Gen L controller board:

  • Z motor #1: Z motor
  • Z motor #2: E1 motor
  • ​​Configuration_adv.h:
    • #define Z_DUAL_STEPPER_DRIVERS enabled
> M503
-----
echo:  G21    ; Units in mm
echo:  M149 C ; Units in Celsius

echo:Filament settings: Disabled
echo:  M200 D1.75
echo:  M200 T1 D1.75
echo:  M200 T2 D1.75
echo:  M200 D0
echo:Steps per unit:
echo:  M92 X100.00 Y100.00 Z3200.00 E102.00
echo:Maximum feedrates (units/s):
echo:  M203 X400.00 Y400.00 Z2.00 E45.00
echo:Maximum Acceleration (units/s2):
echo:  M201 X1400 Y1400 Z50 E80000
echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
echo:  M204 P1400.00 R5000.00 T1000.00
echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_us> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk>
echo:  M205 S0.00 T0.00 B20000 X13.00 Y13.00 Z0.30 E5.00
echo:Home offset:
echo:  M206 X0.00 Y0.00 Z0.00
echo:Material heatup parameters:
echo:  M145 S0 H180 B55 F255
echo:  M145 S1 H240 B100 F255
echo:PID settings:
echo:  M301 P19.86 I1.00 D98.93
ok

Update 2022/09: I replaced the aged MKS-Gen L1 (Marlin 1.1) with MKS Monster8 V1.0 (Marlin 2.0.x):

> M503
-----
echo:  G21    ; Units in mm (mm)
echo:  M149 C ; Units in Celsius

echo:; Filament settings: Disabled
echo:  M200 T0 D1.75
echo:  M200 T1 D1.75
echo:  M200 T2 D1.75
echo:  M200 S0
echo:; Steps per unit:
echo: M92 X100.00 Y100.00 Z3200.00 E102.00
echo:; Maximum feedrates (units/s):
echo:  M203 X500.00 Y500.00 Z2.00 E120.00
echo:; Maximum Acceleration (units/s2):
echo:  M201 X9000.00 Y9000.00 Z50.00 E10000.00
echo:; Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
echo:  M204 P1500.00 R1500.00 T1500.00
echo:; Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk>
echo:  M205 B20000.00 S0.00 T0.00 X10.00 Y10.00 Z0.20 E2.50
echo:; Home offset:
echo:  M206 X0.00 Y-5.00 Z0.15
echo:; Material heatup parameters:
echo:  M145 S0 H180.00 B70.00 F0
echo:  M145 S1 H240.00 B110.00 F0
echo:; PID settings:
echo:  M301 P22.20 I1.08 D114.00
echo:; LCD Contrast:
echo:  M250 C255
echo:; Power-Loss Recovery:
echo:  M413 S1
echo:; Stepper driver current:
echo:  M906 X700 Y700 Z1000
echo:  M906 T0 E700
echo:  M906 T1 E700
echo:  M906 T2 E700

echo:; Driver stepping mode:
echo:  M569 S1 X Y Z
echo:  M569 S1 T0 E
echo:  M569 S1 T1 E
echo:  M569 S1 T2 E
echo:; Tool-changing:
echo: Z2.00
ok

X Carriage

First I had the X stopper at the left-hand side of the X beam (Photo 3), but the cable entangled with other parts, so I moved the X stopper on the X carriage (Photo 1 & 2)

  • X stopper: on the X carriage
  • Y stopper: right-hand back side of the main frame
  • Z stopper: right-hand back side of the main frame

The PTFE 4mm OD / 2mm ID with the cables aren’t stiff enough to support themselves, so I added

  • Option A: 4mm insulated copper wire as a gantry to keep the cables from falling on the print bed.
  • Option B: strong plastic bundler near extruder to stiffen part of the cables/tubes.

Maintenance

Belt Tension of Core XY

The Core XY mechanism takes some further care:

  • Parallelism: with the stepper motors off I move the carriage to the front and make sure both carriages of Y axis have the same distance to the end – if not, I tensioned the longer belt so both distances are the same = parallel to front beam.
  • Missing Steps: I noticed once I tensioned belts to achieve parallelism that the belts got harder to run, and eventually at larger prints with fast and longer positioning movements near 120mm/s I was missing steps in X and/or Y and caused failed prints quickly – so I loosened A/B belts equally to maintain parallelism.

So, there is some learning and experiences required to determine the best equal tension of belt A and B.

Update 2022: I’ve used GATES-LL-2GT belts which resolved all the previous problems with parallelism, as slightly stretching belts caused all kinds of geometrical inaccuracies.

Stiffness of Frame

At first the frame wasn’t as sturdy as possible as the details were not yet determined, but with maturing and defining the details the edges of the frames became more sturdy and the noise of the operational printer increased; yet, the print quality increased significantly. Further, since many parts are printed in PLA, they require re-fastening after few days as PLA gives in under tension, in particular all the edge fastening parts, which as well improved print quality.

Update 2022: I made the corner pieces stronger, to avoid any bending there:

Z Axis

I use M6 x 500mm threaded rods for the Z axis, because they give 1.0mm way per revolution, given 1.8 degree per motor step or 200 steps per revolution, with 16 microsteps there are 3200 microsteps per revolution which gives 0.3um per microstep or 5um per step. Using M8 or M6 for Z axis has a bad reputation in Prusa i3 setup, something I only partially agree with, gives in my setup of Ashtar C no little Z wobble, but it may have introduced some slight non-linearity within the 1mm way which isn’t observable for me. Lead screws would provide excellent linearity but less resolution due higher pitch, often 8mm per revolution, or 40um per step.

In my early test, when I ran one stepper motor driving 4 well greased rods for the Z axis, I experienced eventual missing steps due the distributed friction at multiple spots (nut/threaded-rod, threaded-rod/pulley/bearing, etc), and few days in, even more. As a result I used two stepper motors each driving two threaded rods for the Z axis.

Fixing Z Wobble

20190212_171326
Left: 1 out of 4 Z rods tilted; Right: 4 Z rods mostly aligned

While replacing the M6 x 500mm threaded zinc rods with stainless steel ones I noticed that I introduced severe Z wobble, which wasn’t there with lower quality M6 threaded rods – odd enough – and I moved the bed to Z=380 and noticed one rod swinging around due slightly titled rod, and reopen the GT2 pulley on the bottom with that rod, and turned the rod slightly and refasten the GT2 pulley again, the difference is significant: the wobble is nearly gone.

Update 2022: one of the key to resolve wobble is to keep the closed loop belts not too tight, otherwise their un-eveneness translates to the bed – keeping it a bit soft resolves it.

I may use 4x 8mm lead screws as a test as well and see how it performs regarding wobble but also resolution.

Todo

  • Z axis details (belt vs lead screw vs threaded rod)
    • 1 Z motor with closed loop belt: 1, 2, 3 or 4 threaded rods/leadscrews
    • 2 Z motors with/out closed loop belt: 2 or 4 threaded rods/leadscrews
  • details of belt redirection idler mounts
  • moving X endstop to X carriage itself (avoid cable entanglements)
  • stiffen or stabilize X carriage cables and Bowden tube
  • controller box positioning
  • release sources
  • complete instructions
    • list all parts properly

Parts

Printed Parts

Not yet defined, reusing most of Ashtar K 2020 parts plus some Ashtar C specifics.

  • Frame
    • 4x cci_2020 (bottom corner brackets)
    • 2x cci_2020-type=idler2 (top front corner brackets)
    • 2x cci_2020-type=motor (top back corner brackets)
    • X/Y
      • 1x ac_edge_motor_mount-left
      • 1x ac_edge_motor_mount-right
    • Z
      • 2x ac_motor_2020_mount
      • 2x ac_zrod_2020_mount-left
      • 2x ac_zrod_2020_mount-right
      • 4x ac_zrod_2020_mount-bed
  • Axis Modules
    • 1x X Module with black 3 x OpenWheels 24.4/11 on T slot 6 or V slot 6
      • 1x v_plate-2020-double-v-244-110-54w-a
      • 1x v_plate-2020-double-v-244-110-54w-b
      • 1x ac_x_l_stop_mount
      • 1x ac_x_stop_mount
    • 2x Y Modules each with black 3 x OpenWheels 24.4/11 on T slot 6 or V slot 6
      • 1x v_plate-2020-double-v-244-110-48w-a
      • 1x v_plate-2020-double-v-244-110-48w-b
    • 4x Z Modules each with white 3 x Delrin wheels 23.0/7.3 on T slot 6
      • 1x v_plate-2020-delrin-230-73-48w-a
      • 1x v_plate-2020-delrin-230-73-48w-b
  • Misc
    • 2-3x ac_spoolholder_2020

Non-Printed Parts (aka Vitamins)

  • Two Frame Options:
    • A: 16x 500mm T slot 6 (B-Type) 2020 alu extrusions + 1 x 440mm T slot 6 (B-Type) 2020 alu extrusion or
    • B: 14x 500mm T slot 6 2020 alu extrusion + 3 x 500mm V slot 6 2020 alu extrusions

Example Prints

20mm Hollow Calibration Cube

Printed with 0.4mm nozzle at 0.25mm layer height, the “Z” at the bottom, first layer too thin a bit:

Castle 20mm Cube

200% scaled Castle 20mm Cube:

Tall Cylinder

380mm x 10mm hollow cylinder using full height of the printer:

Upgrades

Dual Z & Dual Extruder with MKS Gen L

For the Chimera/Cyclops hotend with two filament but single heater and single or double nozzle, I added a stepper expander on AUX 2:

  • AUX2 / D64 – E1 STEP
  • AUX2 / D59 – E1 DIR
  • AUX2 / D63 – E1 ENABLE

and wired 5V, GND, 12V as well.

Additionally made following changes to Marlin 1.1.8:

Configuration.h

#define EXTRUDERS 2

#define SINGLENOZZLE

Configuration_adv.h

#define Z_DUAL_STEPPER_DRIVERS

pins_RAMPS.h

Comment out first E1_* and add Z2_* newly, and new E1_* below:

/*
#define E1_STEP_PIN 36 // this is E1
#define E1_DIR_PIN 34
#define E1_ENABLE_PIN 30
#define E1_CS_PIN 44
*/
#define Z2_STEP_PIN 36 // this is Z2
#define Z2_DIR_PIN 34
#define Z2_ENABLE_PIN 30
#define Z2_CS_PIN 44

#define E1_STEP_PIN 64 // E1 (2nd extruder) via stepper expander
#define E1_DIR_PIN 59
#define E1_ENABLE_PIN 63

The “Z_DUAL_STEPPER_DRIVERS” by default will use “E1_*” and interfere with 2nd extruder, hence the Z2_* definition helps to keep 2nd Z motor at “E1” motor on the MKS Gen L board, and in Marlin E1 is newly defined separately at AUX2 at D64/D59/D63.

To summarize:

  • MKS Gen L “Z” => Marlin “Z1”
  • MKS Gen L “E0” => Marlin “E0” (1st extruder)
  • MKS Gen L “E1” => Marlin “Z2”
  • MKS Gen L “AUX2”:D64/D59/D63 => Marlin “E1” (2nd extruder)

which then in Gcode the 2 extruders (E0 & E1) are referenced as T0 and T1.

Start Gcode:

G91          ; relative positioning
T0
G1 E30 F100  ; purge E0/T0
T1
G1 E30 F100  ; purge E1/T1
G90          ; absolute positioning

Update 2022/09 I replaced MKS Gen L 1 with MKS Monster8 with 8 drivers, still running Marlin but its 2.0.x series, and since I have 8 drivers, and I possible can attach 5 extruders.

IDEX Option

The independent dual extrusion (IDEX) is an upgrade in draft state – means, it’s untested for now. It provides a 2nd extruder on the same X axis. As of 2021/01 there is only Duet RepRap firmware able to provide support for it as CoreXYU, whereas Marlin 2.x doesn’t provide support yet.

Right now I keep the up-to-date information on Ashtar C IDEX in this blog-post, once things actually are tested all the details will be documented in this document.

Gallery

Related Projects

3D Printing: Print3r (CLI)

example

Command Line Interface (CLI)

Although 3d parts need to be seen and visually so much is communicated, but Cura’s user interface feels conceptually skewed (“Prepare” vs “Monitor” tab) – and with the time I thought I want an ordinary command line interface to print parts quickly, easily multiply and random placement so the bed surface is more evenly used and not just the center – I have grown tired to move parts on the virtual bed.

So, I wrote print3r, a command line interface which utilizes Slic3r as backend. Its main features (Version 0.0.6):

  • command line interface, no GUI
  • UNIX platform (Linux, *BSD, macOS should work too)
  • print .scad (OpenSCAD), .stl, .obj, .amf and .3mf directly
    • it converts and slices depending on file format as needed
    • takes Slic3r command line arguments
    • multiply part
    • random placement
    • scale, rotate, translate or mirror (.scad or .stl only for now)
  • slice .stl, .obj, .amf and .3mf to .gcode
  • print gcode files
  • send gcode lines direct from command line arguments
  • send interactively gcode commands from the console
  • render .scad, .stl and .gcode to PNG for documentation purposes

Example

% print3r --printer=ashtar-k-30x30.ini --fill-density=0 --random-placement print Parts/cube.scad
== Print3r 0.0.3 == https://github.com/Spiritdude/Print3r
print3r: conf: device /dev/ttyUSB0, bed 300x300mm, nozzle/d 0.5mm, layer/h 0.4mm, filament/d 1.75mm
print3r: scad to stl: done.
print3r: slice parts to gcode: filament usage 79.67cm, done.
print3r: print: printing 0h 09m elapsed, eta 0h 00m, 100% complete (38494 of 38494), z=19.80mm, layer #50, filament 79.67cm

More information on the printer display: progress [%], eta and layer#:

20181005_170351

Result:

20180927_152946

and if you replace ‘print‘ with ‘render‘, like

print3r [...] --output=sample.png render Parts/cube.scad

cube-example

Download

Github.com: Spiritdude/Print3r

3D Printing: Ashtar K Printer: Carriages (X, Y, Z)

State: Work in progress

As I finished the frame, I focused on the carriages:

  • X carriage: moving left to right with the hotend with Bowden setup to keep it light: Wheel-based Carriage
  • Y carriage: moving bed forward and backward, relatively heavy with 400×300 bed with a mirror to ensure flatness: leaning toward Sliding Carriage
  • Z carriage: moving up and down with X carriage: Wheel-based Carriage

XZ Frame with X- and Z-Carriages

I made some tests with sliding carriage (composed with PTFE tubes), and finally the Nylon wheels arrived and I began to review two kinds of wheels:

  • 23mm OD, 7.3mm width: even it’s wider it sits better in the T slot 2020 alu extrusion
  • 23mm OD, 7.0mm width: is bit more narrow, but doesn’t sit well on the extrusion

So, I put the 23/7.3 nylon wheel on the V plate to compose a V carriage, and applied to X and Z axis:

Y Carriage

The nylon wheels work very well, given the fine-tuning capability, whereas the sliding approach with 2 axis support (PTFE tubes in sliding direction plus vertical to stay in line) doesn’t give tuning capability.

Currently I lean toward the more simple slider (white PLA) with 2 axis stabilization, as with the wheel-based carriage too much vertical force will be applied to the wheel in a perpendicular manner and wear the wheels rather fast.

One of the challenges is to mount three such sliders on the bed – two can mounted quite freely (with margin of 1-2mm) whereas the 3rd slider needs to be mounted very precise.

I update this post as I progress.

3D Printing: Ashtar K Printer: Frame

State: Work in progress

Building 3D Printer Ashtar K starting with the frame using 2020 T slot 6 alu extrusions, changing design slightly from 9x 500mm to 11x 500mm as early tests showed the XZ frame wasn’t stable enough toward Y bed – so two additional beams (later photos in the series) to make XZ frame sturdy toward the bed.

and the current state more or less:

20180811_152129

While waiting for wheels to arrive I thought to make some tests with sliders composed with PTFE tubes (4mm and 3mm in diameter) – I might actually use them in the X axis and Y axis:

The building volume with the 500mm beams can be stretched to 380 x 300 x 360mm, if the X carriage is short(er) – this means, the bed can be 400 x 300.

3D Printing: Sliding on Alu Extrusions

State: Early draft, work in progress and likely will receive updates.

Updates

  • 2018/08/15: Added Slider with PTFE tube inlets with 1 and 2 axis support with photos and brief test video
  • 2018/08/05: First overview with a 3 approaches

While waiting for the shipment to arrive, I thought to study some of the alternatives to wheels on alu extrusions, such as sliders.

2020 Nut 6 B - 999991_1

Nylon 2020 Slider

gleiter-glatt-b-typ-nut-6_3Commercially manufactured, apprx. cost EUR 2.50 per piece, sold in 10 pieces bag.

 

 

 

 

 

3D Printed Sliders

Simple Slider

A simple replicate of one of the simple 2020 sliders:

The sliding nose is 5.8mm wide. Ideally this would be printed in nylon; PLA might work as well but tends to stick more and grease or oil is required therefore.

TODO

  • print samples and measure friction with PLA
  • publish model

Slider (2 Sides) with PTFE tubes

Improving the simple slider with 10mm long 4mm PTFE chunks to decrease surface and use proper material for sliding:

screenshot-from-2018-08-15-06-21-23.png

and in use for the Y axis of a Prusa i3 like style:

20180813_084627

and a small improvement to take care of the 2nd axis as well (reducing 2nd axis wiggle):

Screenshot from 2018-08-15 06-21-15

20180817_102329

and then mounting them with a carriage together with M3 screws to control tightness:

and a brief test:

Slider (4 Sides) Carriage with PTFE tubes

A bit more complex using PTFE tubes on all 4 sides:

each inner side has 8 tube chunk insets, which gives you the variable option:

  • 4 chunks (a 10mm) x 4 sides = 160mm total
  • 8 chunks (a 10mm) x 4 sides = 320mm total
  • 12 chunks (a 10mm) x 4 sides = 480mm total
  • 16 chunks (a 10mm) x 4 sides = 640mm total

The OpenSCAD module takes parameters such as length of the carriage and the diameter of the PTFE tube (e.g. 3mm or 4mm), default length 60mm.

And the adjustable version with 75mm width looks like this:

which breaks the one surface apart with the mounting hole; if a plate would use all 4 holes that side would become non-adjustable that way – so this isn’t ideal, but perhaps work for single side use.

A possible application as X carriage and two Z carriages in a Prusa i3 use case:

printer-ak-with-sliders

TODO

  • print model and make actual physical tests, measure friction of the possible options
  • publish model

 

 

End of Page

3D Printer Ashtar K

Status: fully functional and fine-tuned, two printers in use, my working horses

Ashtar K
Ashtar K IDEX – Draft

Updates:

  • 2021/02/11: Multiple Switching Extrusion (MSE), Rotating Tilted Nozzle (RTN) and Penta Axis (PAX) Option added (drafts)
  • 2021/01/14: Option for IDEX (Independent Dual Extrusion), early draft (not yet tested)
  • 2019/09/02: Modification of routing belt within 2020 alu profile
  • 2019/03/04: Updated photos and removed outdated parts
  • 2018/12/10: Added Bowden extruder photos and BOM
  • 2018/11/15: 2nd build of “Ashtar K #2” also 380x330x300 with 500mm alu extrusions
  • 2018/10/31: Z axis modules assembly detailed photos.
  • 2018/10/28: More details on BOM (Bill of Materials): printed and non-printed parts
  • 2018/09/30: More details on Y carriage / bed, short video of mounting bed.
  • 2018/08/27: It’s alive – means it prints . . .
  • 2018/08/26: Partial functional, X, Y and Z motors and belts and threaded rods mounted with end stopper, board been flashed with Marlin 1.1.8
  • 2018/08/24: More photos about XZ frame bracket with integrated Z motor mount, Y belt mount and sliders
  • 2018/08/20: Short video testing X and Z axis with nylon wheel based carriages
  • 2018/08/15: Added photos of composing the frame (XZ + Y) and changing design slightly to add 2 more beams so XZ frame is more sturdy, early tests with sliders, as alternative with wheel based carriages
  • 2018/08/01: More details, extruder motor on the right side with belt idler mount, short video showing some details.
  • 2018/07/30: Updated images, more examples of prototyping V modules
  • 2018/07/21: Published with few drawings, short part list.

Introduction

In summer 2018 I pondered on a parametric Prusa i3 3d printer designs, composed with 2020, 2040 aluminium extrusions / profile, hereby I document the development here.

The Ashtar W Series and Ashtar T Series are fully parametric, from 200mm^3 to 500mm^3 build volume, whereas this Ashtar K Series focuses on single beam length construction with 2020 alu extrusions.

20181126_124156
Ashtar K #1 (right, white) and #2 (left, pink), both 380x300x330 build volune, but having different build plates

Parametric Designing

Unlike traditional CAD (Computed Aided Design) sketched constructions, a coded parametric design is actually textual coded a design, defining which parts depend on which, and align according some variables, which can be changed. In this case, the input is the building volume X, Y and Z, and all parts are calculated accordingly, using OpenSCAD as programming language.

Following notion has been introduced:

  • X, Y and Z are the starting point, the printable volume
  • IX, IY, and IZ are the inner dimension of the construction needed to make X, Y and Z build volume work, hence, IX, IY and IZ are greater than X, Y and Z
  • all constructions depends on IX, IY and IZ
  • XE, YE and ZE are the position of hotend ranging between 0..X, 0..Y and 0..Z
  • XP, YP and ZP is the calculated position of the hotend in physical space

These notions, in retrospect, allowed me to code all the different printer types: Ashtar K (Prusa i3), Ashtar C (CoreXY), Ashtar M (Prusa i3 MG), Ashtar D (Classic XY) coherently.

Ashtar K: 500mm 2020 Extrusions as Rails

This is a single size design optimized: 300(-380) x 300 x 360mm build volume, composed by 11x 2020 500mm B-type or V-slot beams:

Backside:

Bottom view:

AK-30.30.30-bottom

The rollers on the Y axis can be likely reduced to minimum of 3 total, instead of 9 (3×3), it really depends how well the rollers have a grip on the extrusions. Majority of the printed parts are custom. I settled with DIY sliders with small PTFE tubes instead, they were simpler and turned out reliable enough for my use case, see below “Y Carriage Slider”.

The Y axis is quite short to match 500mm beam length, and the Y bed fits barely as you can see in this bottom view, but it should work:

AK-30.30.30-back-close

Moveable V Modules

The V modules, composed by 2x V plates, which holds the wheels running on the alu extrusion, I document separately at 3D Printing: Wheels on Alu Extrusions and is used:

  • 2x Z axis motion
  • 1x X axis motion
  • 3x Y axis motion (perhaps a dedicated module to reduce amount of wheels) or
  • 3x or 4x Y axis sliders

printer-ak-hotend-closeup

V Module X Axis

As first I mounted existing direct drive extruder piece to the module, although due the thin 2020 profile I likely have to run it with Bowden setup to make sure the moving extruder is light enough.

Small belt mount, 1st version is one sided, 2nd version goes both ways to be more flexible:

V Module Z Axis

Z Axis V module is a bit more complex, it takes the X axis beam and the Z axis leadscrew or threaded rod, and the X motor mount:

Slider-based Carriages

Aside of wheel-based carriage, I thought of trying and playing with some slider-based carriages as well:

for more details see my blog post on 3D Printing: Sliding on Alu Extrusions. It eventually didn’t work that well, with time it became wobbling, and the friction increased – so I switched to wheel-based V modules.

Frame

Some photos of early tests with building the frame. I changed the frame design an add two more beams to stabilize the XZ frame with the Y bed more; using 11x 500mm beams now – and some strong bracket at the bottom:

20180811_152129

X Axis Module

Two options are available:

  • 2020 T-Slot 6 (B-Type): using 3x Nylon wheels 23.0 OD / 7.3 wide
  • 2020 V-Slot 6: using 3 or 4x OpenBuild 24.4 OD / 11 wide V wheels

The V-Slot beam is more suitable as the X carriage will be more stable and sturdy when printing – yet, V-Slot 2020 beams aren’t easily available or with high shipment costs.

Four options I tried: the 1st with a slider worked only briefly, then 2nd I switched to white Nylon wheels which wasn’t stable enough but wobbled in Z a bit on T-Slot beam, the 3rd was 3x wheel V module, or the 4x wheel H module on V-Slot which worked best.

Z Axis Modules

Two V modules (each with 2 plates) assembly for 2020 T slot 6 B-Type beams, per module:

  • 3 x M5 x 30
  • 3 x M5 nuts
  • 4 + 2 + 2 M3 nuts (4 front insets, 2 back insets, and 2 for adjustment screws)
  • 2 x M3 x 14 or x 16 (adjustment screws)
  • 3 x Nylon wheels 23.0 OD / 7.3 wide (do not use 23.0/7.0 wheels, but 23.0/7.3)

X, Y and Z Axis Motors

All motors mounted with belts and threaded rods:

and all 3 axis in motion (without extruder and without bed heating/leveling):

and early tests show with the nylon wheel (23.0mm OD, 7.3mm width) based carriage a build volume of 380 x 300 (+10mm outside of bed) x 320mm.

Other carriage, e.g. the slider based, might result in smaller or bigger build volume.

Controller Board

For now I use an Anet 1.0 controller board (as part of a “CTC DIY Kit”), and it required some preparation:

  1. using Arduino Uno R3 (clone) and upload “Arduino ISP”
  2. attach Anet 1.0 board (detach all other cables) to Uno R3 bootloader-burning
  3. run “Burning Bootloader” with “Arduino as ISP” as writer
  4. downloading Marlin and edit main Configuration.h to match my specifications
  5. upload new firmware Marlin to Anet 1.0 via USB upload

I mounted the board first in the farther left corner (in the photo), but the Z stepper motor new mount required to move the board in front of the XZ frame on the left side.  The position and casing for the LCD display I haven’t decided yet.

Y Carriage

Current bed setup (top to bottom):

  • 400x300mm black sticker (“frosted sticker”), apprx. 0.6mm thick
  • 400x300mm 3mm thick mirror
  • 210x210mm 12V alu heat bed (optional)
  • various cork patches under heat bed
  • 10mm light black foam material
  • bed-corner-detail420x320mm 6mm OSB (white painted) as Y carriage
    • 4x printed corner mounts holding 3.7mm thick sticker/mirror combo
    • M3 x 35
    • M3 washer (below printed corner mount)
    • Spring (20mm long, ~10mm OD, 1mm wire), compressed to 10mm
    • M3 washer
    • printed knob (below plywood/OSB), 30mm OD, 8mm thick, M3 nut inserted

I currently use the white PU steel enhanced GT2 belts, and it produces hard edges, some ghosting, but more precise prints than the black rubber GT2 belts which just stretch too much – I have to research this more closely – about the type of reinforcement and the use with more heavy beds (Y carriage).

420×320 carriage:

  • 4mm plywood flexes, but has been quite flat – not recommended
  • 6mm plywood hardly flexes, but has been hard to buy truly flat – and so far my attempt to flatten it did not work well – not recommend unless it’s flat
  • 6mm OSB quite flat, does not flex much (3 or 4 sliders) – recommended

320×320 carriage (for 300×300 bed):

  • 4mm plywood works (3 sliders, 4 sliders recommended)
  • 6mm plywood works (3 sliders, 4 sliders possible if plywood is truly flat <0.2mm difference)
  • 6mm OSB quite flat, doesn’t flex (not yet tested)

Just to explain my thought or decision process for my setup:

  • the mirror should not be bend (of course)
  • the support structure should not be the edge mounts, but the foam in between
  • the carriage can be bent, but not flex
  • revelation: already bent means the springs with screws might extend the bent further with a flexing carriage, and not counter act – as the mirror should stay flat

Sliders & Belt Mount Positions

Top view with see-through (best mark “0,0” on both sides so you keep proper reference) – if your carriage is truly flat, choose 4 sliders, otherwise 3 sliders.

bed-layouts

Bowden Extruder

After few weeks I decided to do my own extruder, adapting the design of the “Compact Extruder” which has low complexity and low amount of parts to achieve simple extruder functionality; here my redesign:

sampleExtruder

and in a functional state:

It’s published at thing:3265864, it’s based on 625ZZ bearing:

  • 625ZZ bearing (16mm OD, 5mm ID)
  • M5x14: mounting bearing
  • 2x M3x25: one to attach handle, another to hold spring
  • 2x M3x8: mounting to stepper motor
  • M3 nut: insert into slot
  • M3 washer: to hold spring
  • 3-8mm OD 20mm long spring
  • hobbed gear OD 11mm
  • 4mm OD / 2mm ID PTFE for filament guides
  • PC4-M6 for outgoing Bowden tube

Gallery

In Action

After 3 months (2018/06 – 2018/08), since I started to code the first OpenSCAD lines, the “K” prototype happen to print the 20mm XYZ Calibration Cube:

And roughly 2 months later Ashtar K #2 (with RAMPS 1.4 board) was printing as well, on a smaller 300x300mm unheated bed:

TODO

  • proper bed mounting and leveling: done
  • bed heating: running without heat bed
  • better cable management (in particular heatbed / Y carriage)
  • release sources
  • complete instructions
    • complete part list (printed / non-printed)

Parts

This is a preliminary part list (no files yet published):

Printed

20181031_155015
Most of the printed parts
  • V plates (2 plates = 1 module) with 3 x or 4 x M5 x 30:
    Note: for each axis the plates must be printed with the same print settings to be symmetric when assembled, recommended setting: 1.5mm top and bottom thickness and wall thickness, layer height ~60% or less of nozzle diameter
    • X module (with 3 or 4 x black OpenWheels 24.4/11):
      • short 3 wheel carriage:
        • 1x v_plate-2020-double-v-244-110-48w-a 
        • 1x v_plate-2020-double-v-244-110-48w-b
      • short 4 wheel carriage:
        • 1x h_plate-2020-double-v-244-110-48w-a
        • 1x h_plate-2020-double-v-244-110-48w-b
    • 2 x Z modules (with 3 x white Nylon 23/7.3 wheels) each
      • 3 wheel carriage:
        • 1x v_plate-2020-delrin-230-73-10-a
        • 1x v_plate-2020-delrin-230-73-10-b
    • 3 or 4 x Y modules (1 module = 1 slider, per slider 4 x 10mm long x 4mm PTFE + 3x 8mm long x 3mm PTFE)
      • 3 or 4 x slider_2020-ptfe=true,td=4,td2=3,axis=2,closed=true,hplus=5,hole=true
  • X carriage:
    • 1x xcarriage_short_hmount_motor-endstop-left
      Note:
      minimum 1.5mm top and bottom thickness, and 1.5mm wall thickness, 30% infill, layer height ~60% or less of nozzle diameter
    • 1x xcarriage_short_hmount_motor-right
      Note:
      minimum 1.5mm top and bottom thickness, and 1.5mm wall thickness, 30% infill, layer height ~60% or less of nozzle diameter
    • 2x xcarriage_short_hmount
    • 1x xcarriage_beltmount-y=7,w=25
    • 1x pulley_holder
    • 1x endstop_mount
  • Printhead/Hotend:
    • 1x e3d_mount
      • 2x M3x12 (mounting to x carriage), 2x M3 nuts for insets for clamp (use M3x12 to draw nuts into inset)
    • 1x e3d_mount-type=clamp
      • 2x M3x16 (clamp E3D v6)
  • Y carriage:
    • 4x knob_30,8,6 (bed level wheels)
    • 1x ymotor_mount
    • 1x ycarriage_mount-h=15
    • 1x yendstop_bumper
    • 1x yendstop_mount
    • 1x pulley_holder
    • 1x ybelt_mount
  • Z carriage:
    • 2x zcarriage_short_mount-6,30 (for M6 threaded Z rods)
    • 1x ztop_bracket-left
    • 1x ztop_bracket-right
    • 1x zendstop_mount
  • Frame
    • 8x c_2020 (simple 2020 corners)
    • 2x l_2020-a (short L bracket)
    • 2x l_2020-b
    • 1x ll_2020-a, 3 perimeters/wall line count
    • 1x ll_2020-b, 3 perimeters/wall line count
    • 1x ll_2020-type=nema17-a (X/Z bracket + Z motor mount)
      Note: 3 perimeters/wall line count with layer height ~60% of nozzle diameter (e.g. 0.25mm @ 0.4mm nozzle or 0.3mm @0.5mm nozzle)
    • 1x ll_2020-type=nema17-b (same notes as above)
    • 2x c2_2020-a (strong L for bottom frame)
    • 2x c2_2020-b
    • 12x e_2020 (end caps)

Non-Printed (Vitamins)

  • 11x 500mm 2020 alu extrusions (T slot 6 B-type or V-slot 6)
  • Double or single V slot wheels (OpenWheel 24.4/11) and/or 18x (6 x 3) x Delrin R nylon (23/7.3) wheels (see printed parts above which are needed)
  • Screws & Nuts:
    • 200x M3 nuts
    • 100x M3 8mm
    • 20x M3 10mm
    • 20x M3 15mm
    • 150x M3 Hammer Nuts for T slot/V slot 6
    • 20x M5 x 30
    • 20x M5 nuts
  • Y carriage / bed:
    • 420 x 320 or 320 x 320 OSB 6mm as Y carriage
    • 400 x 300 or 300 x 300 3mm thick mirror
    • 400 x 300 or 300 x 300 frosted bed sticker
    • 4 x springs 20mm long, compressed 10mm
  • Belts:
    • 2x GT2 pulleys (ID 3, OD 16, 6 wide with teeths)
    • ~220cm GT2 6mm belt (200cm might be sufficient but without any cutting margins)
  • Printhead:
    • E3D V6 original / clone with 0.4mm or 0.5mm (recommended) nozzle
    • 100cm PTFE 4mm OD / 2mm ID (60cm for Bowden tube, reuse rest for sliders)
    • 1x Pneumatic Connector PC4-01
    • 1x Pneumatic Fittings PC4-M6 Bore 4.3mm for 4mm PTFE
  • Electronics:
    • 5x stepper motors Nema17 42-45NM (40mm height) with 1m wires
    • 1x control board (with Marlin support), e.g. Anet V1.0 or Makerbase MKS Gen L board
    • 2 x endstops with 1m wires

IDEX Option

In order to run two independent printheads aka IDEX (Independent Dual Extrusion) see this blog-post on Ashtar K IDEX with the details and those new pieces are needed:

Printable

  • 1x xcarriage_short_hmount_motor_2020-endstop-idex-left
  • 1x xcarriage_short_hmount_motor_2020-idex-right
  • 1x xcarriage_beltmount_2020-idex
  • 1x pulley_holder
  • 1x xcarriage_nose-idex-left
  • 1x xcarriage_nose-idex-right

Non-Printable

  • 1x Nema17 42-45Nm (39-40mm height) with 1m wires
  • belt ~110cm GT2 6mm
  • 1x pulley
  • 1x idler

As soon I tested this option I will document it in more details, like electronics, changes in firmware, slicer settings etc.

Other Options

Related Projects

3D Printing: Wheels on Alu Extrusions

Status: This is a work in progress – and will likely will receive more updates, files not yet released.

Updates

  • 2018/09/14: Added H Plate (4 wheels) and h_plate() reference.
  • 2018/09/01: Added v_plate() variables and numbers for common wheels
  • 2018/07/28: Adding another example with Z axis X gantry adapter & X gantry horizontal beam mount.
  • 2018/07/21: Supporting Delrin R 21.5 or 23mm/7mm wheel as well.
  • 2018/07/20: Version 0.6 added, with ordered mounting holes and nut insets, screw which controls distance inside the plate to reduce overhead
  • 2018/07/19: New version 0.2 with M3 has controlling distance of the 3rd wheel
  • 2018/07/17: First basic design (Version 0.1), few tests made

Introduction

As part of developing various designs around Aluminium extrusions, a few tests. Early tests I printed the wheels in PLA just for sake of testing the dynamics, once the wheels arrived real applications were sought:

20180831_134539

The possible parts are 2020 alu extrusions and Dual V wheel by OpenRail:

and the “Delrin R” V type nylon wheel (21.5/23mm diameter, 7/7.3mm thickness and 5mm hole):

nylon-weels-s-l1600

Later in the research the difference between 7.0mm and 7.3mm thickness nylon wheels were significantly, as the shape of the wheel differ, and the ticker one (7.3mm) actually sat better in the T slot groove.

2020 V-Slot with Double V Wheels

The V-Slot alu extrusions usage test.

VS_20x20

V Plate (Version 0.6)

Ordered mounting holes (2x 30mm apart horizontally x 2 20mm vertically apart) plus 24mm apart near center, all with M3 nut insets so both surfaces (inside and outside) are nearly flat and mounts easily attached.

Hole-to-hole distance: 40.5mm (20.5 + 20)

2020 T-Slot Diagonal with Double V Wheel

Using the traditional T-slot Aluminium extrusion without proper wheel groove but rotating so the edges are used as rail and the 90 degree inner groove of the Dual V wheel.

2020 Nut 6 B - 999991_1

Version 0.6

Moving the adjuster into the plate to save some space, and adding some insets for the M3 mount holes (2x 30mm apart and 20mm height distance, 2x 24mm apart (Prusa i3 extruder).

Hole-to-hole distance: 47.1mm (27.1 + 20)

2020 T-Slot with Delrin R Wheels

Since the V plate is parametric designed (controlling thickness, distances etc) I thought to support also the “Delrin R” nylon wheels:

V Plate (Version 0.6)

Hole-to-hole distance:

  • 21.5mm diameter wheel: 37.4mm (17.4 + 20)
  • 23.0mm diameter wheel: 38.9mm (18.9 + 20)

V-Slot vs Diagonal

20180720_175909

20180720_175933

20180721_194709

Mounting Holes

Since the V plate, either used with V Slot alu profile or diagonal, has 6 fixed holes with nut insets to attach adapters:

  • 2x 30mm apart horizontally, 2nd row 20mm apart vertically
  • 2x 24mm apart horizontally centered vertically on the plate

An adapter plate or area of 40 x 35mm is guaranteed to be flat, and 5mm thick, with the given mounting holes as mentioned.

v-plate-holes

v-plate-inside

Usage

2x V plates (top/bottom) with its 3x wheels each are made so I can use it as a “V module”:

Prusa i3 Style

  • X extruder: 1x V module with extruder adapter
  • X gantry: 2x V module with Z axis threaded rod adapter
  • Y gantry: 3x V module without adapter, but mounting top V plates direct to Y carriage

OpenSCAD v_plate()

v_plate() takes multiple arguments:

  1. d: distance of holes (-20mm)
  2. h: height/distance of the wheel to plate
  3. orientation: -1 or 1 (back / front)
  4. f: multiplier horizontal distance gap (default: 1)
  5. g: multiplier vertical distance gap  (default: 1)

Here for 2020 T Slot B-Type in groove usage:

  • Nylon wheel 23.0mm OD / 7.3mm width: d=17.2, h=9.0
  • Nylon wheel 23.00mm OD / 7.0mm width: d=18.3, h=9.0
  • OpenRail Double V 24.4mm OD / 11mm width: d=22.0, h=5.85

Use

  • 1x screw M3 x 16 with M3 nut (push it carefully yet forcefully so it aligns top/bottom flat) for distance control, put a drop of oil on the tip of the M3 screw before you screw the first time.
  • 3x screw M5 x 30mm with cylinder head with hex inset, and 3 M5 nuts to mount the wheels per double V plate to make up a V module

20180831_134523

Four Wheels: H Plate

For the X carriage with the hotend I thought to add another wheel to improve tilt rigidity (e.g. when overruning bumpy unclean or over-extrusions) – ideally triangle like with V plate/module it’s easy to adjust, four wheels means two wheels need to be adjustable, and those are harder to align properly.

H Plate (Version 0.1)

First version I decided to use a simple solution, have some larger vertical extended 5mm holes and M3 screw which carves its own thread to control the distance – this means the H plate should be used in double to make up a H module, this is the short/narrow 48mm wide H plate:

The plate contains a set of 30mm and 20mm spaced mounting holes, all M3 – requires support from bed only (not “everywhere”) so the M5 nut and screw heads insets are printed nicely for the wheels:

h_plate() settings – same as for v_plate():

  • Nylon wheel 23.0mm OD / 7.3mm width: d=17.2, h=9.0
  • Nylon wheel 23.00mm OD / 7.0mm width: d=18.3, h=9.0
  • OpenRail Double V 24.4mm OD / 11mm width: d=22, h=5.85

For the short version, width=48 (less won’t work).

Examples

Extruder/Hotend Adapter

Attaching E3D V6 hotend on a pair of 30mm holes with M3x8 (M3x10 might work as well) with M3 nuts (in this example printed in purple PLA):

Z Axis Adapter

A simple Z axis adapter, here with M6 threaded rod with M6 nut:

The adapter is 4mm thick, and M3 x 10 should work (in this example I used M3 x 16 which are too long, but still work).

X Gantry Horizontal Beam Mount

A small simple piece to mount the 2020 horizontal X axis on Z axis V module:

Additional holes to fasten beam with T nuts as well (top and bottom of the bridge).

V and H modules used as part of the Ashtar K 3D Printer:

printer-ak-vplate-closeup

20180830_174653

20180915_191015

Related Projects

End of Page