Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions printer_mods/rschiele/revo_nozzle_holder/.metadata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
# The title of your mod. Choose a short and descriptive name
title: E3D Revo Nozzle Holder for Voron Printers
# A short description of your mod. Try to describe your mod with 1-2 short sentences
description: Store your nozzles inside the Voron printer on a holder mounted to the frame extrusion.
# Mod version: Set this to 1 when you are submitting a new mod. When you make changes to your mod, you may increment this number
mod_version: 1
# You may add your discord username here so people can contact you about your mod
discord_username: rschiele
# The CAD files for your mod. Please provide them as a list.
# Note that each mod must include at least one CAD file.
cad:
- CAD/revoholder.scad
# The image files provided with your mod. These may be instructions you use in your README.md file, or other additional pictures.
# **Note that the first image specified here will be used as cover image on mods.vorondesign.com**
# All paths are relative to this .metadata.yml file.
images:
- Images/photo.jpg
- Images/CAD.png
# List all STL files
stl:
- STL/[a]_revo_nozzle_holder_2_nozzles.stl
- STL/[a]_revo_nozzle_holder_3_nozzles.stl
- STL/[a]_revo_nozzle_holder_4_nozzles.stl
- STL/[a]_revo_nozzle_holder_5_nozzles.stl
- STL/[a]_revo_nozzle_holder_6_nozzles.stl
- STL/[a]_revo_nozzle_holder_2_nozzles_nologo.stl
- STL/[a]_revo_nozzle_holder_3_nozzles_nologo.stl
- STL/[a]_revo_nozzle_holder_4_nozzles_nologo.stl
- STL/[a]_revo_nozzle_holder_5_nozzles_nologo.stl
- STL/[a]_revo_nozzle_holder_6_nozzles_nologo.stl
# Printer compatibility. Please specify all compatible printers as a list. The following values are accepted:
# "V0", "V0.1", "V0.2", "V0.2r1", "V1", "V1.6", "V1.8", "V1.8r1", "V2", "V2.1", "V2.2", "V2.4", "V2.4r1", "V2.4r2", "VSW", "VT", "VTr1", "VL"
# Please only specify printers that you have either tested your mod on yourself, or that someone else has tested for you. If you are unsure whether your
# mod is compatible with a certain printer, don't list it here!
printer_compatibility:
- V2.4r2
123 changes: 123 additions & 0 deletions printer_mods/rschiele/revo_nozzle_holder/CAD/revo_nozzle_holder.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
// E3D Revo Nozzle Holder for Voron Printers
// Copyright (C) 2026 Robert Schiele <rschiele@gmail.com>
//
// This work is licensed under the Creative Commons Attribution 4.0
// International License. To view a copy of this license, visit
// http://creativecommons.org/licenses/by/4.0/.
//
// Alternatively, you are permitted to use this under
// any version of GPL license.

/* [customize] */
// Number of nozzles
num=6; // [2:10]
// Include E3D logo
logo=true;

/* [design details] */
// height of the holder
height = 28;
// distance of two nozzles
nozzledist = 17.5;
// width of the profile
profilewidth = 14;
// height of the profile
profileheight = 5;
// outer radius of rounding;
roundrad = 10;
// distance of rounding center to nozzle
rounddist = 2.5;
// chamfer size
chamfer = 1;

/* [technical] */
// minimum angle for a fragment
$fa=1;
// minimum size of a fragment
$fs=0.2;

module prof() for(i=[0, 1]) mirror([i, 0]) polygon([
[0, 0],
[0, profilewidth/2],
[profileheight/2-chamfer, profilewidth/2],
[profileheight/2, profilewidth/2-chamfer],
[profileheight/2, 0]]);

module holder() for(j=[0, 1]) mirror([0, j, 0]) difference() {
for(i=[0, 1]) mirror([i, 0, 0]) union() {
translate([0, 0, height/2]) for(j=[0, 1]) mirror([0, 0, j]) {
translate([0, 0, (height-profileheight)/2]) rotate([0, 90, 0])
linear_extrude(nozzledist*(num-1)/2+rounddist) prof();
translate([nozzledist*(num-1)/2+rounddist, 0,
height/2-roundrad]) rotate([90, 0, 0])
rotate_extrude(90)
translate([roundrad-profileheight/2, 0]) prof();
translate([nozzledist*(num-1)/2+
rounddist+roundrad-profileheight/2, 0, 0])
linear_extrude(height/2-roundrad) prof();
}
rotate([0, 90, 0]) linear_extrude(nozzledist*(num-1)/2)
polygon([[-1, -1], [0, 3], [0.8, 2.2], [0.8, 0]]);
}
for(x=[-nozzledist*(num-1)/2:nozzledist:nozzledist*(num-1)/2])
translate([x, 0, 0]) {
translate([0, 0, height]) %cylinder(5, d=12.5);
rotate_extrude() polygon([
[0, height+1],
[5.2, height+1],
[3.2, height-1],
[3.2, height-profileheight+1],
[5.2, height-profileheight-1],
[4.1, profileheight+1],
[2.1, profileheight-1],
[2.1, 1],
[4.1, -1],
[0, -1]]);
}
for(i=[0, if(num>2) 1]) mirror([i, 0, 0]) {
translate([nozzledist*(num/2-1), 0, 0]) {
translate([2.7, 0, 2]) {
cylinder(8, d=3.4, center=true);
cylinder(4, d=6);
}
%translate([0, 0, -2]) cube([13.3, 8, 4], center=true);
}
}
}

module e3dlogo() translate([-16, -6.5]) {
for(i=[0, 1]) translate(i*[21, 0]) mirror([i, 0]) {
polygon([[4, 0], [10, 0], [10, 1.4], [8.4, 3], [3, 3],
[3, 5], [8.4, 5], [8.4, 8], [0, 8], [0, 4]]);
translate([4, 4]) intersection() {
difference() {
circle(4);
circle(1);
}
rotate(180) square(4);
}
polygon([[0, 10], [10, 10], [10, 13], [4, 13]]);
translate([4,9]) mirror([1, 0]) resize([4, 3]) intersection() {
circle(4);
translate([0, 1]) square(4);
}
}
polygon([[22, 0], [28, 0], [32, 4], [32, 9], [28, 13], [22, 13],
[22, 10], [29, 10], [29, 3], [25, 3], [25, 8], [22, 8]]);
for(i=[0, 1]) translate(i*[0, 13]) mirror([0, i])
translate([28, 9]) intersection() {
difference() {
circle(4);
circle(1);
}
square(4);
}
}

translate([0, 0, profilewidth/2]) rotate([-90, 0, 0]) difference() {
holder();
if(logo) for(r=[-90, 90]) rotate([90, 0, r])
translate([0, height/2, nozzledist*(num-1)/2+roundrad+rounddist])
linear_extrude(0.8, center=true)
scale((profilewidth-2*chamfer)/36) e3dlogo();
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions printer_mods/rschiele/revo_nozzle_holder/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# E3D Revo Nozzle Holder for Voron Printers

Store your nozzles inside the Voron printer on a holder mounted to the frame
extrusion.

You may screw this nozzle holder onto the frame extrusion of your Voron
printer. To do so, you need M3 roll-in nuts and M3x8 screws that you are
familiar with from your Voron build. The holder comes in variants from 2 to 6
nozzles capacity. For the variant with 2 nozzles, you need 1 screw and 1 nut;
for the larger models, you need 2 screws and 2 nuts. Make sure that you align
the roll-in nuts in a way that they do not block the holes to store the nozzle
in!

There are other similar holders available, but this one is more minimalistic
than the others I found and requires less space since they are designed in a
way that part of your nozzle sinks into the free space of the extrusion.
Additionally, in my opinion, this model is more aesthetic, but for sure I am
biased here.

The models feature small E3D logos on the sides. For those who do not like
this and want an even more minimalistic-looking version, I added versions
without the logo as well.

I tested this on my V2.4r2 but given it needs only a little space and an 2020
extrusion it should work at least on any V2 and Trident printers. If you
tested this on any other printer than the V2.4r2, please let me know!

![CAD](./Images/CAD.png)

## Printing

Use standard voron print settings. 4 walls, 5 top & bottom laters, 40% infill.

![photo](./Images/photo.jpg)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.