2024/01/20: adding more examples and mounting tool/ruler
2024/01/15: starting write-up
Introduction
Since a while I was wondering how to create large(r) scale 3D prints like 1m / 1000mm or more, and I thought to use wood planks as slices and make “parametric wall” like sculptures. In order to get an idea of the procedure, I started with “parametric canvas” or Slices on Canvas.
Models
I used OpenSCAD to put together a few examples with 200×150 in size, and settled for 40 slices, which are then scaled up for 400x300mm canvas, the actual size is 340x240mm giving on each side 30mm margin to the edge of the canvas.
In order to test the concept, I used 3D printed slices printed with cold-white PLA+ in order to get a strong contrasts to the black canvas:
First 3D printed slice (240mm wide, 2.5mm thick) of “Sinus Mountain Range”
Each slice is 240mm wide, and 2.5mm thick and various height depending on the model.
After printing 40 slices finished, I mounted them on the canvas:
Mounting slices on canvas with a mounting tool / ruler at bottom & top for exact spacing
As shown on the photo, I used a mounting tool / rulers, also 3D printed, which helped me to keep the slices well aligned and spaced to each other – then glued each slice on the canvas.
40 slices with 240mm width and 2.5mm thickness takes about 20hrs to print (4 slices ~ 2hrs print time) and ~520g of filament like for the Sinus themed sculptures.
Raw slice bundles: Smooth Sinus Meadow, Quarter Drop, Drop each bundle apprx. 520g PLA+
With 2.5mm thickness x 40 and 340mm canvas width, it’s about ~25% or 1/4 of actual volume of the model, and the rest is empty space in between.
Sinus Mountain Range
Sinus Mountain Range on canvasSinus Mountain Range on canvasSinus Mountain Range on canvasSinus Mountain Range on canvas
Cubes
Cubic landscape on canvasCubic landscape on canvasCubic landscape on canvasCubic landscape on canvas
Spheres
Smooth Sinus Meadow
Various Examples
Quarter Drop (#6)Drop (#7)Fast Drop (#8)
Conclusion
It’s relatively easy to create a Slices on Canvas (parametric canvas) but it takes its time to print and assemble – due the thin slices the sculpture changes its appearance drastically depending on viewing angle, and so is an eye catcher.
It certainly is a viable approach for larger scale sculptures, the saving in material is compensated with additional manual work like aligning and fastening the slices.
References
LabSlicer: used to slice the model into SVG slices (PrusaSlicer also supports this functionality)
Prynt3r: for printing the individual SVG slices directly
2024/01/22: published without much reflection & conclusion as research is ongoing
2023/12/02: adding more examples and refining details
2023/10/22: start writeup
Introduction
While studying continuous fiber 3D printing and its main nature is to find ways to lay fiber without interruption. In order to refresh my memory I revisited the Lissajous forms, which until recently only knew in their 2D form, the swirling strings or lines – and now extending it into 3D as well.
The main idea is to realize how a line, string or fiber can be used to fill non-planar and circumvent a 3D structure and how angular shifting in Lissajous context affects such form.
3D Lissajous
angle: 0 .. 2pi or 0 .. 360°
p, n, m: 0 .. 1000, the amount of loops
phi0, phi1, phi2: the angular offsets 0 … 2pi or 0 .. 360°
X = sin(angle*p+phi0)*r
Y = sin(angle*n+phi1)*r
Z = sin(angle*m+phi2)*r
I did a lot of experimenting – I could post hundreds of forms – but let me focus on one a bit closer, which got my attention:
While playing with 3D Lissajous, I thought to adapt the cyclic nature, but apply it to a circle laying in the XY plane and then rotate in X axis, and Y axis as well, and optionally cyclic translation as well:
d: diameter
angle: 0 .. 2pi or 0 .. 360°
p: amount of loops as in X=sin(angle*p)*d/2, Y=cos(angle*p)*d/2
q: amount of X rotations: rotateX(angle*q)
r: amount of Y rotations: rotateY(angle*r)
Spherical Lissajous 12.23 with spreading struts
The model was printed with MSLA white resin at XYZ 50um resolution with 120mm diameter, with a few support structures near the bottom:
Spherical Lissajous 12.23 with spreading struts MSLA printed at 120mm diameterSpherical Lissajous 12.23 with spreading strutsSpherical Lissajous 12.23 with spreading struts closeup 1Spherical Lissajous 12.23 with spreading struts closeup 2Spherical Lissajous 12.23 with spreading struts closeup 3Various spherical Lissajous
Spherical Lissajous with Translations
Using the Spherical Lissajous and extend it slightly:
Another year, another November in Frankfurt (Germany) and Formnext – this is the main event of the year professionally for me. As I reside in Switzerland the travel is fairly easy and short and the 770 exhibitors in two halls (11 & 12) with two floors each is so overwhelming that even 4 days attending is not sufficient.
Day 1 (Tue, Nov 7): I spent an entire day to explore hall 12.1 alone, which turns out a good choice as it was a dense populated hall with many smaller companies
Day 2 (Wed, Nov 8): visiting with a client half of the day to review some of their possible competition, and then explore 12.0
Day 3 (Thu, Nov 9): some schedules meetings and then explore 11.0 and 11.1
Day 4 (Fri, Nov 10): revisiting 12.1 and 11.1 briefly, visiting with another client some selected booths to check products on display
I surely missed a few booths in 11.1 and 12.1 still; whereas 12.0 and 11.0 were more large scale industrial AM solutions, mixed with university and regional focused booths which I didn’t have time to explore in detail.
Personal Selection
I feature some companies according my personal professional interests:
Spherene (Math)
I made contact with Spherene before via LinkedIn but I realized I missed the point of what Spherene actually “invented”, at their booth Daniel Bachmann took the time to show me the features of their new class of minimal surface model and it was challenging for me to follow him despite of my own experience with Triply Periodic Minimal Surfaces (TPMS) – after apprx. 20 mins I realized the scope and some of their depth of their “invention”.
Spherene: sphere sample with variable porousitySpherene: resin printed rabbit with spherene infillSpherene: FFF/FDM printed bone replace with spherene infillSpherene: print samples (MSLA, FFF/FDM, SLM)
In essence, the sphere is used as a base form, and density, wall thickness and other features are processed in a localized manner, filling the space. The main result doing is optimizing a form to distribute inner/outer forces, e.g. the ends of the spheres are perpendicular to the surface providing ideal way to distribute them into a network of thin walled interconnected spheres providing isotropic (“all directions”) property.
The samples on display were printed with MSLA, SLA, FFF/FDM or SLM were indeed very strong in relation to the printed volume, e.g. the hallow rabbit printed with resin barely gave in when pushing on the thin outer perimeter – impressive.
Their approach is available as cloud-based GUI or as Grasshopper/Rhino plugin. The actual details of their procedure isn’t easily found but a patent (WO2020229692A1) by CEO Christian Waldvogel gives some idea.
Genera (DLP Resin)
There are many MSLA/SLA/DLP printer manufacturers, yet, I wasn’t aware of Genera and I was shown their system, an integrated workflow:
all resin vatshave a lid (only applies for G1/F1 combo but not their bigger machines), which are opened only within the machine
the finished prints (still on the plate) are moved in a box into the washing machine (without any person touching resin or the resin coated prints)
once automatically cleaned and post-cured, the prints are removed from the build plate manually
In essence one does not interact with resin directly, it’s all contained within the workflow – which I like a lot. They also provide wide selection of resins: hard, soft, rubbery, opaque, transparent/clear.
My idea has been to adapt some of their approach to make my own resin printing with Photon series (4K, X2 and X 6Ks); right now I also have multiple vats, and flex-plate, but moving the printed parts and washing them are still messy.
Quantica (Resin Jetting)
Last year I already visited the booth of Quantica, and so this year again. I asked earlier for printed samples, but they declined, and again this time . . . it is bizarre to see a machine actually able to print, and they don’t hand out samples, but I was told by January 2024 I might get some. This tells me a few things, the printed pieces are very sparse or not yet at the quality they want others to experience – some samples were on display, but sealed behind a glass box unable to have in my hand. So I guess now, they are expecting or already have better and more reliable printing results where the printed pieces match other similar printing processes.
QuanticaQuantica: NovoJet OpenQuantica: multi material samplesQuantica: multi material samplesQuantica: multi material samplesQuantica: multi material samples
I follow their development closely since ~2 years as I consider it very innovative to print with 7 different resin-based materials at the same time and able to fine-tune material properties on the voxel-level.
Duet3D (Open Source Hardware & Community Building)
UK-based Duet3D with its Duet boards and RepRapFirmware (RRF) is, as I wrote before, a beacon within the Open Source Hardware community – it isn’t just an example for other companies, and but also a great synergy provider, aiming to bring different individuals, groups and companies together.
Duet3D: with David’s backDuet3D: Voron 0 with Brandon Build’s variant of Open5X Duet3D 5-axis Open5X with tool changerThe many companies using Duet boardsDuet3D booth: Josef Prusa & Tony Lock – legends of 3D printing community
Brandon Builds’ Open 5X version was featured on a Voron 0, and a second machine also 5-axis setup with a tool changer.
Rapid Liquid Printing / RLP (Flexible Structures)
While roaming around a small booth of RLP caught also my attention, where a video was featured of a nozzle moving in a bed filled with silicon printing rubber, and other flexible material:
Rapid Liquid Print (RLP)RLP: multi color samplesRLP: white “finger” sampleRLP: area with flexible “fingers” and color gradientRLP: Flexible seat print with inflatable cushions
Reinforce 3D (Enhancement)
Another truly innovative approach combining and enhancing existing additive manufacturing processes was shown by Reinforce 3D:
using existing AM methods such as SLM, SLA, MSLA and even FFF/FDM to make models with thin walled tunnels and then
filling or rather pushing them with strains of carbon fibres along with resin into the tunnels
and thereby reinforcing free forms by keeping the result lightweight but incredible strong due the embedded carbon fibres
Reinforce 3D boothReinforce 3D: SLM and resin (MSLA) printed pieces carbon fiber reinforcedReinforce 3D: FDM printed and carbon fiber reinforcedReinforce 3D: FDM printed and carbon fiber reinforced
A very small but significant detail is, that you can print multiple parts on a smaller printer, but once you start to insert the bundles of carbon fiber those segments of pieces get combined in a strong assembly, as the aluminium skeleton shown above.
INo Trident – inductive hotend by Plasmics: fast heatup and cooldown / 3s from 20C to 220C, 10s from 220C to 150C
At the booth of Plasmics I looked at the inductive hotend and saw the heating up in a few seconds from 20C to 220C and cool-off in a small demo first hand.
The hot part of the nozzle looks like a needle, with little thermal mass, hence the fast heat and cooling-off time, and then surrounded by ceramics with the inductive coil on it.
The hotend incl. the controller board priced at EUR 400 is high for DIY enthusiasts but low for an industrial setup.
And UltiMaker (after Ultimaker & MakerBot merger) wasn’t present again; the consensus has been that BambuLab‘s printers have taken the higher quality consumer FFF/FDM printers market segment, and the air getting thinner for UltiMaker – at the same time they are doing a great service with the Open Source Cura slicer.
Random Impressions
Metafold: samplesStratasys: samplesPhotocentricPhotocentric: samplesPhotocentric: samplesPhotocentric: large scale statueHP: samplesPrusa ResearchPrusa Research Pro seriesSnapmakerSnapmaker with CNC drillSnapmakerSnapmaker: IDEXFormlabsAnisoprintAnisoprintAnisoprintAnisoprintE3DE3D: non-planar / belt printer nozzlesApexMakerApexMaker & PangJi resin printer LCDsSintratec: SLS printersSintratecSintratecNexa3D: SLA & SLS machinesNexa3DAiBuild: multi-axis slicingElegoo: printers, filaments, resinsFormFuturaBambu LabBambu LabDyze Design: water cooled large hotends
2023/02/08: worked on text and illustrations a lot, many sample prints, multiple visualization approaches, details on f1 + f2 vs f1 * f2 and cylindrical and spherical transformation of TMPS
2023/01/05: adding mesh/voxel renderings, slicing geometry to generate G-code
2022/12/11: first FDM G-code generated using 2D / contour approach
2022/12/07: included many suitable periodic minimal surfaces
2022/12/02: start with implicit surface focus
As I progress I will update this blog-post.
Introduction
Infill geometries are geometries which are continuous, repetitive or periodic; they fill a boundary defined geometry aka outer form often defined via meshs. Let’s dive into some of the simple geometries and then looking at some more complex structures:
The Implicit Geometries
Implicit geometries are geometries defined via f(x,y,z) = 0 defining their surface, the boundary between inside and outside and they are ideal to define repetitive or periodic 3D infill geometries.
Sphere
Sphere: x2 + y2 + z2 – r2 = 0
When you ever tried to compose a sphere as a mesh, you know there are many ways to do so, and all are more complex than this simple description, and as you realize, the formula is perfect, it’s not an approximation – this is the nature of implicit formula. When you try to visualize an implicit formula, then you need to discretize and there the approximation takes place, as a mesh or as voxels.
Another nifty property of the sphere, it is the minimal surface to circumvent a volume, and through this blog-post, the minimal surface will become a common theme.
Cube
Cube: max(abs(x),abs(y),abs(z)) – w/2 = 0
Plane
Plane: z = 0
As I render only -10 to 10 to each axis, it creates a small plate:
Triply Periodic Minimal Surface (TPMS)
Let’s move to the world of minimal surfaces, so called Triply Periodic Minimal Surfaces (TPMS), those can be expressed in implicit form and have some properties as sought for infill geometries.
In differential geometry, a triply periodic minimal surface (TPMS) is a minimal surface in ℝ3 that is invariant under a rank-3 lattice of translations. These surfaces have the symmetries of a crystallographic group. Numerous examples are known with cubic, tetragonal, rhombohedral, and orthorhombic symmetries. Monoclinic and triclinic examples are certain to exist, but have proven hard to parametrise.
Let’s explore this form more thoroughly, we animate a, b, c, d, and e and see what it does, essentially we animate -1 to 1 in sinus, 0 eliminates of the chunk of the formula:
animating a (-1..-1)animating b (-1..1)animating c (-1..1)animating d (-1..1)animating e (-1..1)
P Skeletal: 10*(cos(x)+cos(y)+cos(z) – 5.1*(cos(x)*cos(y)+cos(y)*cos(z)+cos(z)*cos(x)) – 14.6
By changing the last substraction of 14.6 to 10 or 8, the structure get more dense – ideal to use.
P Skeletal, animating main subtraction -14.6(thin)..5.4(disconnected)
The P Skeletal connects 6 arms to each other.
IWP Skeletal
IWP Skeletal connects 8 arms to each other.
Schwarz D Skeletal
Schwarz D Skeletal connects with 4 arms to each other.
The above “skeletal” minimal surfaces are ideal for lattice structures, likely most usable in context of voxel-based 3D printing approaches, such as SLA, SLS, SLM and so forth, but less ideal for traditional FDM where the lattice is sliced Z-planar again kind of defeating the overall purpose of lattice structures.
D Surface
D Surface: cos(x)*cos(y)*cos(z) – sin(x)*sin(y)*sin(z)
As Juergen Meier created a variant, adding a, which gives these variants:
a=-0.5a=-sqrt(2)/2a=0.5a=0.5 (double density)
providing a structure using 4 arms to connect each other.
Miscellaneous
Bionic BoneBionic Bone 2Split PDKPIWPDouble GyroidDiamond Double 1Diamond Double 2Octo 1Octo 2Double PG Prime 1G Prime 2PN
Using Implicit Geometries as Infill Structures
Slic3r and Prusa Slicer are providing gyroid infill pattern since early version, but beyond that it seems no to little development happened since (2022/12).
Let’s see how implicit geometry can be transformed into slices (FDM) or voxels/pixels (SLA, SLS etc)
Algorithm A: 3D Cache
create point cloud of surface of implicit geometry
create surface of implicit geometry using marching cube
(optional) determine x, y, z size where it repeats itself
slice surface for infills at certain scale
clip inner surface with outer perimeter of slice
Pros
with caching: fast lookup of infill geometry
Cons
many steps
x, y, z repeatability must be given, hard to determine programmatically from outside
clipping to perimeter can be computational expensive depending
Algorithm B: 2D Cache
create 2D point cloud of a slice of implicit geometry based on clipped 2D area / slice
convert 2D point cloud to polylines (FDM) or pixels (SLA)
Pros
reduction to 2D problem at first stage
fast 2D point cloud creation as only one z-level is used
Cons
create 2D point cloud at arbitrary resolution, loss of curves unless refitted
caching without knowing repeatability of the geometry makes little sense
FDM G-code
Here some early G-code for FDM 3D printer using PyImplicit tool tracking the implicit surface as 2D contour:
The implicit surfaces only define the surface, either:
inside vs outside – a solid; or
certain thickness of such surface
In order to create watertight meshs the volume needs to be limited with a boundary box, and Marching Cube is performed from outside to get proper mesh to post-process afterwards.
Now you may wonder, what’s the fuss with all those forms, why doing this complicate implicit form, why not just create a few forms as meshs right away and repeat them orderly – well, here it comes why:
Frequency or Scale Gradients
Schwarz P scale=8..1 solidSchwarz P scale=8..1 thickness=0.2Schwarz D scale=8..1 solidSchwarz D scale=8..1 thickness=0.2Neovius scale=8..1 solidNeovius scale=8..1 thickness=0.8
Changing the frequency or scale s0 and s1 can be achieved by:
znorm = (z-zmin) / (zmax-zmin) s =(1-znorm)*s0 + znorm*s1 or s = lerp(s0, s1, znorm) f = surface(x*s, y*s, z*s)
This shows the power of generative geometries, we simply can define the scale or frequency of a geometry at any point, given we transit within reason and not too sharply to cause discontinuty.
Thickness Gardients
Schwarz P thickness: 2 .. 0.1Schwarz D thickness: 1.2 .. 0.2
Alike changing thickness:
znorm = (z-zmin) / (zmax-zmin) t = lerp(t0, t1, znorm) f = abs(surface(x,y,z)) – t
Form Gradients
Transit vertically from Schwarz D to Schwarz P (solid)Transit vertically from Schwarz D to Schwarz P (thickness=0.2)
What looks very complex is done quite simply with:
This is quite powerful property, to be able to morph from one implicit form to another with such a simple formula.
Contineous Transitions:
Schwarz D – Schwarz P
Schwarz D – Neovius
Schwarz P – Neovius
thickness: IWP Skeletal – Schwarz P
thickness: IWP Skeletal – Schwarz D
Discontinueous Transitions:
IWP Skeletal – P Skeletal
IWP Skeletal – Neovius
solid: IWP Skeletal – Schwarz P
solid: IWP Skeletal – Schwarz D
Combining Implicit Surfaces
Additions
Algebraic addition has the effect of apply one geometry within another, alike recursion:
Schwarz P 4f + Schwarz D 4fSchwarz P 1f + Schwarz D 4f
Multiplications
Algebraic multiplication has the effect of clipping, or geometrical intersection:
Schwarz P 4f x Schwarz D 4fSchwarz P 4f x Schwarz D 1f
Mapping Implicit Surfaces
One can map the coordinates, and create a cylindrical gyroid, where former X & Y become distance and rotation angle, and Z remains as is, and so spherical projection is possible as well, or even feed coordinates through implicit formula itself:
Next blog-post(s) I will go into further details utilizing TPMS in Additive Manufacturing (AM) like FDM/FFF, SLA, MSLA, SLS, MJF or SLM – each one of them have unique features and limitation for using those Parametric Generative Infill Geometries.
Appendix: Visualization
In case you wondered of the different styled visualization through this blog-post, let me show you the different approaches to discretize implicit defined surfaces.
Voxels
The code is rather simple with OpenSCAD yet rather slow: either skin is true or false, and delta determines the thickness of the skin if enable:
t = 1;
r = 20*t;
st = 1/2;
delta = 0.2;
function schwarz_p(x,y,z,s=1) = cos(x*s) + cos(y*s) + cos(z*s);
skin = true;
for(x=[-r:st:r])
for(y=[-r:st:r])
for(z=[-r:st:r]) {
f = schwarz_p(x,y,z,360/20/2);
if(skin && abs(f)<delta) // -- skin only
translate([x,y,z]) cube(st);
else if(!skin && f<delta) // -- inside/outside
translate([x,y,z]) cube(st);
}
Following experiments were done with Spirula/Implicit3 within the browser, the implicit formulas are rendered in realtime at 100-500 fps using OpenGL’s GLSL (GL Shader Language):
One has to clip the formulas with a cube in order to have a limited set, otherwise you get a full screen looking at infinite X, Y & Z, here Schwarz P:
Spirula/Implict3 realtime rendered Schwarz P TPMS in the browser
Meshs with Marching Cube
In order to create a mesh, I developed PyImplicit which utilizes Numpy library to calculate the implicit formula fast, and then run a Marching Cube algorithm over the result in order to get a discrete mesh like STL, OBJ, or 3MF to process further for 3D printing.
Foreground: 1st row: 90mm cube clipped of frequency gradients on Schwarz D, Schwarz P*, surface gradient between Schwarz D to Schwarz P (top) at certain thickness or solid, 2nd row: 2x IWP skeletal 90mm cubes at different frequency; Background: various 30/40mm cube clipped Triply Periodic Minimal Surfaces
*) some of my larger prints I attach RFID tags, e.g. as on top of the variable frequency Schwarz P print, which I store the print UID from my Prynt3r job which logs all my prints with all settings and webcam snapshots. In future blog-post I will illustrate my NFC/RFID setup.
And Polyviuw is a small mesh viewer using Polyscope Python as backend to display it as mesh:
Polyviuw (0.0.8)Polyviuw (0.0.7)
It is easy to create huge files when exporting an implicit generative infill geometry and one ends up with a 700MB binary STL file, which becomes hard to view at least on my system. To handle complex outer forms, with complex inner geometries I estimate reaching multiple gigabytes large files – let’s see.
References
3D-Meier.de: Juergen Meier’s excellent write-up on Triply Periodic Minimal Surfaces (german only) with formulas & references
Commercial Software:
nTopology.com: outer and inner geometry incl. simulation
GeoDict.com: digital material development, deep dive into designing interior geometries
Spherene.ch: Adaptive Density Minimal Surfaces (ADMS) software framework, startup
Formnext 2022 was a 4 days Additive Manufacturing (AM) event in Frankfurt (Germany) November 15-18 2022, and it had ~750 exhibitors, two huge halls numbered 11 and 12 each with two floors. I attended the 4 days and it was pretty overwhelming. I try to give an overview, for myself to process what I saw, and perhaps for you who couldn’t attend.
E3D Online
E3D is an old timer among 3D printing enthusiasts, so I start with their booth:
Revo nozzlesTheir nozzles integrated into various printheads of known desktop FDM printersBCN, Ultimaker and Blackbelt hotends setup manufactured by E3D
I was surprised to get to know E3D manufactures for UltiMaker their CC printcore.
Duet3D
Duet3D is a small UK-based company, but very influential due their excellent and often praised customer support and support forum aside of their slowly expanding board selection:
I met Tony Lock, and we discussed current state of multi-axis support in Duet/RepRapFirmware, and he showed me the Open5X by Freddie Hong printing non-planar as crafted by FullControl.xyz
White parts sliced by Prusa Slicer, the black parts constructed with FullControl.xyz
I briefly pitched my new tool VirtualGcodeController (vgcodectl) which sits between printing program and the device, and able to change G-code on the fly, transparently bi-directional – as I was told Duet has an alike infrastructure called Duet Software Framework (DSF) which I wasn’t aware of.
Also check this brief interview by Mihai Design:
Multec
At german-based Multec booth I saw a multi-printhead setup with a rotating seal to prevent the inactive printheads leak filament – and a precise mechanism to lift the inactive printheads (patented):
3devo
Dutch-based company providing infrastructure to mix and extrude your own filament, not just for mixing different colors, but also different materials and achieve custom material properties – the only downside is the price-tag of those desktop filament extruders starting at 10K EUR – which is too high for its functionality for prosumers, and seems to aim for R&D departments of larger companies.
3devo: wide-range of pellets to mix from to extrude your own filament
Commercial Slicers
As I have been entering slicing development more seriously, and closely paid attention to possible competitors or collaborators – and interestingly, the majority responded positively when I approached them:
CreateItREAL
A small danish company, who recently patented interlocking (Z-offsetted layers) printing patterns.
CreateItREALCreateItREAL: their own microcontroller boards
I had a brief chat with Folmer Gringer Brem about industrial slicer capabilities and customer needs, and what I have researched the past year.
Adaxis
A new french company is providing non-planar 5-axis slicer with a nice GUI, and were open enough to give an actual demo and I was impressed by the responsiveness of the GUI but were tight-lipped to reveal anything about the internals – 5-axis slicer with infill patterns:
FreeD Printing
A small 2 person german company, a spin-off from the university Bochum, also coding 5-axis non-planar slicer, showing a small desktop 6-axis robot to print an overhang model, their own logo, and it has infill – which means, they actually did properly slice 5-axis G-code. They were reluctant to go into the details, as their IP represent their core asset as a company:
AiBuild
AiBuild has a huge booth, lots of advertising, has been very secretive last year as they didn’t want to demo their software without NDA to anyone – but while attending Formnext 2022 I was able to get to talk to people who purchased the software, and all of them have been giving me strange feedback: a sort of underwhelming sensation – the software is costly and not deliver what is advertised: you need to know a lot of slicing in order to use the software – there is nothing “Ai” (Artificial Intelligence) as the company name implies, at least not with their slicing software.
On their booth they had the usual non-planar printed pieces, but none of them had infill, so they all are printed in vase-mode or single wall.
One feature I saw though impressed me, it was the live quality control they implemented, having a nozzle camera and machine learning / AI to determine over- and under-extrusion – something which I would say one should have under control, but perhaps it was to illustrate the detection mechanism.
AiBuild: AiSync live monitoringAiBuild: AiSync live monitoring
VShaper
Poland-based 5-axis printer manufacturer has progressed in hardware and software, and developed their own 5-axis slicer – the simulation shown as the actual printer prints – overall well designed.
I had a brief chat with Adam Wajda about the state of their hardware/software stack, very open and friendly exchange.
Duplex3D
Hungary-based startup with a dual delta setup printing upside and downside at the same time. They were present last year Formnext 2021 already but with an inactive printer, and this time showing the printer in action:
Beside reducing print-time the printer also is able to print pieces which otherwise are hard or impossible print when layer orientation is given and surface quality is of high priority.
UltiMaker
The newly merge Ultimaker + MakerBot = UltiMaker had no booth again, hardly any presence – the marketing / sales department seems in hybernation to skip such as event without their own booth, no hardware innovation on display, perhaps there is nothing (new) to show.
I visited the 3dimensional booth and someone showed me how to print “metal” (just steel as it turned out) with BASF metal filament on a Ultimaker S5, and having everything needed in a nice box and then send off to wash & sinter.
Single ceramic layer in between
Snapmaker
Snapmaker announced a new machine called Snapmaker Artisan: single head operation, yet changeable heads: FDM head, CNC head, laser head – very sturdy desktop machine, using linear motors:
NematX
Bleeding edge high temperature resisting materials, and to show the applications they built a most precise FDM printer I have seen so far – Chiara Mascolo briefly showed me the machine and samples:
NematxNematx: Nema HSP massive granite base and granite XZ beam with linear motors: pricey 100K EUR machine, but the best of the bestVery small and precise pieces like from moldsVery small and precise samplesNema HSB Filament: +/- 0.01mm diameter tolerance, withstands > 230C°
Nexa3D
Massive SLA and SLS machines shown:
Well designed booth of Nexa3DNexa3D SLA Dyed SLA printed piecesNexa3D: SLSNexa3D: QLS 850 SLSLarge scale GUI . . .
Formlabs
The Formlabs booth was well visited, and it was hard to take photos until the last day of the expo – so just a brief video of the Form 3+ printing below:
Formlabs Fuse 1+ (SLS)
Quantica
German-based startup printing with 7 different light curable materials at the same time, drop size / resolution at 60um with the NovoJet C-7 – quite impressive, with the ability to blend drops or let them cure side-by-side giving new possibilities of material gradients in 3D space:
They also provide a station for fluid testing & development, so you can engineer your own material to print with. Even though this was a small both it was for me from a technical point of view most innovative I have seen so far.
Nanodimension
As I was looking at resin printheads, I was approaching Global Inkjet Systems (GIS) – a subdivision of Nanodimension:
Fabrica 2.0: impressive 2um resolution, but as consequence 1mm height / hr print speed, SLA/DLP
Admaflex 300: 35-88um XY resolution, 10-200um layer height, up to 60mm/hr height print speed, resin combined with ceramic/metal printing
Inkbit
A massive industrial resin jetting 3D printer, build-volume at 500 x 250 x 200 mm printing with wax as support material. It is a closed-loop system, it prints, cures and measures the actual layers and adjusts live for the next layer – achieving 100um precision, yet only for industrial application due the cost of 1M USD per machine.
They developed their own packing algorithm in order to achieve high density packing ratio.
Breton
Italian-based “Betron Genesi” 4000 x 1900 x 1300mm build volume along with high volume extrusion (~20mm nozzle, layer height ~4-5mm based on my own photos) having excellent extrusion precision, along their real time temperature control:
Additionally is is a hybrid able to run also CNC milling on the same machine for post-processing.
Phaetus & DropEffect
Visited Phaetus expecting to just meet sales people instead I ran into Maximilian Arnold, owner of DropEffect which designs hotends under his own brand but also for chinese-based Phaetus as R&D director. I showed him photos of my early prototype of a Multi-In Mixing Hotend supposed to be printed in Aluminium and he immediately commented on my design and gave me useful input – unexpected interesting and fruitful exchange.
A brief interview with Max conducted by MihaiDesigns:
France-based company combining FDM and CNC together:
Namma: 1000x500x500 build volume
What you achieve with this is incredible precise plastic pieces at 20um precision, while maintaining 500 x 500 x 500mm respectively 1000 x 500 x 500mm build-volume. They are milling with a round drill bit – CNC toolpath is calculated by Autodesk’s Fusion 360 though.
Metalworm
Turkish-based company wire arc welding with 6-axis robot:
Bloom Robotics
Massive ABB 6-axis robot FDM printing on a rotating 2-axis bed . . . with shiny cyan/pink/violet lights, a bit of an overkill with the lights, but the setup was impressive:
Miscellaneous
Picco’s 3D World: CF1200Recycling Fabrik: making a business by recycling failed printsCogitCogitCogit: live temperature scanBigRepDMG MORIDMG MORI: Lasertec 65 DED hybridRapidiaRapidiaRapidiaAerosintAerosintAerosintInssTek: NARAEInssTek: NARAEInssTek: NARAESlice EngineeringBE-AMBE-AMHIWINHIWIN: Linear RailsHIWIN: Harmonic GearsAnima / ZRapid TechAnima / ZRapid TechCrealityCrealityeSUNXYZprintingXYZprintingMassivIT 3DZotraxSinteritSintratecCubicureEOSVisitecWASP Pellet DeltaWASP Pellet DeltaWASP Pellet DeltaConstructions 3DConstructions 3D: concrete PiMagforms SLAMagforms SLADotXControl 5-axis SlicerPhotocentricPhotocentric: Titan, massive resin printerPhotocentricPhotocentric: massive resin bedCms: Massive 3D FDM Printer
Aftermath
It has been overwhelming expo for me, 4 days in noisy halls, constant audible and visual stimuli grown tiresome for me as I was eager to absorb all; I can say I looked at every single booth, and decided within few seconds if something caught my attention, and I knew to lookout for things I did not know or a company I did not recognize – for new companies in the arena of Additive Manufacturing. It took me a single day to roam both floors of a single hall, so at least it takes 2 days to explore two halls of the expo – and if you happen to explore a booth for more than a few mins, you end up with 3-4 days attending easily.
So, the overall impression of mine has been:
3D printing / Additive Manufacturing (AM) specializes into niches more and more
resins printed as drops at high resolution & precision
paste-like materials get printed in high extrusion quality
metal printing showing incredible wide-variety in regards of materials
industrial machines are still pricey but seem to me become more affordable, instead of 10M’s they are becoming 100K – 1M while maintaining same functionality
multi-axis FDM with robots become more established to print large scale parts
in-process/live quality control and logging/documentation for FDM and powder-based processes
many startups still coming up with new or refined existing processes
gap between prosumer and affordable industrial machines is closing
quite open atmosphere, people are willing to share and discuss their technology, collaboration seems more important than eyeing on each as competitors
Status: early prototype, metal printed model, temperature testing, no extruding yet
fully assembledIteration 1: heating to 150C°
Updates:
2023/01/09: iteration 2 testing results
2022/11/22: early heating tests, no extruding yet
2022/11/21: iteration 1: SLM AlSi10Mg metal printed photos added
2022/11/19: published finally
2022/09/10: adding photos of PLA+ prototype
2022/09/02: starting writeup
This blog-post will be updated as I progress.
Introduction
I experimented with the Diamond Hotend in the past, but I was limited with the setup given – and adding another color or otherwise change the design seemed impossible, but it has changed now.
Metal 3D printing has been a niche and high priced application the past years, but in 2022 many 3D printing services support:
stainless steel: low heat conductivity 15W/mK
aluminium: good heat conductivity 210W/mK, yet low melting point 660C°
inconel: low heat conductivity 15W/mK
titanium: low heat conductivity 17W/mK
at relatively low price and all of the sudden designing a FDM mixing hotend, where multiple filaments are mixed together before exiting the nozzle – like with the Diamond Hotend – can be printed in metal, like with aluminium – so, I started to design a Parametric Mixing Hotend.
Concept
parametric design with 2 up to 6 filaments inputs
combine heatblock, heatbreak and heatsink, make it compact
permit ordinary nozzles (MK8/E3D V6), using M7 thread
orient heat cartridge vertically (like a E3D Volcano) to support up to 0.8mm nozzles
single 30mm fan for heatsink
using PC4 M10 or M4 pneumatic couplers as intakes
Pros:
mixing colors: 2 to 6 colors, CMY(KW), actual true color printing
fast switching of materials, given they have similar extrusion temperature
Cons:
filaments must be present in order to withstand backpressure even if not printed
filaments must be printed eventually, otherwise ‘bake’ in the hotend
Challenges:
controlling actual mixing in the chamber, e.g. creating turbulence to mix properly
creating turbulences may limit retraction, which is anyway not easy with mixing hotends
Multi-In Mix Part Cooler (frontview)Multi-In Mix Part CoolerMulti-In Mix Part CoolerMulti-In Mix Part Cooler (underside)Multi-In Mix Part Cooler (backside)Multi-In Mix Part Cooler
Gallery
Early prototype printed in cold white eSun PLA+ 0.25mm layer height (~1h 20m print time):
iterations of prototype, model printed in PLA+ (frontside)iterations of prototype, model printed in PLA+ (backside)
Adding nozzle, heat cartridge, heat thermistor, heatsink fan and pneumatic couplers PC4 M6:
2-in Mixing Hotend prototype with 30mm fan mounted Part Cooler 2-in Mixing Hotend prototype with 30mm fan mounted Part Cooler
which very likely leads to have a some sort of thermal insulator aka silicon sock for lower part of the heat chamber and nozzle.
Metal Printing
The first attempt to order with WeNext using SLM failed, they were not able to find a way to print it without support, which was surprising as powder-based metal printing1) – the removal of support was not guaranteed, so I canceled the order.
SLM powder-based printing requires support structure to counter act geometric distortion when sintering, when the piece shrinks.
The 2nd attempt with PCBWay – disclosure: they approached me a couple of weeks later to sponsor metal printing process, which I agreed on – also using SLM AlSi10Mg at first looked good at first, but then they also needed to add supports once the production step came close, and then I followed up and approved the production. The order was submitted November 5, and 14 days later the piece was at my door.
Parametric Mixing Hotend, 2-in SLM in AlSi10Mg (printed by PCBWay)Parametric Mixing Hotend, 2-in SLM in AlSi10Mg (printed by PCBWay)Parametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgParametric Mixing Hotend, 2-in SLM in AlSi10MgPreassembled with nozzle, heat cartridge, thermristor, cooling fan
the print quality is excellent, the supports have been removed pretty much with little remains (between the cooling plates a few spikes remained but they have no functional influence)
a bit rough surface overall, more than I expected; which means, the inner holes are also rough and likely add friction to the motion of the filament
Preassembled with MK8 0.4mm nozzle, 30mm fan, heat cartridge and thermistor:
Preassembled Parametric Mixing HotendPreassembled Parametric Mixing HotendPreassembled Parametric Mixing Hotend: with nozzle, heat cartridge, thermistor, cooling fanPreassembled Parametric Mixing Hotend: with nozzle, heat cartridge, thermistor, cooling fanPreassembled Parametric Mixing Hotend: with nozzle, heat cartridge, thermistor, cooling fan
and 2x PC4-M6 threaded, with PTFE tubes:
Mixing Hotend: SLM AlSi10Mg 3D Printed Hotend fully assembledMixing Hotend: SLM AlSi10Mg 3D Printed Hotend fully assembledMixing Hotend: SLM AlSi10Mg 3D Printed Hotend fully assembled
Heating
My test rig:
Mellow Fly Super8 V1.2 running RepRapFirmware with two stepper motors attached driving two extruders in Bowden style
Test rig: Mellow Fly Super8 running RepRapFirmware 3.4.1, two steppers/extruders with custom mixing hotend printed in SLM AlSi10Mg (Aluminium)
Pass 1: First results
I heated to 50C°, 80C° and 100C°:
thermistor does poor job to measure actual temperature at the heatblock ~20C° off
heat conductivity to nozzle is very poor, barely heat up at all (when thermister reports 100C°) – very surprising
heat piles up from the heart cartridge cables
the fan cools barely, could be better
Pass 2: Adding thermal paste
adding thermal paste for the thermistor and nozzle thread
running M303 for 100C° and keeping it at 100C° for 10mins
lowest heatsink fin reaches 50C° – also connects to heatsink fan
nozzle looks cold (but when touching it it is hot), filament will definitely melt above
heat block has consistent heat distribution
Pass 3: Setting 150C°
nozzle looks cold on the thermal camera, but definitely is hotheat cartridge cable is hot ~200C° while heatblock is at 120-130C°filament pipe above heatblock is at 100C°, while thermistor reports 150C°, heat cartridge cable at 220C°
heatblock is at ~120C° while thermistor reports 150C°
the filament pipe above the heatblock is at 100C°
the nozzle looks cold, but is hot at 105C° when touching with 2nd thermistor, an issue with reflective brass not properly showing proper thermal reading
Pass 4: Lowering Fan
As the lowest fin heats up significantly, as a first remedy I lowered the heatsink fan a bit:
Set 150C°Set 150C°Set 150C°Set 150C°Set 180C°
lowest fin is cooler, also overall better air flow; the fins seems a bit too thick, thinner would be better
lower end of heat block has near set temperature, delta of just ~5C°
Conclusion Pass 1-4
make heatbreak section of pipes thinner
optionally have PTFE tubes until lower end of heatsink for smooth motion of filament
make fins thinner
lower heatsink fan by one fin
Putting Kapton tape on brass nozzle in order to get accurate temperature readingSet 150C°Set 150C°Set 150C°
Iteration 2
After the tests, I changed the design slightly:
thinner pipes to lessen heat transfer to the heatsink
a few wings on the fins to increase heat dissepation
thinner fins so the air flows better
Submitted to PCBWay 2022/11/29 for manufacturing review, a day later I was informed of thin walls of the pipes near the heatbreak (<1mm) and I gave OK to manufacture.
Iteration 2 of Parametric Mixing Hotend
The thin heatbreak walls seemed to help:
ability to heat up to 210°C nominal, some parts reach 220°C, but nozzle is around 210°C
30mm fan performs well
40mm fan removes too much heat, no possible to reach 210°C anymore
heatbreak pipes are still too thick, too much heat flows away (hence 30mm vs 40mm fan)
first extrusion worked, but after 1-2min both channels are blocked, near lowest fin of the heatbreak, to clear the blockage, I removed the fan and heated to 180°C and allow entire hotend to reach ~90°C, then with 0.4mm needle and 1.8mm copper wire was able to clear the blocked section
Conclusion
Heatbreak is most critical, and has to be short and has to be a hard cut temperature gradient-wise – and 0.5mm wall thickness is still too much. So, regardless of cooling fan on the heatsink, if the heatbreak is too thick, too much heat creeps up or away – it’s not a matter of cooling capacity, but conductivity.
Todo
metal printed version (aluminium), done 2022/11/21
heating tests (on-going)
test prints with multiple filaments
2 inputs, e.g. complementary colors (Black/White: Grey Shades, Yellow/Violet: Red Shades)
3 inputs, e.g. CYM: saturated colors only
5 inputs, e.g. CYMKW: full spectrum colors
silicon socks for all variants, as part cooler will introduce otherwise heating instabilities
cost effective with EUR 20-24 (2022/09) complete with heat cartridge, thermistor, 3xPTFE tubes, 30mm fan
Cons:
nozzle / heatblock asymmetry: the heatblock extends right-side ~2mm
clumsy fan fastening between heatsink ribs
slightly overengineered otherwise, too much mass for the basic functionality
XCR3D 3in1-S1
BigTreeTech ZSYong 3in1
Asymmetric heatblockUnstable fan mountFull package
NF THC-01 3in1
Very similar, but with symmertric E3D V6 heatsink:
Clones of Clones
It seems to me, the this 3-in-1 hotend with hexagon heatsink, was cloned from NF THC-01 3in1, and likely engineered by a small company, and now brands like BigTreeTech, XCR3D and others purchase in bulk the hotend black/red anodized and their white brand stamp on the hotend.
What makes things truly confusing is that the hotends from China have terrible naming, e.g. “3in1” and “2in1” are used for switching and mixing hotends, which are quite different functionalities, and otherwise the name does not distinct designs.
Part Cooler
I adapted the Parametric Part Cooler using 50×10 blower fan for the XCR3D 3in1 S1 as well:
XCR3D 3in1-S1 / BigTreeTech ZSYong 3in1 mounted on Ashtar C #1XCR3D 3in1-S1 / BigTreeTech ZSYong 3in1 mounted on Ashtar C #1XCR3D 3in1-S1 / BigTreeTech ZSYong 3in1 mounted on Ashtar C #1
As you can see on the illustration and photos, put the part cooler on the heatsink, and then 30mm heatsink fan on top. The part cooler itself requires 50x15mm blower fan.
It is a bit fiddly as there are no clear threads for the screws on the heatsink, so the first mounting is crucial to thread properly.
Marlin 2.0.x Configuration
In Configuration.h one has to update the thermistor type:
#define TEMP_SENSOR_0 5 // changed from 1 to 5
...
#define PID_FUNCTIONAL_RANGE 25 // changed from 10 to 25
recompile, upload/update firmware and then run via G-code console the autotune PID procedure:
M303
and after 3-5 mins or so, when the autotune is done, save settings in EEPROM:
M500
and one is done.
Conclusion
I really struggled to get decent quality prints first, as somehow the temperature reports were off by 40C°, and various Google searches gave the same wrong answers, the seller did not give proper detailed information about the thermistor either. Eventually at Amazon one customer gave the relevant information ATC Semitec 104GT-2/104NT-4-R025H42G and defining TEMP_SENSOR_0 5 in Marlin gave sane results.
Ashtar K #3 with XCR3D 3in1-S1 hotend with 3 rolls of filament
I really like the switching filament solution close to the hotend, compared to other multi-material solutions where materials are switched far away from the hotend; e.g. switching material is faster, but one has to still purge one material/color by 30-50mm filament – so I tend to use the multi-material/color feature for fast switching colors for single material/color prints.
Following procedure I use when switching material:
heat up nozzle
purge 30-40mm regardless
retract 55mm at 70mm/s
switch to new material/color (e.g. “T1“)
push 55mm at 70mm/s forward
extrude/purge 30-40mm filament
start actual print
[ … ]
end print
retract 55mm at 70mm/s
switch to “T0“
push 55mm at 70mm/s forward [note: not purging material/color transition]
so by default “T0” is ready to be printed. In order the print with the other materials, I have two macros with Print3r e3-t1 and e3-t2.
As it happened to me several times, the hotend clogs up and the reason is often the filament is not hot enough, and when pulling back/retracting it forms a long pointy drag, and might break and the next cold filament jams in further down, but not enough to melt – it clogs up eventually.
First solution is to heat hotend at 240C° at least, not more than 250C° because of the PTFE – and try to push with filament on top, eventually some of the clogging might melt and free the nozzle.
Second solution is removing the lower part with heatbreak, heatblock, by opening the worm screws at the heatsink, and review the PTFE intake:
opening worm screwsremoving heatsink with heatblockclogged intakeclogging filaments, mainly pointy dragsPTFE comboPTFE reaches into the heatblock, hence 250C° maxpushing back hotend into heatsink & refastenXCR3D 3in1 with part cooler
Beside Fused Deposition Material (FDM) / Fused Filament Fabrication (FFF) aka extruding hot filament, there are more methods to 3D print:
SLA (stereolithography): resin based printing
SLS (selective laser sintering): laser sintering, like polyamid powder
MJF (material jetting): deposite material and binder in one go
SLM (selective laser melting): metal laser sintering, aka metal printing
and I choose JLCPCB which provides all four of them, whereas SLM only stainless steel is available as of 2022 – other 3D printing services provide wide-range of metals as well.
Review
I ordered Pulley 20T 6ID (GT2 20 teeth 6mm inner diameter) as created via OpenSCAD Customizer, a piece which requires high accuracy and is mechanical stressed when in use, in following materials:
8x PA12 aka Nylon aka Polyamid, black reflective (MJF), 1.04 EUR / pc
8x 9000R resin, natural white (SLA), 1.04 EUR / pc
8x 3201PA-F aka Nylon, dark gray matte (SLS), 1.04 EUR / pc
The overall quality of all pieces are excellent, regardless of automatic warnings I received while requesting the 3D printing task.
MJF: PA12 / Polyamid / Nylon
MJF has a nice finish, slightly reflective, deep dark, slightly grainy surface, and the top of the pulley is uneven, otherwise very precise.
diameter 16.1mm (+0.62%)
height 15.5mm (+0%)
cost EUR 1.04
SLS: 3201PA-F / Polyamid / Nylon
3201PA with SLS is a very good piece, dark gray matte, grainy surface, very precise.
diameter 16.05mm (+0.31%)
height 15.6mm (+0.65%)
cost EUR 1.04
SLA: 9000R Resin
9000R resin with SLA produced a very nice piece, best finish at the top (near perfection), milky white color (vs cold white or warm white), but as it turns out not very precise:
diameter 17.75mm (+4.68%)
height 16.1mm (+3.87%)
cost EUR 1.04
It is very surprising to see the SLA having the biggest imprecision of all the samples.
SLM: 310L Stainless Steel
316L stainless steel with SLM produced a nice piece as well, the top of the pulley is good, some unevenness where the top goes over the gear:
overall it’s grainy surface – indicating powder-based additive procedure. Holding the piece in the hand feels heavy compared the other materials.
diameter 16.0mm (+0%)
height 15.5mm (+0%)
cost EUR 8.30
Verdict
The SLA / resin piece looked most smooth but it had the biggest imprecisions with over 3% in height and diameter – very surprising to me, it should comparatively be as precise as SLS and MJF. I cannot determine if it’s from the JLCPCB resin printer, or inherent of SLA.
SLS and MJF with Nylon performed expectedly very good, very sturdy and precise.
SLM stainless steel surprisingly very precise, yet unsuitable in real life application due the heavy weight.
Long Term Usage
I will update this part as soon long term (1-2 years) usage experience is available:
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
Cons:
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
Download
As next download the firmware, Marlin 2.0.x source from github:
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
ok
>
M503 Dump for Ashtar C
Ashtar C with 400×400 bed, 3 extruders with single nozzle:
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 PinsMKS 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:
Alternatively, there are Duet 2 & 3 clones available on the market:
Duet 2 WIFI Clone
Duet 2 WIFI Original
Duet 3 6HC FYSETC Clone with Duet 3 3HC
Duet 3 6HC Original with Duet 3 3HC
Price
30-50 EUR2)
175-185 EUR1)
225 EUR (150+75)
385 EUR (255+130)
Stepper Drivers
5
5
9 (6+3)
9 (6+3)
Stepper Connectors
6
6
9
9
Hotends
2
2
7 (4+3)
6 (3+3)
USB
YES (MicroUSB)
YES (MicroUSB)
YES (MicroUSB)
YES (MicroUSB)
WIFI
YES
YES1)
–
YES1)
Ethernet
–
YES1)
YES
YES1)
Firmware
RepRapFirmware
RepRapFirmware
RepRapFirmware
RepRapFirmware
either WIFI or Ethernet
without or with display
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.
Marlin
Klipper & Marlin
RepRapFirmware with Duet
CPUs
1x Simple Microntroller
1x SBC + 1x Simple Microcontroller
1x Capable Microcontroller
Connectivity
USB only
USB, Ethernet and/or WIFI
USB and Ethernet or WIFI
Configuration
3x .h files, recompiling required
single .cfg file
single .g file**)
Boot Time
3s
Klipper 30s, Marlin 3s
3s
*) 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.
References
github: MKS Monster8 V1/V2: minimalistic information, PDFs and Marlin firmware for V1.0 and V2.0 of the board
github: MKS MINI 12864 V3 cases (STL), unfortunately the MKS MINI 12864 V3 display has a slightly different form factor, and existing cases don’t fit