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

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

2 Likes

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

1 Like

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

Hello,

first of all, thank you very much for your work! I am still pretty new to the SV06 ace but it was easy and straightforward to install the klipperscreen on it.

However, i discovered one small problem: if i try to load or unload the filament, i always get an error on the screen saying “Unknown command: LOAD_FILAMENT”.

Is there a way to solve this?

Thank you!

Hi,

How do you try to load/unload the filament? Via the touchscreen?

Hi! You can use my G-code from this post:

KlipperScreen for Sovol SV06 Ace - #5 by Rybak27
Insert this in your Macro.cfg file

Big thumbs up from me!

I don’t have that printer anymore. But I did point out from the beginning that the display firmware grants itself exclusive rights to the camera light port. So that could be the solution. I’m currently using a lot of other printers, but maybe I’ll give it a try on the SV06 Plus ACE.

Thanks!

Hi! You can add this to printer.cfg, and then the lighting will be controlled via Mainsail.

[output_pin cameralight]
pin: rpi:gpiochip2/gpio3

However, I’m not sure whether there will be a conflict with the original display firmware. You can just try it and see. This is a solution from psychedup74 that works well.

1 Like

Rybak27, I signed up for this forum just to thank you for this. This is awesome and installed just fine today on my SV06 ACE. Also thanks for the filament load/unload macros, as well as the tip from psychedup74 on the pin definition for the camera LED!

1 Like

Hi,

yes, i treid to unload/load via the touchscreen!

@Rybak27 : thank you for you macro, i have overseen your post above. I’ve tried it once to implemet the macro, but until now, i was not successful. I will try again and otherwise come back to you if that is OK.

Apart from this, the printer is runing perfectly fine since the installation of the Klipper Screen. It is just so much better than the original touchscreen interface.

Hello,

That’s very strange. I’ve had this printer for at least a year and have never had this problem before.

Your firmware may be corrupted. In that case, it would be a good idea to reinstall it with the latest version.

I managed to implement the macros from @Rybak27 and now everthing is working flawless. Loading/unlaoding the filament is now also working via the touchscreen.

Thank you!

1 Like

After I pasted the load/unload macros provided here into macro.cfg, saving it threw an error for each line added. I found I had to go in and edit the spaces in front of each line added in order for Klipper to be able to parse each line as macro content.