KlipperScreen for Sovol SV06 Ace

Hi everyone!

I successfully managed to get KlipperScreen running natively on my Sovol SV06 Ace using the stock display. No extra hardware is needed.

I created an automated installation script that sets everything up.

https://github.com/R8CEH/klipperscreen_sovol_sv06_ace

3 Likes

Excellent Work! The proprietary UI of the Ace is one of the reasons I bought the SV07 instead.

You should extend your method to the SV08, Zero, and Max units.

I have none of them or I’d volunteer to alpha test.

The SV08 & Zero use a different screen…it’s more Marlin like.

Thanks! I was able to run the script on my SV06 ACE and Plus ACE and they both have klipperscreen now!

There was a moment of fear, as I saw a couple messages “No space left on device” toward the end of the process. After rebooting klipperscreen was working but it was not connected to wifi. I was afraid I might have to set up a serial connection to be able to fix it, but I was able to go into the Network settings via klipperscreen, enter my wifi password and it connected successfully.

The camera LED defaulted to being on all the time, but I was able to fix that by adding this to my printer.cfg (from another thread here)

[output_pin cameralight]
pin: rpi:gpiochip2/gpio3

I do not find the interface to be sluggish so far, it actually feels pretty responsive so far. I’ve never used klipperscreen before but so far I like it.

The only thing I really ever used the screen for before, was loading and unloading filament. Do you all have macros that you use for that, or do you just manually set the temperature and click extrude?

Hi! You can use my macros:

[gcode_macro UNLOAD_FILAMENT]
gcode:
{% set TEMP = params.TEMP|default(250)|int %}

SAVE_GCODE_STATE NAME=UNLOAD_FILAMENT_STATE

{% if "xyz" not in printer.toolhead.homed_axes %}
    M117 Homing...
    G28
{% endif %}

M117 Parking...
G90
{% if printer.toolhead.position.z < 40 %}
    G1 Z40 F1500
{% endif %}
G1 X0 Y225 F3000

M117 Heating to {TEMP}...
M109 S{TEMP}

M117 Unloading...
G91
G1 E5.0 F300       
G1 E10.0 F450      
G1 E-20.0 F2400    
M400
G4 P5000          
G1 E-40.0 F1800    

G90
M400
M104 S0

RESTORE_GCODE_STATE NAME=UNLOAD_FILAMENT_STATE
M117 Filament unloaded

[gcode_macro LOAD_FILAMENT]
gcode:
{% set TEMP = params.TEMP|default(250)|int %}

SAVE_GCODE_STATE NAME=LOAD_FILAMENT_STATE

{% if "xyz" not in printer.toolhead.homed_axes %}
    M117 Homing...
    G28
{% endif %}

M117 Parking...
G90                        
{% if printer.toolhead.position.z < 40 %}
    G1 Z40 F1500           
{% endif %}
G1 X0 Y225 F3000          

M117 Heating to {TEMP}...
M109 S{TEMP}               

M117 Loading...
G91                       
G1 E40.0 F600              
G1 E45.0 F240              

G90                        
M400                       
M104 S0                    

RESTORE_GCODE_STATE NAME=LOAD_FILAMENT_STATE
M117 Filament loaded!

Thanks for the solution!

You can also go to the Printer G-code section in OrcaSlicer and paste the following code into the “G-code after layer change” field

M117 Layer: {layer_num+1} / {total_layer_count} : {layer_z}mm

This will let you see the total number of layers and the current layer number on the display

Created an account just to say “well done!” I just got my printer two weeks ago and am a total novice; however I have plenty of software experience and am delighted to now have more options on the touchscreen (like interfacing with Spoolman).

I saw this message before I started, checked the storage several times during the install, and still got them. After I got back in, I still had 20% storage free. The errors are from writing to /dev/fb. Maybe the error should be sent to /dev/null so us plebeians don’t panic.

Don’t worry, this is expected behavior. When the script finishes, data is sent to the display framebuffer to fill the screen with black. The error occurs due to a buffer overflow, and there’s nothing wrong with that.

This is awesome! One step closer to getting mainline Klipper on the ACE