What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

LDO Voron 2.4 Build with All Metal Parts

Some years back I built a 400x400x400mm Frame from 20x20 and 20x40 extrusion.
It was a fixed bed design with gantry moving using wheels and 8mm threaded rods, I never got around to adding electronics...
It's now a candidate for a non-enclosed, PLA only, Voron...
I have lots of spares including EBB36, Dragon Burner, Hot-ends, pulleys, bearings and a tiny PC instead of a Pi... all I need is time ;)
 
Status on Build 31th March 2024

Ready To Print... :cool: ... kinda...

Mesh.png
Outstanding:
Stealtgburner RGB not working...
Nevermore Filter Fans not set up...
Fit the enclosure/pannels (no hurry with this)...

Making the following Z adjustments:
Code:
stepper_z = -0.001188
stepper_z1 = 0.001188
stepper_z2 = 0.001187
stepper_z3 = -0.001187

Optional Extras:
Might replace Skirt Fans with quieter fans possibly two Noctua in series (if they have the same size? ... they do, just ordered two)...

Anyway it's nice to see the light at the end of the tunnel :)
 
Last edited:
Might replace Skirt Fans with quieter fans
I can't take credit for this - I read it somewhere else (possibly either here or Reddit)... but try removing the covers over the fans first.

It makes a dramatic difference in the noise. Apparently a large part of the noise isn't the fans themselves, but the "slicing" of the air between the stationary parts of that printed fan guard and the blades of the fan.
 
I can't take credit for this - I read it somewhere else (possibly either here or Reddit)... but try removing the covers over the fans first.

It makes a dramatic difference in the noise. Apparently a large part of the noise isn't the fans themselves, but the "slicing" of the air between the stationary parts of that printed fan guard and the blades of the fan.
Yep, that is how I run them. Just try to remember not to stick your fingers near the fans when the machine is running or you will only be able to count to 9 on your fingers :)
 
More by accident than design, I ended up with one of the skirt fans directly facing the Pi and the other facing the SCR.
During normal operation (with some random testing), the Pi temperature never went over 28.5° C / 83.3° F with fans at 25% speed and in a very quiet room, barely audible...
As I still need a fan for the motor drivers and I have two more spaces in the skirt (pointing fairly close the 2209's), I will use the Noctua NF-A6x35 12V fans I ordered for cooling the drivers...

Another thing I noticed, if I set skirt fans to 100% they become quite loud, they induce resonances in the frame, a kind of acoustics amplification...
Adding packing foam under the feet reduce the noise quite a bit, perhaps fans should be mounted to the skirt with some type of silicone dampening...

Voron 2.4 Build: Idle temperatures (fans at 20% - virtually silent)
Temps.png
 
Last edited:
More by accident than design, I ended up with one of the skirt fans directly facing the Pi and the other facing the SCR.
During normal operation (with some random testing), the Pi temperature never went over 28.5° C / 83.3° F with fans at 25% speed and in a very quiet room, barely audible...
As I still need a fan for the motor drivers and I have two more spaces in the skirt (pointing fairly close the 2209's), I will use the Noctua NF-A6x35 12V fans I ordered for cooling the drivers...

Another thing I noticed, if I set skirt fans to 100% they become quite loud, they induce resonances in the frame, a kind of acoustics amplification...
Adding packing foam under the feet reduce the noise quite a bit, perhaps fans should be mounted to the skirt with some type of silicone dampening...

Voron 2.4 Build: Idle temperatures (fans at 20% - virtually silent)
View attachment 4502

thanks for sharing your perspective on skirt fans and dampening. will check as I build mine. also do you need to run them at 100% ?
 
In electronics I am obsessed with quiet, probably true of life too... :cautious:

In this case we only need to keep an eye on the Pi and Motor Drivers (2209's etc) and to a lessor extend the Control Board and Power Supply as these normally don't have issues.
My current tests are to determine the minimum fan speed I need to run the skirt fans while keeping the Pi cool and it looks like 20-25% (during summer months, I may need to increase this).
It should be pretty much the same for the motor drivers, I haven't determined that yet but would guess 20-25% should be fine too...

As a general rule, doubling the fans allows halving their speed, and, as a consequence, their noise. I'm going out on a limb now, but somewhere, someone probably has a water cooled Voron, or at the very least, the Raspberry Pi part :unsure:

It would also be nice to run the Nevermore fans proportional to filament used, or extruder temp, for example, 20% for PLA, 100% for ASA etc...
To that end, is there a macro to do that? (if min_extrude_temp > 220 nevermore_fan_speed 1.0, else nevermore_fan_speed 0.2)
 
Last edited:
In electronics I am obsessed with quiet, probably true of life too... :cautious:

In this case we only need to keep an eye on the Pi and Motor Drivers (2209's etc) and to a lessor extend the Control Board and Power Supply as these normally don't have issues.
My current tests are to determine the minimum fan speed I need to run the skirt fans while keeping the Pi cool and it looks like 20-25% (during summer months, I may need to increase this).
It should be pretty much the same for the motor drivers, I haven't determined that yet but would guess 20-25% should be fine too...

As a general rule, doubling the fans allows halving their speed, and, as a consequence, their noise. I'm going out on a limb now, but somewhere, someone probably has a water cooled Voron, or at the very least, the Raspberry Pi part :unsure:

It would also be nice to run the Nevermore fans proportional to filament used, or extruder temp, for example, 20% for PLA, 100% for ASA etc...
To that end, is there a macro to do that? (if min_extrude_temp > 220 nevermore_fan_speed 1.0, else nevermore_fan_speed 0.2)
I haven't reached there with my trident build yet but I think I will also focus on getting the quite fan experience so I will be playing with what values I set for my fans. Where I stay right now my ambient temperature is 31.5 degree centigrade. So yeah it will be fun.
 
My config test code and notes:

Separate CANBus (2209) code in canbus.cfg (with exception of [probe] which needs to be in printer.cfg)...

Notes:
It appears when saving config (SAVE_CONFIG), the section in question must be in printer.cfg.
In not, an error will occur, example PROBE_CALIBRATE requires [probe] to be specified in printer.cfg

canbus.cfg
Code:
# This file contains common pin mappings for the BIGTREETECH EBBCan
# Canbus board. To use this config, the firmware should be compiled for the
# STM32G0B1 with "8 MHz crystal" and "USB (on PA11/PA12)" or "CAN bus (on PB0/PB1)".
# The "EBB Can" micro-controller will be used to control the components on the nozzle.

# See docs/Config_Reference.md for a description of parameters.

[mcu EBBCan]
canbus_uuid: b81d268543d8

[temperature_sensor EBB_NTC]
sensor_type: Generic 3950
sensor_pin: EBBCan:gpio28

[temperature_sensor BTT-PI]
sensor_type: temperature_host

[temperature_sensor BTT-MCU]  
sensor_type: temperature_mcu

[adxl345]
cs_pin: EBBCan:gpio1
spi_software_sclk_pin: EBBCan:gpio2
spi_software_mosi_pin: EBBCan:gpio0
spi_software_miso_pin: EBBCan:gpio3
axes_map: z,-y,x

[resonance_tester]
probe_points: 100, 100, 20
accel_chip: adxl345

[fan] # cooling fan
pin: EBBCan:gpio13
kick_start_time: 0.5
off_below: 0.10

[heater_fan hotend_fan]
pin: EBBCan:gpio14
heater: extruder
heater_temp: 50.0
 
Last edited:
fans.cfg
Nevermore Filter Fan (Manual Code & Macros)
Might as well use Nevermore at half speed or slower with PLA to reduce any odor.

Code:
# Notes:
#
# fan_generic       = so it can be controlled manually or via delayed_gcode
# heater_fan        = active when heater active, need to define which: heater: heater_name
# controller_fan    = A "controller fan" is a fan that will be enabled whenever its associated heater
#                     or its associated stepper driver is active.
#                     The fan will stop whenever an idle_timeout is reached to ensure no overheating will occur after deactivating a watched component.
#
# Reference: https://www.klipper3d.org/Config_Reference.html?h=controller#controller_fan
#


#[controller_fan fan_name]
#pin: pin_name         # pin name eg. PD14
#max_power: x.x        # max speed 0.1 - 1.0  read as 10 to 100%
#kick_start_time: x.x  # full speed for x time to make sure fan spins up
#shutdown_speed: x.x   # if error occurs, set speed to 0.0 - 1.0 (0 - 100%) issues with this ???
#idle_timeout: 30      # keep fan active for x seconds after heater (extruder) is turned off (soak up the fumes)
#heater: ?             # extruder or heater_bed
#stepper: ?,?,?        # associated stepper eg. stepper_x, stepper_y, stepper_z, stepper_z1 etc...

#################################################################################
# Notes
#  By default, a heater_fan has a shutdown_speed equal to max_power
#  If shutdown_speed is 1.0, max_power must also be 1.0 to ensure fan
#  continues in the even of a fault condition.
#################################################################################

# Controller fan - FAN0
# pin: PA8
# ...
# Controller fan - FAN1
# pin: PE5
# ...

# Controller fan - FAN2
[controller_fan Pi]
pin: PD12
max_power: 0.5        # might only require 20% speed
kick_start_time: 3.0  # full speed for x to make sure fan spins
shutdown_speed: 0.0   # if error occurs, keep fat at 100%
heater: extruder      # associated heater/stepper
idle_timeout: 30      # keep fan active for x seconds after heater (extruder) is turned off

# Controller fan - FAN3
[fan_generic Nevermore]   #[heater_fan Nevermore_(Filter)]
pin: PD13
max_power: 1.0        # If shutdown_speed is 1.0, max_power must also be 1.0 to ensure fan continues in the even of a fault condition.
shutdown_speed: 1.0   # max_power must first be set to 1.0 if shutdown_speed is set to 1.0.
kick_start_time: 3.0  # full speed for x to make sure fan spins
#heater: extruder      # associated heater/stepper
#fan_speed: 0.2        # full speed for x to make sure fan spins

# Controller fan - FAN4
[controller_fan Driver_Fan]
pin: PD14
max_power: 1.0        # max speed
kick_start_time: 0.5  # full speed for x to make sure fan spins
shutdown_speed: 0.0   # if error occurs, keep fat at 100%
stepper: stepper_x, stepper_y, stepper_z  # associated heater/stepper
idle_timeout: 30      # keep fan active for x seconds after heater (extruder) is turned off

# Controller fan - FAN5
# pin: PD15
# ...

#
# Don't really need macros for manual fans, you can just use the slider... consider this testing gcode ;)
#

[gcode_macro NEVERMORE_ONOFF]
gcode:
    {% if printer['fan_generic Nevermore'].speed > 0 %}
      SET_FAN_SPEED FAN=Nevermore SPEED=0
    {% else %}
      SET_FAN_SPEED FAN=Nevermore SPEED=1
    {% endif %}
 
[gcode_macro NEVERMORE_PLA]
gcode:
      SET_FAN_SPEED FAN=Nevermore SPEED=0.25

[gcode_macro NEVERMORE_ASA]
gcode:
      SET_FAN_SPEED FAN=Nevermore SPEED=1.0
fans.pngmacros.png
 
Last edited:
Note extruder on gear_ratio
Code:
gear_ratio: 50:10                #BMG Gear Ratio was 50:17

No wonder I couldn't print a test cube... the gear_ratio in default code was 50:17, it should have been 50:10, where did I get 50:17?
 
First test print failed: MCU 'mcu' shutdown: Timer too close ?

Printing the test cube in PLA, printed about 20% just above where it finishes printing X and Y characters, it's flawless up to that point...
I did have a lot of EXCLUDE_OBJECT_START / EXCLUDE_OBJECT_END errors and unknown command m106...

Any ideas?
 
Last edited:
For the exclude object errors, my guess would be that setting is turned on in your slicer, but not in your klipper config? Probably not your MCU shutdown problem, though.
 
Thanks Vorkosigan, will try again tomorrow, didn't pay enough attention to error reports, just powered the printer off, so no errors in log...

Fix object error first:
moonraker.conf - enable_object_processing: False ... changed to: enable_object_processing: True ✓
printer.cfg - added: [exclude_object] ✓

Will take effect on next test print...

Updates(March 6th)
Fixed unknown command M106, I had commented out '[fan]' and reused the pin, changed it back to original code, testing now...
Appears this or buffer size issue may have caused the shutdown, at 48% with second test print and all fine...
 
Last edited:
Serial Number?
testcube.jpg
Finished 1st successful test print and it's a pretty good starting place... need to fix slight under-extruding next... (note very old filament used in test).
How do I get a Serial Number :cool: ;)
 
Last edited:
It's not all roses... After fixing under-extruding my next three prints all failed at exactly the same position with:
Code:
MCU 'EBBCan' shutdown: Timer too close
This often indicates the host computer is overloaded. Check
for other processes consuming excessive CPU time, high swap
usage, disk errors, overheating, unstable voltage, or
similar system problems on the host computer.
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
Clearing logs and testing again, will post results.

Next test failed with exact same report
I was monitoring and recorded the following; At layer 25, Pi temp 26.8 C, EBB NCT 36.8 C...

In log I noticed this: b'Got error -1 in can write: (105)No buffer space available... is this txqueuelen again?
Checking... looks like it's back to 10 and not 1024, setting manually and trying another print...

Attached klippy.log just in case anyone can help...
 

Attachments

  • klippy0.log.zip
    105.9 KB · Views: 0
Last edited:
I think I have spotted the issue...
Running p -det link show can0 show buffer is only 10 (of course it's 1024 in /etc/network/interfaces.d/can0).
Setting it manually (sudo ip link set can0 txqueuelen 1024) and printing again appears to have fixed the issue, current print job is way past where it errored out on the previous 4 tests...

Have also posted in the klipper discourse channel as it appears this problem may only be significant for those who use CANBus.
Looks like I am going to have to check the txqueuelen after each boot...

Here is the Cube with the correct extrusion Orange, compared to first test print Gray/Grey.
cubetest2.jpg
Oops, upside down...
20240407_191049.jpg
Now for a Benchy to add to my collection (y)

Next two prints failed due to bed adhesion, they both lifted.
One was quite large and one was a Benchy, I used the same filament i.e. orange just like test cube.
I need to learn more about superslicer...

Unrelated, Is there a way to add a purge line?
 
Last edited:
My current tests are to determine the minimum fan speed I need to run the skirt fans while keeping the Pi cool and it looks like 20-25% ...

It would also be nice to run the Nevermore fans proportional to filament used, or extruder temp, for example, 20% for PLA, 100% for ASA etc...
To that end, is there a macro to do that? (if min_extrude_temp > 220 nevermore_fan_speed 1.0, else nevermore_fan_speed 0.2)
It is easy to set up your Pi fan so it keeps the Pi at a set temperature. I have mine set the 38C. The fan (a 3010) runs at between 10% and 20% depending on what software is running on the Pi. Just look in the Kipper docs under "fans". There are several types.

As for fan control by filament type. I had not thought of that but I think it would go in the Print Start macro. And you would turn them off in the print end macro, possibly after a delay
 
Top