Forked from: https://github.com/Z9V5PRO/Z9V5Pro-MK4-Klipper In addition, found this: https://github.com/Nathan22211/Z9V5-mixing-klipper
The covers are hold by 4 screws each:
- Top contains stepper motors of extruders and connectors to printing head:
- Bottom contains the main board:
- Zoom in:
The board is ZM3E4 V2.1
:
- Schematics and parts placement were found in Zonestar3D GitHub
- In schematics, it is
STM32F103VCT6
, but on board, it is cloneAPM32 F103VET6
by Geehy
- Obtain Klipper by clonning it: klipper3D
- Configure by going to cloned folder in terminal and run
in menu choose:
make menuconfig
- MCU Architecture - STM32
- Processor model - STM32F103
- Bootloader offset - 20KiB bootloader
- Communication interface (USB(on PA11/PA12))
and press
Q
andY
to save and exit
- Build FW file by running:
it should complete without errors (otherwise install dependencies till it works). You will get
make
klipper.bin
in./out/
folder. - Prepairing uSD-Card:
- Copy the
klipper.bin
to root of uSD-Card and rename it tofirmware.bin
- remove
old_fw.bin
if exists - Unmount (eject) uSD-Card to cause
fsync
- Copy the
- Flashing printer:
- Power off power supply (PSU) of the printer
- Insert uSD-Card
- Power on PSU
- Press and hold for few sec small power button on bottom main board cover (the Zonestar logo might blink few times but will stay dark after it).
In my case, the printer wasn't found and power cycle didn't help. Looking on Linux logs using journalctl -f
showed that it had USB detection errors and it was solved by eliminating USB-hub and plugging-in printer directly into PC:
Errors via hub:
Nov 02 02:44:20 pc-name kernel: usb 1-10.4: new low-speed USB device number 71 using xhci_hcd
Nov 02 02:44:20 pc-name kernel: usb 1-10.4: device descriptor read/64, error -32
Nov 02 02:44:20 pc-name kernel: usb 1-10.4: device descriptor read/64, error -32
Nov 02 02:44:21 pc-name kernel: usb 1-10.4: new low-speed USB device number 72 using xhci_hcd
Nov 02 02:44:21 pc-name kernel: usb 1-10.4: device descriptor read/64, error -32
Nov 02 02:44:21 pc-name kernel: usb 1-10.4: device descriptor read/64, error -32
Nov 02 02:44:21 pc-name kernel: usb 1-10-port4: attempt power cycle
Direct connection:
Nov 02 02:45:18 pc-name kernel: usb 1-8: new full-speed USB device number 77 using xhci_hcd
Nov 02 02:45:18 pc-name kernel: usb 1-8: New USB device found, idVendor=1d50, idProduct=614e, bcdDevice= 1.00
Nov 02 02:45:18 pc-name kernel: usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 02 02:45:18 pc-name kernel: usb 1-8: Product: stm32f103xe
Nov 02 02:45:18 pc-name kernel: usb 1-8: Manufacturer: Klipper
Nov 02 02:45:18 pc-name kernel: usb 1-8: SerialNumber: 28001100170000464C59504E
Nov 02 02:45:18 pc-name mtp-probe[732041]: checking bus 1, device 77: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov 02 02:45:18 pc-name kernel: cdc_acm 1-8:1.0: ttyACM0: USB ACM device
Nov 02 02:45:18 pc-name mtp-probe[732041]: bus: 1, device: 77 was not an MTP device
Nov 02 02:45:18 pc-name snapd[2187845]: hotplug.go:200: hotplug device add event ignored, enable experimental.hotplug
Nov 02 02:45:18 pc-name mtp-probe[732048]: checking bus 1, device 77: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
Nov 02 02:45:18 pc-name mtp-probe[732048]: bus: 1, device: 77 was not an MTP device
- Z-sensor wasn't mapped so added:
[probe] pin: !PB13 ...
- Fixed bed dimensions
- due to wiring Y axis getting stuck into motor connector and so Y movement limited by 300mm (bed is 310mm)
- screw locations also fixed and added delta of z-sensor position (for some reason it doesn't get compensated automatically)
- Calibrated
rotation_distance
for all 4 extruders
To calibrate both PID loops of heaters used:
PID_CALIBRATE HEATER=extruder TARGET=200
SAVE_CONFIG
restart
PID_CALIBRATE HEATER=heater_bed TARGET=60
SAVE_CONFIG
restart
Created initial bed mesh before fixing anything using GUI HEIGHTMAP
clicking CALIBRATE
and then running SAVE_CONFIG
in console
result:
After that used
SCREWS_TILT_CALCULATE
to adjust screws and bring all corner to the same plane, and running mesh again:
Interestingly, I added plastic rectangle below PEI flexible top and the mesh didn't change, then added metallic ruler and the sensor was triggered even before going down. It means, that the sensor measures metal plate/magnetic sticker and not real bed position. Hopefully, switching to steel PEI plate will solve the issue. Another option is to switch to BLTouch sensor that uses mechanical contact instead of inductive proximity sensor.
Repeating experiment from this video: https://www.youtube.com/watch?v=0xRtypDjNvI
F [mm/min] | E300mm [gr] |
---|---|
100 | 0.82 |
200 | 0.81 |
250 | 0.79 |
300 | 0.74 |
300 | 0.71 |
400 | 0.63 |
500 | 0.5 |
So it seems that printing above F200
starts extrude less material.
The 200mm/min
of 1.75mm
filament is equal 8.0176 mm^3/s
200/60*(1.75/2)^2*pi = 8.0176 mm^3/s
Later tried to increase tension between gears and filament using adjustment screw and the results:
F [mm/min] | E300mm [gr] |
---|---|
300 | 0.79 |
400 | 0.70 |
So 300mm/min
seems ok:
300/60*(1.75/2)^2*pi = 12.026 mm^3/s