Finally bought a 3D printer(with benefits)

I’ve been thinking of buying/building a 3D printer since forever, and now I bought one that also includes laser engraving and CNC functions, the CP-01, but had some trouble getting everything to work.

So, I've wanted to build/buy a 3D printer for a long time, but never had the courage or disposition. My initial plan was to build one, because I already have some spare parts, but a good friend, much more experienced than myself convinced me to buy my first one ready to avoid many problems, and not having a 3d printer to fix them. And so I did, but instead of picking his recommendation, I tried to fulfill 3 hobbies at once and bought a CP-01, which has interchangeable heads for 3D printing, CNC milling and laser engraving(planning to mill PCB boards, laser cut/engrave camera filters for shapped bokeh, and lots of other stuff).

To my unfortunate surprise, I found out that CURA and prusa-slicer didn't have presets for this specific printer, which induced a little bit of despair into 3d printing beginner me. Turns out it's not hard, but there are a few tricks, which I'll cover here.

I'm not gonna talk extensively about what comes in the package, etc, I want to get to the problems I faced and solutions quickly.

So, CURA and prusa don't have presets for the printer, bummer… BUT, The SD card comes with a version of CURA to slice your stuff, so the obvious thing to do is to fire up this version of CURA, copy everything to the newer versions, and live happily ever after, which I suppose is what this guy did, but there's still a gotcha.

You see, the way he talks about the fan speeds, it looks important, and I did remember to set that in prusa, however I still had problems with my prints(maybe it would work in CURA, but I wanted to use prusa)... The extruder simply stopped at layer 21, and wouldn't start again:

These were supposed to be benchies, but the stopped at layer 21 exactly

And so I started comparing the Gcodes that came with the SD card(They seemed to work, despite my other, more common problems) with the Gcodes I generated in prusa, using some python scripts, or sometimes manually(Turns out Gcode is pretty easy to read, and Gcode generated by CURA and prusa are commented, so layer changes, for example, are very easy to find and read). The most suspicious part must be when switching to layer 21, which is this snippet in my 3dBenchy:

G1 X114.612 Y94.534 E235.95631
G1 X115.620 Y95.489 E236.02317
G1 X117.475 Y97.344 E236.14959
M106 S30.6
;LAYER_CHANGE
;Z:6.65
;HEIGHT:0.3
G1 Z6.650 F7800.000
G1 E230.14959 F4800.000
G92 E0
G1 X72.287 Y101.409 F7800.000
G1 E6.00000 F4800.000
;TYPE:Perimeter
;WIDTH:0.45
G1 F3600.000
G1 X72.865 Y101.787 E6.03323
G1 X73.218 Y101.921 E6.05135
G1 X73.565 Y101.988 E6.06839
G1 X73.919 Y101.996 E6.08539

feffwefI looked into various possibilities here, for example, I initially tought that the extruder coordinates going higher before zeroing again could trigger some kind of overflow on the printer and crash it(I made some plots comparing Z coordinates from my gcode and the sdcard, and mine reched higher values), but wit the plots it was visible that the print reached such high values before crashing and everything went fine, so it must be something else. So I turned my attention to M106 S30.6, which according to RepRap Gcode documentation is the command for setting fan speed. And 30.6 is quite low. I plotted the fan speeds as a function of the layer height with this simple python code:

#!/usr/bin/python3

import sys
import matplotlib.pyplot as plt

f = open(sys.argv[1], "r", encoding="ascii", errors="surrogateescape")
fan = []
alts = []
altura = 0
lines = f.readlines()
for l in lines:
    if ("G1" in l):
        coords = l[3:]
        if ("Z" in coords):
            pos = float(l[l.find("Z") + 1:l.find(" ", l.find("Z"))])
            altura = pos
    if ("M106" in l):
        if ("S" in l):
            try:
                pos = float(l[l.find("S") + 1:l.find(" ", l.find("S"))])
                fan += [pos]
                alts += [altura]
            except:
                pass

dpi = 70
plt.figure(figsize=(1280/dpi,720/dpi), dpi=dpi)
plt.plot(alts,fan)
plt.plot([6.35, 6.35], [0,255], 'r-')
plt.text(6.35, 255, "Problem happens here")
plt.legend(["Fan speed"])
plt.xlabel("Height")
plt.ylabel("Fan speed")
plt.title("")
plt.savefig('benchy_bad.svg')
plt.savefig('benchy_bad.png')
plt.show()

And got this plot:

Bingo, at layer 21, it's the first time the fan speed dropped so low. If I had to guess, the fan speed instruction is probably also used for other stuff with the CNC milling and laser cutting heads, and low values probably turn off some vital supply voltage or something that also affects printing. Go figure. So, since prusa seems to like playing with fan speeds a lot, the codes I generated didn't work. As a solution, I adjusted the minimum fan speed in prusa to the lowest value reached before layer 21, since such values seemed to work well(I ended up using 60%).

After re-slicing, the resulting Gcode didn't have any values that low:

And sure enough, the print came out perfect!(at least for my standards):

A good benchy standing in front of countless failed prints

Some other pieces of advice I used to reach this result:

  • Don't trust bed temperatures. My prints didn't stick at all to the bed, I solved it by using a higher temperature on the bed(72 for the first layer, from there on, it doesn't really matter, I'm leaving it at 57 or something alike)
  • Speaking of bed temperatures, turn off eco mode to keep the bed heated, else the print might come loose, and it's ruined.
  • Youtube reviewers had already pointed this out, but the printer has some issues with layer cooling. To solve this, I used slower print speeds, lower nozzle temperatures(after first layer, for the first my temps are still very high, 211, but later I keep it at ~194), cranking the AC(I'm almost freezing during prints, a worthy sacrifice), and pointing fans at the printer. These last two are kinda unconventional, and I don't even know how useful they are, but hey, Benchy came out great using them, I'll keep using them(specially since I'm in Brazil, and it can be kinda hot here).

Anyway, I just wanted to write my experience with the printer somewhere. Maybe another one of the very few people that were odd enough to pick this printer are having the same problems and can find this, who knows. Otherwise, it will be a fun memory for me in the future, of my first 3d printer.

Leave a Reply

Your email address will not be published. Required fields are marked *