Sovol SV07 Plus

Sovol SV07 Plus.

  • method: FDM
  • nozzle: 1
  • nozzle diameter: 0.4 mm
  • nozzle temperature <= 300 degrees Celsius
  • build volume: 300 x 300 x 350 mm
  • recommended printing speed <= 250 mm/s
  • printing accuracy: +- 0.1 mm
  • bed: heated bed
  • bed temperature <= 100 degrees Celsius
  • supported materials: PLA, ABS, PETG, TPU, WOOD
  • material diameter 1.75 mm
  • power input: 115 V / 230 V 50 / 60 Hz
  • power output: 24 V (DC)
  • Power: MeanWell 600W / 24V

other pages: assembly, printing,

back to 3D printers

Links

Sovol SV07 Series, forum,

Klipper, Github Klipper3d/klipper, DangerKlipper, Fluidd, KIAUH, mainsail, Moonraker, KlipperScreen,

archive.org How to use external camera on SV07,

Slicers OrcaSlicer, PrusaSlicer,

PrusaSlicer Arc Overhang,

Printables SV07 Plus Slicer Additions, CV's OrcaSlicer Presets V1.5 for SV07/Plus & klipperized SV06/Plus, Klipper Printer Additions 3.0b4.1 - More Than Boring Start-G-Code,

Teaching Tech 3D Printer Calibration First Layer,

History

2024-04-01: crowsnest - changed camera resolution to 1280x720. Now I get 4 - 5 fps in fluidd, and 5 - 6 fps in mainsail.

2024-04-01: mainsail - webcam - getting the webcam to work was as simple as changing from "Adaptive MJPG streamer" to "MJPG Streamer" in Settings, Webcams.

2024-03-29: camera mount - today the camera got knocked off by the bed. It seems that the "pins" holding the mount to the lower slot on the printer has bent outwards from the pressure. The result is that the mounting is loose. I need to fix this.

2024-03-28: extruder - rotation_distance - I measured and calibrated rotation distance using the Easy E-Steps & Rotation Distance Measurement Tool + Instructions from printables. A bit back and forth, but in the end I ended up changing it from

rotation_distance: 4.59

to

rotation_distance: 4.58

2024-03-27: crowsnest - camera with 1280x960 for camera, fluidd reports 01 - 02 fps, so not to good.

2024-03-26: armbian - motd config

mks@mkspi:~$ more /etc/default/armbian-motd
# add space-separated list of MOTD script names (without number) to exclude them from MOTD
# Example:
# MOTD_DISABLE="header tips updates"
# ONE_WIRE="yes" show 1-wire temperature sensor if attached
# PRIMARY_DIRECTION="rx" show daily traffic stats, options: "rx", "tx", "both", "off", vnstat needs to be installed

MOTD_DISABLE=""
ONE_WIRE=""
HIDE_IP_PATTERN="^dummy0|^lo"
PRIMARY_INTERFACE="$(ls -1 /sys/class/net/ | grep -v lo | egrep "enp|eth" | head -1)"
PRIMARY_DIRECTION="rx"
STORAGE=/dev/sda1

# Temperature offset in Celcius degrees
CPU_TEMP_OFFSET=0

# Define where red color is used
CPU_TEMP_LIMIT=60
HDD_TEMP_LIMIT=60
AMB_TEMP_LIMIT=40

the scripts are in

mks@mkspi:~$ ll /etc/update-motd.d/
total 32
-rwxr-xr-x 1 root root 2239 Mar  2  2022 10-armbian-header
-rwxr-xr-x 1 root root 9993 Mar  2  2022 30-armbian-sysinfo
-rwxr-xr-x 1 root root  816 Dec 25  2021 35-armbian-tips
-rwxr-xr-x 1 root root  886 Dec 25  2021 40-armbian-updates
-rwxr-xr-x 1 root root  895 Dec 25  2021 41-armbian-config
-rwxr-xr-x 1 root root  554 Dec 25  2021 98-armbian-autoreboot-warn

2024-03-26: camera - I updated ~/printer_data/config/crowsnest.conf and changed camera settings from

resolution: 640x480                     # widthxheight format
max_fps: 15                             # If Hardware Supports this it will be forced, otherwise ignored/coerced.

to

resolution: 1280x960                    # see if this works
max_fps: 30

and restarted crowsnest. I have to test while printing to see if it is better or worse now.

2024-03-26: camera - the crowsnest log file (~/printer_data/logs/crowsnest.log) shows this about my camera

03/14/24 21:23:06] crowsnest: INFO: Detect available Devices
[03/14/24 21:23:06] crowsnest: INFO: Found 1 total available Device(s)
[03/14/24 21:23:06] crowsnest: INFO: Found 1 available camera(s)
[03/14/24 21:23:06] crowsnest: /dev/v4l/by-id/usb-HD_WebCam_C270_HD_WebCam_C270_SN0001-video-index0 -> /dev/video4
[03/14/24 21:23:07] crowsnest: Supported Formats:
[03/14/24 21:23:07] crowsnest:          [0]: 'MJPG' (Motion-JPEG, compressed)
[03/14/24 21:23:07] crowsnest:          Size: Discrete 1280x960
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:07] crowsnest:          Size: Discrete 1280x720
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.040s (25.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:07] crowsnest:          Size: Discrete 1024x768
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:07] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:08] crowsnest:          Size: Discrete 800x600
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.040s (25.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:08] crowsnest:          Size: Discrete 640x480
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.040s (25.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:08] crowsnest:          Size: Discrete 640x360
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:08] crowsnest:          Size: Discrete 320x240
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.040s (25.000 fps)
[03/14/24 21:23:08] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:09] crowsnest:          Size: Discrete 1280x960
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.200s (5.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.033s (30.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.050s (20.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.067s (15.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.100s (10.000 fps)
[03/14/24 21:23:09] crowsnest:          Interval: Discrete 0.200s (5.000 fps)

(there is more, but that is YUYV, not MJPG)

[03/14/24 21:23:11] crowsnest: Supported Controls:
[03/14/24 21:23:11] crowsnest:          
[03/14/24 21:23:11] crowsnest:          User Controls
[03/14/24 21:23:11] crowsnest:          
[03/14/24 21:23:11] crowsnest:          brightness 0x00980900 (int) : min=-64 max=64 step=1 default=0 value=0
[03/14/24 21:23:11] crowsnest:          contrast 0x00980901 (int) : min=0 max=64 step=1 default=32 value=32
[03/14/24 21:23:11] crowsnest:          saturation 0x00980902 (int) : min=0 max=128 step=1 default=68 value=68
[03/14/24 21:23:11] crowsnest:          hue 0x00980903 (int) : min=-40 max=40 step=1 default=0 value=0
[03/14/24 21:23:11] crowsnest:          white_balance_automatic 0x0098090c (bool) : default=1 value=1
[03/14/24 21:23:11] crowsnest:          red_balance 0x0098090e (int) : min=0 max=0 step=0 default=0 value=0 flags=inactive
[03/14/24 21:23:11] crowsnest:          blue_balance 0x0098090f (int) : min=0 max=0 step=0 default=0 value=0 flags=inactive
[03/14/24 21:23:11] crowsnest:          gamma 0x00980910 (int) : min=72 max=500 step=1 default=100 value=100
[03/14/24 21:23:11] crowsnest:          gain 0x00980913 (int) : min=0 max=100 step=1 default=0 value=0
[03/14/24 21:23:11] crowsnest:          power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
[03/14/24 21:23:11] crowsnest:          0: Disabled
[03/14/24 21:23:11] crowsnest:          1: 50 Hz
[03/14/24 21:23:11] crowsnest:          2: 60 Hz
[03/14/24 21:23:11] crowsnest:          hue_automatic 0x00980919 (bool) : default=0 value=0
[03/14/24 21:23:12] crowsnest:          white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
[03/14/24 21:23:12] crowsnest:          sharpness 0x0098091b (int) : min=0 max=6 step=1 default=4 value=4
[03/14/24 21:23:12] crowsnest:          backlight_compensation 0x0098091c (int) : min=0 max=8 step=1 default=2 value=2
[03/14/24 21:23:12] crowsnest:          
[03/14/24 21:23:12] crowsnest:          Camera Controls
[03/14/24 21:23:12] crowsnest:          
[03/14/24 21:23:12] crowsnest:          auto_exposure 0x009a0901 (menu) : min=0 max=3 default=3 value=3
[03/14/24 21:23:12] crowsnest:          1: Manual Mode
[03/14/24 21:23:12] crowsnest:          3: Aperture Priority Mode
[03/14/24 21:23:12] crowsnest:          exposure_time_absolute 0x009a0902 (int) : min=1 max=5000 step=1 default=157 value=157 flags=inactive
[03/14/24 21:23:12] crowsnest:          exposure_dynamic_framerate 0x009a0903 (bool) : default=0 value=1
[03/14/24 21:23:12] crowsnest:          pan_absolute 0x009a0908 (int) : min=-36000 max=36000 step=3600 default=0 value=0
[03/14/24 21:23:12] crowsnest:          tilt_absolute 0x009a0909 (int) : min=-36000 max=36000 step=3600 default=0 value=0
[03/14/24 21:23:12] crowsnest:          zoom_absolute 0x009a090d (int) : min=0 max=9 step=1 default=0 value=0
[03/14/24 21:23:12] crowsnest:          zoom_continuous 0x009a090f (int) : min=0 max=0 step=0 default=0 value=0 flags=write-only
[03/14/24 21:23:12] crowsnest:          pan_speed 0x009a0920 (int) : min=0 max=0 step=0 default=0 value=0
[03/14/24 21:23:12] crowsnest:          tilt_speed 0x009a0921 (int) : min=0 max=0 step=0 default=0 value=0
[03/14/24 21:23:12] crowsnest: INFO: No usable CSI Devices found.

2024-03-26: web server - nginx runs both fluidd and mainsail

mks@mkspi:~$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2024-03-14 21:23:00 CET; 1 weeks 5 days ago
     Docs: man:nginx(8)
  Process: 1364 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 1429 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 1457 (nginx)
    Tasks: 5 (limit: 990)
   Memory: 15.8M
   CGroup: /system.slice/nginx.service
           ├─1457 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ├─1458 nginx: worker process
           ├─1459 nginx: worker process
           ├─1461 nginx: worker process
           └─1466 nginx: worker process

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

available sites

mks@mkspi:~$ ll -F /etc/nginx/sites-available/
total 12
-rw-r--r-- 1 root root 2412 Nov 22  2022 default
-rw-r--r-- 1 root root 2709 Aug 29  2023 fluidd
-rw-r--r-- 1 root root 2785 Aug 29  2023 mainsail

enabled sites

mks@mkspi:~$ ll /etc/nginx/sites-enabled/
total 0
lrwxrwxrwx 1 root root 33 Feb 26  2023 fluidd -> /etc/nginx/sites-available/fluidd
lrwxrwxrwx 1 root root 35 Jul 18  2023 mainsail -> /etc/nginx/sites-available/mainsail

2024-03-17: camera - printed Logitech C270 adapter for SV07 webcam mount and mounted the camera. Time will tell if having a front mounted camera is a good thing or not.

2024-03-14: camera - now I only have to print a bracket to mount the camera properly.

2024-03-14: I plugged the web camera into a free usb port on the controller. It shows up in lsusb output

mks@mkspi:~$ lsusb -d 046d:0825
Bus 004 Device 002: ID 046d:0825 Logitech, Inc. Webcam C270

and there are some video devices

mks@mkspi:~$ ls -l /dev/video*
crw-rw---- 1 root video 81, 0 Mar  2 18:17 /dev/video0
crw-rw---- 1 root video 81, 1 Mar  2 18:17 /dev/video1
crw-rw---- 1 root video 81, 2 Mar  2 18:17 /dev/video2
crw-rw---- 1 root video 81, 3 Mar  2 18:17 /dev/video3
crw-rw---- 1 root video 81, 4 Mar 14 20:34 /dev/video4
crw-rw---- 1 root video 81, 5 Mar 14 20:34 /dev/video5

and after I rebooted the controller (I had to do it from the KlipperScreen, couldn't figure out how to do it from mainsail or fluidd interface) the camera shows up in fluidd. For some reason, it shows 0 (zero) fps in mainsail interface.

2024-03-14: I got a pick-up message and fetched the package with the web camera from pickup point Extra Trondheimsveien on my way home from work.

2024-03-10: I ordered a Logitech C270 web camera to use as a camera for the printer for NOK 228.- plus NOK 79.- in shipping. NOK 308.- in total.

2024-03-03: I printed SOVOL SV07 PLUS Extruder Cable Bracket at 0.2 mm layer height and mounted it. The extruder cable now doesn't drag along the bed anymore. If the X axis is near the top of the printer, the cable and bracket might come into conflict with the top beam of the frame. We shall see.

2024-03-03: Slicers - a blog entry about OrcaSlicer,

2024-03-02: PrusaSlicer - managed to get a working profile for the SV07 Plus by configuring it from scratch and adding this Start G-code

M190 S{first_layer_bed_temperature[0]} ; Setting bed temperature
M109 S{first_layer_temperature[0]} ; Setting hot-end temperature
START_PRINT ; Running macro from klipper

but it oozes a bit, I should move the hotend to a drip zone first. end G-code is just

END_PRINT

2024-03-02: and the firmware version of the controller (the one you see if you go config, system on the touch screen) is

mks@mkspi:~$ cat ~/.DebVersion
 Version: 1.0.8-07P

that's one less mystery.

2024-03-02: the controller (mkspi) is running

root@mkspi:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

and

root@mkspi:~# cat /etc/debian_version 
10.13

kernel

root@mkspi:~# uname -a
Linux mkspi 5.16.20-rockchip64 #trunk SMP PREEMPT Fri Aug 4 13:50:11 CST 2023 aarch64 GNU/Linux

armbian

root@mkspi:~# cat /etc/armbian-release
# PLEASE DO NOT EDIT THIS FILE
BOARD=mkspi
BOARD_NAME="mkspi"
BOARDFAMILY=rockchip64
BUILD_REPOSITORY_URL=git@github.com:armbian/build
BUILD_REPOSITORY_COMMIT=ed589b248-dirty
VERSION=22.05.0-trunk
LINUXFAMILY=rockchip64
ARCH=arm64
IMAGE_TYPE=user-built
BOARD_TYPE=conf
INITRD_ARCH=arm64
KERNEL_IMAGE_TYPE=Image
BRANCH=edge

os-release

root@mkspi:~# cat /etc/os-release 
PRETTY_NAME="Armbian 22.05.0-trunk Buster"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

2024-02-25: I unpacked the box and started assembling the printer, see the assembly page.

2024-02-25: I created this page.

2024-02-21: This afternoon, I got a notice to pick up my package, and did so later in the evening at PIB Extra Trondheimsveien. The box was large and weighed about 14 kg. I had to pay NOK 901.- in MVA (value added tax) and NOK 270.- in handling fee, a total of NOK 1171.-

2024-02-13: the package was shipped.

2024-02-11: I ordered a Sovol SV07 Plus from the Sovol EU store. Price was USD 329.-, shipping USD 15.- USD 344.- in total. NOK 3810.95 when converted by PayPal.