Tag Archives: Ashtar K

Misc: MKS Monster8 Board Configuration with Marlin for Ashtar K & C


  • 2022/11/20: Linux DFU upload details added
  • 2022/09/19: adding Ashtar C M503 dump beside Ashtar K
  • 2022/08/24: extending with part cooler fan and extruder fan connection
  • 2022/08/14: starting with the notes


MKS Monster8 V1.0 board

These are just my notes for configuring Makerbase (MKS) Monster8 V1.0 for Ashtar K and Ashtar C:

  • STM32M407VET6 (ARM Cortex M4), 168MHz, 512KB Flash, 192KB RAM
  • 8 stepper drivers TMC2209, configured in UART mode
  • MKS MINI 12864 V3 display (the “V3” is relevant)
  • 12V power in/out
  • 3 hotends & bed heating
  • Price ~EUR 55 (2022/08) incl. 8 stepper drivers TMC 2209 and 12864 display


  • cost effective, EUR 55 (2022/08) incl. 8x TMC 2209 stepper drivers and 12864 display
  • 8 stepper drivers: e.g. X, Y, Z1/Z2 (on-board splitter) and 5 extruders (e.g. E0, E1, E2, E3, E4 – but only 3 hotends possible)
  • TMC 2208 or TMC 2209 silent drivers
  • good connectors on board, clean setup
  • github with Marlin source (partially preconfigured) for Arduino*) & PlatformIO


  • no RepRapFirmware
  • no Wifi (the V2.0 version has optional Wifi board to attach)
  • no Ethernet
  • requires Marlin with PlatformIO (tedious to configure, recompiling required, reupload)
  • limited documentation: actual details are scattered around

Stepper Motor UART Mode

As first putting in the jumpers on all the driver sockets, in my case I choose UART mode for each one of the 8 drivers:

Marlin with Arduino vs PlatformIO

As of 2022/08, it seems Arduino is no longer able to compile Marlin-2.x (various compile errors within Arduino), at least with this board and everybody moved on the PlatformIO, which really surprised me.

PlatformIO CLI

As of 2022/08 there is no Linux GUI for PlatformIO but only PlatformIO CLI, but it’s simple enough:

pip3 install platformio


As next download the firmware, Marlin 2.0.x source from github:

git clone https://github.com/makerbase-mks/MKS-Monster8/


By default the board is configured for Voron 2.4 CoreXY, with 3x Z motors and Z probing in the midst of the bed and other things, so I had to edit Marlin/Configuration.h:

  • #define MACHINE_UUID "..." (use online generator to generate one)
  • #define CUSTOM_MACHINE_NAME "Ashtar K #x L8", given Lead 8×8 are used
  • #define LINEAR_AXES 3
  • #define EXTRUDERS 1 (or 2, 3 max)
  • comment out //#define PREVENT_COLD_EXTRUSION needed for calibration
  • comment out //define COREXY
  • define [XYZ]_DRIVER_TYPE and E[012]_DRIVER_TYPE
  • #define DEFAULT_AXIS_STEPS_PER_UNIT aren’t that important, as one can define it with M92 and M500 saving to EEPROM
  • comment out //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
  • test motors regarding #define INVERT_[XYZ]_DIR true or false
  • test motors regarding #define INVERT_E[012]_DIR true or false
  • #define [XYZ]_HOME_DIR -1
  • #define X_BED_SIZE 380
  • #define Y_BED_SIZE 300
  • #define Z_MAX_POS 330

and Configuration_adv.h:

  • #define NUM_Z_STEPPER_DRIVERS 1 even when two Z-stepper motors are attached
  • if you want an automatic E0 fan which turns on only when nozzle is heated: #define E0_AUTO_FAN_PIN PA1 and attach extruder fan (watch polarity) on FAN1/J12 connector

once those changes are made, build the firmware:

cd marlin\ firmware/MKS_MONSTER_Marlin-2.0.x/Marlin-2.0.x/
platformio run

After a short while (~1min) it should finish successfully (if not, edit files).

Firmware Installation

SD Card Firmware Update

Use a SD card, e.g. 8GB with simple FAT filesytem, and copy .pio/build/mks_monster8_usb_flash_drive/firmware.bin and mks_monster8.bin on the SDcard.

Insert the SD card into the Monster8 board next to the USB connector, and turn off and on the board (power cycle) – wait 5-10 seconds so the new firmware is installed, then the display should show the Marlin splashscreen eventually, and the board becomes available as USB device, in my case as /dev/ttyACM0 on Linux Ubuntu 20.04 LTS.

DFU Util Firmware Update

  • connect board with USB cable and optionally select POWER USB (via jumper)
  • power cycle board (e.g. via USB cable) while you push BOOT 0 button in the center of the board briefly (~2 secs)
  • the device will appear as a new USB device

Linux: install apt install dfu-util and then

% sudo dfu-util -a 0 -s 0x0800C000:leave -D .pio/build/mks_monster8_usb_flash_drive/mks_monster8.bin -d 0483:df11
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Downloading to address = 0x0800c000, size = 178820
Download        [=========================] 100%       178820 bytes
Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state

M503 Dump for Ashtar K

Ashtar K with 300×300 bed, single extruder:

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

echo:; Filament settings: Disabled
echo:  M200 S0 D1.75
echo:; Steps per unit:
echo: M92 X100.00 Y100.00 Z400.00 E95.00
echo:; Maximum feedrates (units/s):
echo:  M203 X300.00 Y300.00 Z5.00 E25.00
echo:; Maximum Acceleration (units/s2):
echo:  M201 X2500.00 Y2500.00 Z100.00 E5000.00
echo:; Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
echo:  M204 P3000.00 R3000.00 T3000.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.30 E5.00
echo:; Home offset:
echo:  M206 X-35.00 Y-3.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 X500 Y500 Z700
echo:  M906 T0 E500

echo:; Driver stepping mode:
echo:  M569 S1 X Y Z
echo:  M569 S1 T0 E

M503 Dump for Ashtar C

Ashtar C with 400×400 bed, 3 extruders with single nozzle:

> 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


Part cooler fan is plugged into FAN0/J11, and if you enabled extruder fan (temperature dependent), plug it in FAN1/J12.

Part Cooler Fan (FAN0/J11) and Extruder Fan (temperature sensitive) FAN1/J12
  • Part Cooler Fan (FAN0): cools the extruded filament, the filament which becomes the part you print
  • Extruder Fan (FAN1): cools the heatsink near the heatbreak, when attached to FAN1/J12 it only runs when the hotend is hotter than 50C° as defined in Marlin.

The jumpers are needed next to the fan connectors to define the voltage, either Vin (left) which is 12V-24V depending on the power input of the board, or 12V (middle) or 5V (right).

MKS Monster8 V1.0 Pins
MKS Monster8 V2.0 Pins

Multiple Materials/Colors

With 8 stepper drivers one is able to run:

  • 3+1x motors for X, Y, Z(2)
  • 5x extruders (colors or materials), the board supports 3 hotends (3 different temperatures)

Monster8 V1.0 vs V2.0

The boards differ in physical layout such as connectors, but the firmware is the same, incl. the pin for the hotend cooler fan (which switches on conditionally when hotend heats up).

Update V2.0

Board Comparison 2022

As of 2022 (I intend to update this) following boards are suitable for my cases:

MKS Monster8 V1.0/V2.0 & 12864 displayMellow Fly Super8 V1.2 & 12864 displayDuet 3 Mini 5+ & Duet 3 Mini 2+Duet 3 MB 6HC & Duet 3 Expansion 3HC
Price55 EUR80 EUR155 EUR (120+35)385 EUR (255+130)
Stepper Drivers887 (5+2)9 (6+3)
Stepper Connectors9 (dual Z)879
Hotends345 (2+3)6 (3+3)
FirmwareMarlin 2.xMarlin 2.x
RepRapFirmware 3.4.x

Alternatively, there are Duet 2 & 3 clones available on the market:

Duet 2 WIFI CloneDuet 2 WIFI OriginalDuet 3 6HC FYSETC Clone with Duet 3 3HCDuet 3 6HC Original with Duet 3 3HC
Price30-50 EUR2)175-185 EUR1) 225 EUR (150+75)385 EUR (255+130)
Stepper Drivers559 (6+3)9 (6+3)
Stepper Connectors6699
Hotends227 (4+3)6 (3+3)

  1. either WIFI or Ethernet
  2. without or with display
  3. MKS Monster8 V2.0 has Wifi module option

As of 2022, RepRapFirmware has become quasi standard in professional level 3D printing; while a lot of people run Klipper & Marlin together I can’t see the point doing this*) but rather have a more capable microcontroller like the Duet boards have to run the printer and manage WIFI / Ethernet at the same time. The only reason to run Klipper on a Single Board Computer (SBC) setup like Raspberry Pi is cost and enhance simple microcontrollers functionality this way.

MarlinKlipper & MarlinRepRapFirmware with Duet
CPUs1x Simple Microntroller1x SBC + 1x Simple Microcontroller1x Capable Microcontroller
ConnectivityUSB onlyUSB, Ethernet and/or WIFIUSB and Ethernet or WIFI
Configuration3x .h files, recompiling requiredsingle .cfg filesingle .g file**)
Boot Time3sKlipper 30s, Marlin 3s3s

*) running different kinematics on the SBC converting G-code on the fly might be a reason
**) multiple .g file can be used optionally

If you are cheap, buy the Duet clones, if you want to support Open Source and Open Hardware community, buy from Duet3d.com direct, pricing is +45% of the clone prices, whereas the Duet resellers add another +15% (Clone: EUR 150, Duet3d.com: 220 EUR, Reseller 255 EUR)

RepRapFirmware: Mind the SD Card

Whether to run an original Duet board or a clone, one thing though one might pay attention to is the SD card, it is the weakest link as far I can tell:

  • SD card needs to be present at all time to provide configuration
  • SD card is not written regularly to unless the logging is enabled

After power-cycling the board, as it was in a strange state no longer responding to G-code properly, the display remained blank, no response to G0/G1 – after investigation it turned out, a single file vanished from the SD card: config.g – the main configuration file, and that is bizarre. The board appeared to be broken, when in truth, the SD card came to its end of life of operating reliably already after only ~1.5 years. The SD card was the one originally shipped with. In this light, a Marlin-based board requiring no SD card being present operates more reliable, unless one uses an industrial grade SD card.


3D Printer: Ashtar K IDEX (Independent Dual Extrusion)

: verified design


  • 2021/07/30: design printed and mounted
  • 2021/01/19: improved 2nd X motor mount
  • 2021/01/15: removable/replaceable ooze prevention
  • 2021/01/14: Ashtar M (Moving Gantry – Draft) also with IDEX option now
  • 2021/01/13: ooze prevention at rest position added, mechanical conflict resolved
  • 2021/01/12: starting with a first draft, one mechanical conflict to be resolved


I have been pondering on a dual independent X axis upgrade or option for a while, but the other designs of the Ashtar Series I wanted to do first (Ashtar D and Ashtar M) those matured by now (2021/01), so I decided to get back to IDEX upgrade for Ashtar K:

For now I like to keep single 2020 V slot alu extrusion for the X beam where the X carriage rides, and route the 2nd belt above for the 2nd X carriage – and this was a quick solution as earlier version of Ashtar K had the belt routed above the alu profile so I just reused the old pieces again.

“Above routed belt” option with its pieces are weaker and possibly need enforcement improved the strength, so it’s a fast start – just took me 2 hours – but needs definitely some fine-tuning. Alternatively the 2nd belt could be routed at the back of the X carriages, but fastening the 2nd X motor would be challenging.

For now I use the same code base of Ashtar K and introduce IDEX = true flag, and enhance a few existing pieces in parts.scad and optionally add those new pieces when rendering printer-ak.scad.

As I progress with this option or upgrade I update this blog-post.


Issues to Resolve

  • X carriage #1 belt mount conflicts mechanical with belt 2: redesign xcarriage_beltmount_2020 piece, make it shorted in Z or fasten it inside V module: resolved, shifted 2nd belt a bit Y off, and shorten xcarriage_beltmount_2020(idex=true) by 2mm.
  • “Above routed belt” pieces are weaker: enforcement required, resolved: piece strengthened (2021/01/19):
    • xcarriage_short_hmount_motor_2020 which is the base piece which routes the belt within the 2020, with idex=true option provides idler holder on top
    • X motor #2 is mounted on a x-mirrored version of xcarriage_hmount_motor(20,"left",idex=true) but definitely needs reinforcement, added ooze prevention in case of idex set
  • Nozzle drip prevention:
    • using a piece of sheet metal which the nozzle moves over when in rest position left or right, first attempt done (see below)
    • and/or use purge box with brush to clean nozzle after and before use
    • make extending “nose” detachable/replaceable as it’s expected to break or overheat otherwise entire X motors mount needs replacement, resolved
      • xcarriage_nose-idex-left and xcarriage_nose-idex-right with 10mm wide sheet metal insert
    • how dealing with long resting hot nozzle?
      • drop temperature by 5-10°C in rest position, and heat up when in use again
      • heat creep possible weakening extending printed nose – heat insulation required attaching sheet metal


Ashtar M IDEX

And since Ashtar M (Prusa i3 Moving Gantry – Draft) shares much of the Ashtar K design it took me a few mins to add the IDEX upgrade option as well:


3D Printer: Ashtar K History 2018-2020

A brief history of “Ashtar K“, my first designed 3D printer I actually built – documented also for my own sake:

AluX: Prusa i3 Clone

It started with AluX (abbreviation of ALU-extrusion eXtendable) early June 2018, which used CTC i3 Pro B / Prusa i3 Clone pieces as the X carriage, X motor mount and X idler all in STL format. I coded the frame parametric using 2040 alu extrusions/profiles and using smooth rods as rails:

I realized then quickly I need to design and code my own pieces, every single piece I need to control and make it parametric if it makes sense, and not rely on existing STL files, as editing meshes of the STL seemed a waste of time but rather design the piece in OpenSCAD right away and derive new variants if necessary from the geometry itself.

Ashtar X & W Series: Riding on Smooth Rods

Mid June 2018, AluX became Ashtar X (abbreviated as AX), and Ashtar W were using 2040 alu extrusions but differently oriented at the base, still using smooth rods as rails:

At this point I got sufficient experience of the parametric approach and it was obvious to use the frame as rails.

Ashtar T Series: Riding Alu Profiles

Beginning of July 2018, with the Ashtar T series I began to use the frame as rails itself, utilizing 2040 alu extrusions, it also started with the parametric V module (due its shape) composed by 2x V-plates, using 3 wheels which ride on the alu extrusion:

With the parametric V modules the X, Y and Z frame beams became rails as well, simplifying the overall construction compared to earlier designs:

The dual Z motors still residing in the front for sake of accessibility, but then I realized I want them in the back and keep the front dedicated to the printhead.

Ashtar K Series: Riding Alu Profiles, Uni-Length Beams

Mid of July 2018 I started the Ashtar K series, I decided to use 2020 alu profiles and focused on the single length of alu profiles, uni-length so I could reuse the beams for other future designs and since all the designs were parametric, it was easy to attain to find an optimum of single length beams and a common build-plate or build-volume:

The 9 beams design turned out too weak when I actually built the printer, so I added two beams back on left and right, and lift up the 9 beam design.

Eventually I decided to use 500mm alu 2020 profiles to achieve ~380x300x360 build volume; Ashtar K #1 used 400×300 build-plate, and Ashtar K #2 300×300 build-plate. Ashtar K #1 was functional in August 2018, and since then became my working horses together with Ashtar K #2, reliably printing.

See more at Ashtar K project page of the current state.

Next Steps

Ashtar Series Genealogy (2018-2020)

After the Ashtar K I did the Ashtar C Core XY cubic frame also with 2020 alu profiles. Late 2020 I started to design Ashtar M, a derivative of Ashtar K but with a moving gantry and static bed, and Ashtar D with Classic XY alike Ashtar C; and also a draft of a parametric enclosure as well to be adaptable to all of my 3D printer designs.

That’s it.

3D Printing: Ashtar K Printer: Printing #2

Upgrading X Motor Mount

Printing new X motor mount on CTC DIY I3, and replacing it on the new Ashtar K: CTC DIY I3 prints quite reliably – there is nothing to clean up – the piece I attach it right away:

Ashtar K lacked a proper print surface (before I received the black sticker surface), otherwise I would have printed the piece on itself.

Black Sticker as Bed Surface

The 400×400 black sticker arrived, and I cut it into 400x300mm and put it on the mirror – which worked well, and so far I can tell the surface is very very flat, much better than on alu heat bed.

bed-corner-detailCurrent bed setup (top to bottom):

  • 400x300mm black sticker (“frosted sticker”), apprx. 0.6mm thick
  • 400x300mm 3mm thick mirror
  • 210x210mm 12V alu heat bed
  • various cork patches under heat bed
  • 10mm light black foam material
  • 420x320mm 6mm plywood (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)
    • M3 washer
    • printed knob (below plywood), 30mm OD, 8mm thick, M3 nut inserted

Now that I have a good print surface I finally printed pieces for itself.

Mounting the 400×300 bed (OSB 6mm, white painted) with 200×200 heat bed (which I hardly use, as I started to print on cold bed):

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).

Just for the record regarding Y carriage (2018/09):

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

so, even though the springs/screws and edge mount can adjust, the carriage should be fairly flat, and not flex at all – this way the edge mounts holding the glass/mirror only stabilize position. Main force to hold the glass/mirror, for my setup, is the foam in between. So, there is no “spring” induced vibration back/forth introduced, but the foam neutralizes such vibrations – and hardly adds weight/inertia.

Sliders & Belt Mount Positions

Top view with see-through (best mark “0,0” on both sides to keep reference).


400×300 vs 300×300 Bed

Originally I focused on 300×300 bed at least, with some tweaking and narrow X carriage I was able to reach 380×300 printable bed, so it was suitable to use 400×300 plate as well.

It takes me about 5min to mount new bed, downgrade from 400×300 to 300×300:

Changes needed:

  • move Y endstop switch from left to Y carriage extrusion to the right side
  • Y stopper mounted on the bed needs to placed accordingly

With 300×300 bed the 0,0 is now plenty outside of the bed, with 400×300 the 0,0 is near the printed bed mount.

Setting Offsets for 300×300 bed

With 300×300 bed the 0,0 is now +32mm to right and +25mm deeper, hence the Gcode M206 is set like this:

M206 X-32 Y-25

H Plate/Module as X Carriage

The 3 wheels module riding on the 2020 alu extrusion I named “V plate” due the shape, the 4 wheels module “H plate” providing more stability or rigidity for use as X axis carriage, when the nozzle runs over slightly unclean extrusion and tilts upside. For the X carriage I choose a narrow (48mm wide hole-to-hole) version:

It’s the first/early version, the adjustment screws (M3x10) are very or too close to the bed for my taste, next version will use M3x8 and give more spacing. I like to keep the hotend close to the X carriage so not to waste Z space.

Additionally I made a new hotend mount so it would use another mounting holes than belt mount:

But now it’s harder to reach the hotend mount holes due the part cooler – oh well.

After few days, I noticed one wheel stopped to turn, no longer touching the alu extrusion – I guess the carriage slowly balanced itself and triangulized, no longer use the 4th wheel. I re-tighten the 4th wheel gently so it would roll again.

Z Couplers: To Wobble or Not To Wobble

As I posted before, I suspect the Z couplers to be the main source for Z wobbles, as the threaded rods may look and are cheap but they are mostly straight – the wobble actually is caused, after close observation, from the misalignment which happens when you screw the metal couplers on, in particular if you attached the lead screw or threaded rod with uneven surface – the thightening screws may or may not attach cleanly – and thereby push the Z rods out of the center of the Z stepper motor – when the Z thread holding the X axis is fixed, the resulting wobble is worse at low Z heights; and if you fasten the Z rods at the top, the wobble gets even worse.


A simple remedy I found is to use printed couplers, two pieces which are screwed together with 4x M3 screws and nuts, a bit of an overkill, and a bit time consuming to fasten: incrementally tighten each screw over and over until all are tight – but I think it’s worth it: the two halves attach evenly and the PLA or ABS or whatever you printed the couplers, is soft enough so the threads of the Z rods carve themselves evenly into the coupler, and self center themselves this way – result is better centric attachment of the Z rods, not perfect but acceptable and better than poorly manufactured metal couplers.


As mentioned before, I switched from M8 to M6 for the Z axis the M6 provides 1mm movement per full turn, and is more flexible to even out out-of-center wobbles, better than the stiffer M8 threaded rod. If using couplers at all, and likely introduce out-of-center mounting, rather use a more flexible lead-screw or threaded rod than a stiffer one.

3D Printing: Ashtar K Printer: Printing #1

It has been a few days (2018/09/04), since Ashtar K happen to be able to print, the heat bed still unfinished, some prints illustrated below are done with no leveling screws, the mirror just taped on the Y carriage – don’t laugh – later prints I had proper carriage and leveling screws included; a proper build surface I still wait for in the mail (400×400 black sticker to be cut in shape) – anyway, here some of the early prints:

40mm XYZ Calibration Cube

The original 20mm XYZ Calibration Cube is printed in 8 mins with 0.5mm nozzle at 0.4mm layer height, and so I thought, let’s print it 2x the size with 0.4mm layer height, merely 40 mins later this:

The quality is . . . impressive, this is just tuning a single day – mostly on the extrusion factor and print temperature – and this is what I hoped for: XYZ positioning almost flawless: there is slight ghosting on X axis (which could be resolved) shown on “Y”, and Y axis shown on the “X” which is fine, given the size of the bed and its weight and inertia this is OK.

I had to increase print temperature +20C from 200C to 220C for 80mm/s infill while printing with the 0.5mm nozzle, I otherwise would hear clicking from the extrusion stepper motor missing steps. I still use the classic E3D V6 (clone) heat block, not the Volcano heat block.

20mm Calibration Cube: Different Layer Heights

Printed with 0.5mm nozzle, left-to-right: 0.1mm, 0.2mm, 0.3mm and 0.4mm layer height, 60mm/s (80mm/s infill), 200C first layer, rest with 210C, pink glowing PLA by Sienoc.


X Carriage: Sliders vs Wheels

While printing with slider carriage on the X axis, I noticed increased stuttering, and regardless if I thighten or loosen the grip, the stuttering remained, and slight horizontal tilt occured when changing direction on the X axis resulting in too narrow prints in X dimension.


X carriage with white nylon wheels (23.mm OD / 7.3mm width)

So, I changed back to wheel-based carriage, first again 23/7.3 white nylon wheels (right photo), but when I printed “L” shape with 200mm length in X and Y and 1mm height in Z, I noticed slight Z sinus form as I saw before – while it rolled nicely, there was a wobble . . . and so I printed a new carriage which holds the black OpenRail Double V (clone) 24.4mm OD / 11mm width, and put it on the X carriage:


X carriage with double V black wheels 24.4mm OD / 11mm width

A brief overview of the carriages riding on 2020 T slot (B-Type) alu extrusion:



Sliders: on the X axis it did not last, the stuttering was not avoidable; the issue is that the X carriage is one of the hardest axis of the Prusa i3 style geometry to handle: it isn’t just X directional rail, but also pressure on the Z with the weight of the print head, and running over overextruded filament – and it’s hard to pull the X carriage perfectly without the carriage have some vertical tilt as well – anyway, I still use the slider option on the Y carriage – and works fine so far.

White nylon 23/7.3mm wheel: rolls nicely, but gives wobble to the Z height when used on X carriage, apprx. 1mm, also doesn’t stay vertical upright, but tilts a bit with pressure – when the print head moves over overextruded print it doesn’t level it, but jumps over it. I currently use white nylon wheels on the Z carriage successfully.

Black double V delrin 24.4/11mm wheel

  • groove use: rolls very nicely, gives no wobble, and stays vertical. The next days and weeks will tell if the double V wheels do last on the T slot alu profiles – they are meant on proper V slot alu extrusions.
  • diagonal/edge use: rolls very nicely too, but surprisingly gives less tilt rigidity than groove use – the T slot 6 (B-Type) gives less surface at supposed 90deg edge, but is rather 85deg

Z Axis Linearity

As you may have read in the other post(s), I use M6 threaded rods, it’s flexible and rather aligns with the Z axis itself, whereas M8 is stiffer and misalignment – which by the way doesn’t come from the rod itself, but the mounting with the couplers – won’t impose on the X carriage – this is my own view and it happens to come true again with Ashtar K, after I changed my cheap CTC DIY I3 also to M6.

Now, the 1m long M6 threaded rod, enough for two Z axis each 500mm long, did just cost EUR 0.70, made in China but purchased locally in Germany, and the nylon wheel-based Z carriage happen to work perfectly so far – I expected some slight sinus wobble imposed by the nylon wheels as I encountered on the X carriage, but it seems when there is little force applied on the wheel the carriage works good enough.

Printing 330mm high 10mm diameter cylinder (with slider-based X carriage):

There was some slight extrusion inconsistencies, this is likely due the material, an broken vacuum seal of a newly purchased glowing pink PLA roll, actually, after watching the 2nd print closely, either GCode errors or USB transmission errors, as some segments of the circle (layer of a cylinder) is repeated for some unknown reason and so overextrusion occurs there (needs proper investigation)  – but the linearity is very good, and no Z wobble whatsoever.

Loopy Egg

60mm height “loopy egg”, printed with 0.5mm nozzle, 0.4mm layer height:

The “loopy egg” is a good benchmark for retraction settings, and stressing the extruder motor as the short segments making up the loops require a lot of push / pull on the filament. There was still some slight stringing, which I knew will happen, as the retraction is just set to 2mm at 35mm/s giving very good results. More prints will tell if I can stay with these retraction numbers.

Fighting Heat Creep

I currently use E3D V6 clones as hotends, one with 30mm “original” fan, and one with 40mm fan. And with the “original” smaller 30mm fan I experienced frequent clogging up within the hotend: some of the filament melted above the heat break and expanded and blocked any further extrusion – that happened now several times.

I tried to reduce the extrusion temperature but which caused decline of print quality. After trying to determine the root cause of the problem, I concluded that it was heat creep and insufficient cooling above the heat break, hence, the hotend fan, and I switched to 40mm fan – and the clogging disappeared, not quite yet . . . update follows.


30mm Fan (front facing) with 5015 Fan Fang (top)


40mm Fan (front facing) with 5015 Fan Fang (top)

Although both setups look very alike, I had to print out another fan fang which can contain 40mm fan.

Five Platonics

My favorite geometrical forms – aside the sphere – the sacred set:

Mirror as Bed

I’ve got 40cm x 30cm mirror which became my bed base, underneath with some tight springs some 6mm multilayered plywood, which was warped 2-3mm on the edge – but it didn’t matter (much). The mirror was the reference, and the Y carriage had to hold the mirror. That turned out to work very well: the mirror is truly flat, I leveled the bed once for tilting, after a week, I only had to tweak the Z endstop screw slightly, but I didn’t touch the screws mounting the mirrors to re-level the bed anymore.

So, using the mirror as bed worked well so far due the flatness – but the glass didn’t turn out to print good on it, the printed parts often detached before finishing the print, and ruin the print – so I used blue tape sheet as temporary solution until the black sticker arrives which I already use on the other 3d printer.


As I designed Ashtar K with larger build volume, I choose 0.5mm nozzle at least, and the max 0.4mm layer really pays off in regards of print speed, while still maintain some details – I’m quite pleased so far.

3D Printing: Ashtar K: It’s Alive ;-)

Well, after merely 3 months (2018/06/06) when I started to code the first lines of OpenSCAD to develop a series of parametric Prusa i3-like designs, and few weeks ago decided to go with the “K” series with 2020 alu profiles: simple 11x 500mm beam T slot (B-Type) alu profiles – the 1st prototype happen to print the 20mm XYZ Calibration Cube as of 2018/08/27:

The bed is very temporarly fasten with tape, as I haven’t decided on the actual details of the bed mounting yet and leveling details – but I wanted to see how well the mechanics already works – and it performed quite well so far.

1st print came out mediocre, when I realized I had to tighten X and Y belts more, 2nd print came out much better; 0.5mm nozzle with 0.4mm layer height, merely printed in 8mins with 60mm/s print speed and 80mm/s 20% infill:

And just for the fun of it, 0.2mm layer height with 0.5mm nozzle, at 70mm/s:

Incredible quality: X and Y surface very good, some inconsistency at “X”, on the “Y” side some slight ghosting; but most surprising is the edges on the Z axis – I operate with a simple M6 threaded rod and M6 nut – that’s all – moving nylon wheel-based carriage up and down – sure, I require to print more tests, in particular larger prints to really see how well all axis print up to 300mm.

I had to use blue tape on the mirror otherwise PLA would not stick – eventually I will use the black sticker as I used for the CTC DIY printer which worked quite well.

Nylon Wheels vs Sliders

The past 2-3 weeks, while waiting the nylon wheels to arrive, I decided to check alternatives such as sliders with PTFE tubes – and this paid off: the nylon wheels 23.0mm OD with 7.3mm width sit quite nicely into the T slot (B-type) but when used in real life, like with X carriage, I had some sinus wobble in the vertical – apprx. 0.5mm to 1mm – way too much. So, I exchanged the wheel-based X carriage with the slider-based carriage, remounted the hotend with Bowden setup, and after 5mins the exchange was done:

Current setup:

  • X axis: slider-based carriage, holding on top and bottom side with 2 tightening screws
  • Y axis: simple sliders (just sitting on the groove)
  • Z axis: nylon wheel (23.0/7.3mm) based carriage

The next days and weeks I will review my options:

  • slider-based carriage with
    • 1 axis support or
    • 2 axis support
  • wheel-based carriage with
    • nylon wheels 23.0/7.3 and 23.0/7.0
    • double V wheels

both on T slot alu extrusion – I know ideally would be proper V slot alu extrusions, but I like to find out how good it works with the easily available T slot extrusions. Worst case is, I have to use on X and perhaps Z axis proper V slot alu extrusions, on the Y axis it seems the simple sliders (just a block) work fine.

0.5mm Nozzle

Since I deal with nearly 3x the bed surface compared to 200×200 I thought I have to use a bigger nozzle as well, as a bigger build volume would imply larger objects to be printed. The increase from 0.4mm to 0.5mm diameter also implies 1.5x or +50% more material being extruded and I still desire to print with 60mm/s average with 80mm/s infill – this means I have to test well the hotend performs with that speed and higher throughput of material.


Current specifications of Ashtar K 3d printer:

  • 380 x 300 x 320 mm build volume (400 x 300 bed)
  • E3D V6 clone hotend
  • 0.5mm nozzle
  • Anet 1.0 controller board
  • 210 x 210mm 12V heatbed


  • bed mounting & leveling
  • 300×300 or 400×300 220V heatbed
  • proper print surface (likely black sticker 300×300 or 400×300)
  • improving cable management:
    • Y carriage and heatbed with proper cable chain
    • deciding on position of LCD display

3D Printing: Ashtar K Printer: Motor & Belts

Brief update of motors, belts, threaded rods and end stops mounted:

X Axis

I switched from slider based carriage to the nylon wheel (23.0mm OD, 7.3mm width) based carriage (X and Z axis), apprx. 120cm belt length.


Y Axis Belt

Apprx. 90cm belt length – with some considered cutting X + Y ~ 2m belt length.

This part was tricky – the parts are glued to bottom of the wooden carriage:

  1. mark the positions of the sliders (left: 65mm distance from top and bottom, left: center of top/bottom)
  2. glue 2x sliders on the left (where the Y motor is mounted)
  3. glue 1 slider on the right side
  4. put carriage on the rails, avoid any horizontal movement, push it slightly down (a slight snapping you sense from the sliders)
  5. let it rest (don’t touch or move it) for 30min – glue must dry
  6. move Y carriage gently forward & backward; if there is slight resistance then
    1. loosen all screws of the right 2020 beam so you can move it sideways
    2. then move carriage forward and backward and let the beam slightly find its new position
    3. when the carriage moves gently without resistance
    4. fasten the screws gently
    5. retest and if it’s still resitance, repeat procedure
    6. this is a bit tedious work, but worth it

This part is to do next (once I concluded those PTFE pipe chunk based sliders do their job well):

  1. drill holes and use Zip ties to fasten sliders
  2. glue Y carriage belt mount, let it dry
  3. mount GT2 belt to carriage belt mount
  4. fasten Y carriage belt mount with screws: drill holes from the bottom side


I will make some short videos of putting the carriage together and mounting it – it’s quite fast to attach and detach with those sliders (no screws to unfasten).

Z Axis

I extended the corner brackets so the Z stepper motors can be inserted, this weakens the part but saves quite a lot of space and hides the threaded rods nicely behind the 2020 Z beams. I might work on those brackets later to increase rigidity again.

Currently I use M6 threaded rods for the Z axis, one cycle gives 1mm height change.

X, Y, Z Motion & Homing

Flashing the Anet 1.0 board (which I currently use) with latest Marlin, this was required:

  • using Arduino Uno R3 (clone), installing Arduino ISP on it
  • cabling Uno R3 with Anet board (Uno powers Anet board with 5V, all stepper motors or power detached)
  • installing Bootloader (“Burning Bootloader”) with “Arduino as ISP” as writer
  • downloading latest Marlin, copying Anet Configuration.h and starting to change it

Finally, after hours fiddling around (bad install of Arduino failed to compile and/or upload anything to my Uno R3) the LCD display greeted with “Marlin 1.1.8” 🙂

Moving X, Y and Z axis briefly, 380 x 300 x 320 build volume with the current V carriage with 23mm OD, 7.3mm width nylon wheels – no extruder and no bed heating and leveling yet.

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:


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 Printer Ashtar K

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

Ashtar K
Ashtar K IDEX – Draft


  • 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.


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.

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:


Bottom view:


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:


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


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.


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:


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.


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:


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


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:


  • 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)


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


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
      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
      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:


  • 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


  • 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