wabbitguy / Kobra_Plus

Anycubic Kobra PLUS 3D Printer Firmware
GNU General Public License v3.0
18 stars 3 forks source link

the corner is sticking out #6

Closed edhausy closed 6 months ago

edhausy commented 6 months ago

Hello dear Mel, I am using your firmware on my Kobra Plus and I am very happy with it, especially with the 7x7 point auto level, also with the finely adjusted jerk and acceleration, so the printer runs very smoothly and without vibrations. This makes the prints very nice. But there is one problem, this problem is not caused by the firmware, but it could perhaps be solved with it. I often print parts with sharp corners and edges, I have to reduce the print speed very much, otherwise I get corners that are not straight, I hope you understand what I mean, the tip of the corner is practically sticking out. According to my observations, this happens when the print speed and the jerk are too far apart. If I bring the print speed close to the jerk, the printing time increases by at least twice as much. If the jerk value is set higher, the appearance of the prints will logically suffer. If I only had the option of activating Linear Advance for these prints and accepting the 30% longer printing time, I would still prefer it to double the printing time. Or am I not understanding something correctly about Linear Advance? Best regards

wabbitguy commented 6 months ago

@edhausy Blobby corners are almost always extrusion issues, not really jerk/accel. Linear advance would be wonderful, except that the stock motherboards have a resistor in the wrong place for UART control of the extruder stepper. It will control both the X axis and E0; extruder at the same time.

Secondly and more important, linear advance needs a really good stepper driver and preferably a TMC2209. For whatever reason, I'm guessing saving some money, Anycubic decided to use cloned TMC2208 for the extruder driver. If you do any Google searching at all for linear advance and 2208's, you'll find they typically fail quite nicely or don't do much of anything in spite of endless amounts of tweaking the K900 value.

Any way, the stock jerk and acceleration are usually good.

I'd suggest starting with making sure that when you request 100mm of filament, that's what the extruder is actually putting out. The easiest way to do that is with a USB cable and PRONTERFACE. When connected to the printer, issue M503 command. Look for the M92 line:

echo:; Steps per unit: echo: M92 X80.00 Y80.00 Z400.00 E405.00

We need the E405.00 value for our calculation.

Take the Bowden tube out of the hot end, send an M302 P1 (this is disable having to heat up the hot end). Then in Pronterface select 100mm extrusion. Make sure the filament is flush with the end of the Bowden tube, extrude 100mm, measure it. I have no doubt with a stock setup it won't be 100mm.

Math: ( 100 / (length of filament you got) ) * 405 = NEW STEPS for Extruder

M92 E### (where the number is from the above formula). The M500 to save it. Repeat M503 to make sure it was saved.

As an example assume I asked for 100mm, I got 95mm: ( 100 / 95 ) = 1.05 1.05 * 405 = 426.32 M92 E426.32 M500 M503

At this point, when you ask for 100mm of filament, you get it.

Next, we need to know what the nozzle does. So print a 50 x 50 x 30mm cube in VASE mode (single wall). Measure the thickness of all four the walls and average it out. A digital micrometer works better for this than standard digital calipers. Now go into your SLICER program and see what you've set the default wall width to be.

So let's say our default extrusion width is 0.45mm. But when we measured our print we averaged out at 0.471.

0.45 / 0.471 = 0.95 (this is our new extrusion multiplier).

If you use PRUSA Slicer, in Filament Settings-->Filament, you set the Extrusion Multiplier to: 0.95.

Now you have a fully calibrated hot end for the filament you're using (PLA for example). If you use other filaments, it pays to test them for the extrusion multiplier as well (you don't need to redo the 100mm length; unless it's TPU).

Lastly we can make two adjustments in a Slicer to help with corners. Inner perimeters can be faster, but on the outer wall, set the speed to 30-40mm/s. The second adjustment would be pressure advance (I think they call it coasting in CURA; but since I've only used CURA for about 15 minutes that's just what I sort of remember). In PRUSA Slicer Print Settings-->Speed (expert mode) look at the bottom for Pressure Equalizer. Set it to 3 for slope positive and negative. That's a good starting point.

I'm going to close this now, but you'll still be able to reply here.

Mel

edhausy commented 6 months ago

Thank you for your detailed answer. I would like to apologize for the translator, of course I don't mean the acceleration but the speed. If I print at a speed that is not far from the speed of the jerk, then the extruder doesn't have to do much on the flow veining and so I don't have any over-extrusion in the corners. I think that was also the idea behind the LA, to avoid over-extrusion when the nozzle slows down a lot and the filament is still trailing, just before making a retract, please do not confuse it with the layer change or completion of a contour ( coasting). I have already experienced this with the TMC2208 driver, which is a real shame. I did everything with the extruder calibration when I converted my printer to Direct Drive. It runs with a very low under-extrusion. The E-steps for the extruder motor are E97.00. The wall thickness of 0.397 is also in the under-extrusion range. The target value is 0.4.

edhausy commented 6 months ago

WhatsApp Bild 2023-11-14 um 10 23 27_74ad40c4 Jerk 5mm/s, print speed 40mm/s

edhausy commented 6 months ago

WhatsApp Bild 2024-01-03 um 23 24 50_712a45a8 Jerk 20mm/s, print speed 30mm/s

wabbitguy commented 6 months ago

Thank you for your detailed answer. I would like to apologize for the translator, of course I don't mean the acceleration but the speed. If I print at a speed that is not far from the speed of the jerk, then the extruder doesn't have to do much on the flow veining and so I don't have any over-extrusion in the corners. I think that was also the idea behind the LA, to avoid over-extrusion when the nozzle slows down a lot and the filament is still trailing, just before making a retract, please do not confuse it with the layer change or completion of a contour ( coasting). I have already experienced this with the TMC2208 driver, which is a real shame. I did everything with the extruder calibration when I converted my printer to Direct Drive. It runs with a very low under-extrusion. The E-steps for the extruder motor are E97.00. The wall thickness of 0.397 is also in the under-extrusion range. The target value is 0.4.

@edhausy LA changes the speed, when it can which is not all the time (I have 3 Max's and 3 PLUS's that flatly refuse to do anything with linear advance mostly likely due to the clone chips and the fact that the 2208 never supported linear advance in the first place very well).

Ah, so you have a modded direct drive PLUS. That would explain the wildly different E steps from stock. I've always gotten better prints from the Bowden tube set up than any direct drive (true direct drives don't have any PTFE tubing between the extruder and the nozzle).

The wall thickness is perfectly acceptable and not under extruding at all.

Ultimately, all you have to do is change your SLICER setting for the outer wall speed to 30mm/s. Leave all the other speeds as they are. I wouldn't bother with the jerk changes (or the acceleration either) from stock. Not to mention lower speeds because of the added weight of the extruder stepper on the X axis (inertia).

And be aware that extruder with the low E steps is going to be difficult to deal with. The stock extruder takes 405 E steps to give 100mm. The direct drive takes 25% of that. So if you need a finer control direct drives don't have it because a few e-steps and it extrudes 4 times as much as the stock extruder used to. I.e roughly 25 e steps will give you 25mm of filament, whereas the stock extruder that takes over 100 E steps for the same 25mm of filament. But when dealing with extrusion that is in the .05mm range that's merely going to wiggle your stepper motor.

So like I suggested, change the outer layer to 30mm/s and carry on.

Mel

edhausy commented 6 months ago

I built the direct drive for my Kobra without PTFE tubes for certain reasons. At the moment it is just a test. I'm planning a completely new print head with a lightweight extruder that has a transmission. All the iron parts of the print head will be made of aluminum. So in the end it might even be lighter but in any case not heavier than the original Bowden. I can't say that the printer printed better in its original state than it does now. Those extreme corners on the white cube in the photo above were still from the Bowden era, which it does a bit better today with the same settings. On the black cube in the photo above you can see the vibration, this was already the case with Bowden, from about 10mm/s jerk and from 1000mm/s² acceleration these waves were noticeable

I like to find the optimum settings for each print. Large round parts can be printed well at faster speeds, often 80mm/s is not an issue at all. Some other parts can only handle 20mm/s at most. It depends on the geometry.

I would like to thank you very much. It's certainly not easy to put up with my ramblings. I wish you all the best for the New Year.

Can I contact you again about a problem in µVision? WhatsApp Bild 2024-01-04 um 15 03 10_ca738234

wabbitguy commented 6 months ago

@edhausy wow! That's quite a mount! I remember those single gear extruders as well. Gave them up myself when I found the dual geared ones. I found the dual gear give better extrusion control (higher e-steps) but more importantly allowed me to print TPU filament without issues. I print a lot of TPU so it's a must for me.

I use the Creality CR10S PRO dual gear extruders now...

If you'd like some custom firmware for your PLUS, I'd be willing to do that for you. You can either change the configuration.h and configuration_ADV.h to what you want, or tell me the changes you'd like from what's on my Github site now. I've done custom builds for a lot of other users so it's not an issue for me.

If you'd prefer to do your own builds, then KeilARM is the way to build it. Actually one of the only ways to build it. There's been a few builds with Marlin 2.0.x but when I've followed up with the developers on those there are still bug issues to be resolved.

The current Marlin source is roughly based off Marlin 2.0.8. However, a LOT of Marlin libraries were left out of the code because the motherboards don't have enough ram to support it. For example if you tried to increase the bed mesh from 7 x 7 to 8 x 8, you'd run out of memory and the printer would do nothing but crash.

If you need to install Keil and do your own programming, the steps to do that can be found here:

Install KEIL

Mel

edhausy commented 6 months ago

Hello Mel, I have these red crosses and don't know what to make of them, maybe you can help me here? They are everywhere where it starts with #if.
Best regards Ed

2024-01-06_01-33-59

wabbitguy commented 6 months ago

@edhausy that looks to me like you have the wrong support file loaded in the compiler and/or the wrong compiler version. None of us have those errors.

If you do an "About" this is the information that should be shown. I.e. you can't use any other versions of the compiler, you have to remove the c libraries and download and install the correct ones.

The link I sent previously outlines the exact steps to install the ARM compiler and it has photos for parts of the install as well. You can not do it any other way.

Windows 10 and later x64 2024-01-05 17-10-31

edhausy commented 6 months ago

I have reinstalled everything. Unfortunately without success. mvision about mvision packinst

wabbitguy commented 6 months ago

@edhausy I just reinstalled mine, and I see all those red "x" as well. I ignore them and compile any way. Works fine.

I suspect it's the way the compiler thinks it's checking the syntax of the line. So like I said, press the F7 key and compile. Any errors will show up in the output panel at the bottom and you can ignore the "x".

Windows 10 and later x64 2024-01-05 21-02-43

edhausy commented 6 months ago

Hi Mel, Thanks for the info, I will ignore that red "x".

I have also started to convert the printer to an Orbiter V2.0. I don't know if the Orbiter is the right choice, I'll just try it out.

At the moment, the factory iron plate is being converted from the mount to aluminum. The iron plate weighs 110 grams, the aluminum one will weigh about 50 grams. The original plastic fairing of the mount weighs 65 grams, the self-printed one 40 grams. There is one more part, a ring that sits around the bottom of the hotend, which in my opinion has no necessary function, another 10 grams less. I'm curious to see what the final weight will be. Thinking about aluminum screws...

In any case, I will take up your offer and adapt the firmware to the conversion. but it will take some time until it is ready.

Best regards Ed

wabbitguy commented 6 months ago

@edhausy the Orbiter 2.0 is interesting. It has to be run with stealth chop disabled, that will give it more torque but it will also increase the noise. Always trade offs with these direct drive extruders. I'd appreciate it if you let me know how it works out if you do convert the printer to it.

Bed slingers just don't have a lot of speed when it comes to the Y axis. I can only drive my Max to about 70mm/s for speed, at which point after a couple hours the stepper driver will heat up enough to cause a layer shift. The heat sinks on the stepper drivers are minimal compared to what's needed for higher speeds and the fan needs some work that cools the electronics as well.

I haven't bothered do much to the electronics or fans because if a print takes longer is actually doesn't matter to me. Printing speed is something I've never had much interest in. For me, quality is most important, then reliability of the printer and last the construction/ease of repair/maintaining the printer.

When it comes to speed, I print mostly functional objects and I need maximum strength. With fast printers I find they simply don't have the layer adhesion for strength that I'm looking for. So I have to slow them down so far they're only slightly faster than my old style bed slingers.

Have fun Ed!

Mel

edhausy commented 6 months ago

Hi Mel, here is a little update. Hopefully the Orbiter Extruder will arrive in about 10 days. Until then I'm busy designing the mount. Here is a picture of the first considerations. According to Cura, the plastic mount for the fans should only weigh 15 grams. Doesn't it look like a cobra? The aluminum mounting plate will, according to my calculation, only weigh 35 grams, all together 50 grams. The original plastic fan housing from Kobra weighs 65 grams. Then there is the iron mounting plate weighing 110 grams. I am thrilled.

Best regards Ed Orbiter 2 0 Direct Drive Mount

wabbitguy commented 6 months ago

@edhausy that looks awesome!!!!

The hot ends for my scratch built deltas (hot end. LEDs, 3 fans) weighs in a 155g. Hence they can move pretty quick. The arms are carbon fibre rods (hollow). So yeah, lighter is always better!

Looking forward to seeing more of your progress!

Delta_Trio

edhausy commented 6 months ago

Hello Mel, The Orbiter V2.0 arrived today and I installed it straight away. Now the firmware settings have to be made and I would like to ask you if you could adapt the firmware for me?

Best regards Ed IMG_20240122_172250 Marlin config 1 Marlin config 2

wabbitguy commented 6 months ago

@edhausy I could adjust the firmware and you could flash it to the printer but it wouldn't change anything. In order to have the changes take effect, you'd have to flash the firmware, connect up PRONTERFACE aka PRINTRUN, then do an M502, M500 and start from scratch with bed levelling like you just took the printer out of the box.

Why? The values you need to change actually exist in two places. They are, or can be, hard coded into the firmware, AND the first time the printer powers up those values are copied to protected EPROM memory in the printer.

When you make any changes (via the LCD or Printrun) those "new" values are stored in EPROM memory on the printers motherboard.

That EPROM memory holds a lot of the settings plus the level mesh so each time the printer powers up, it doesn't get anything from the firmware, instead it loads the last values used from the EPROM protected memory. Anything in firmware is ignored.

To make the job easier, I would suggest doing what the GCODE screen shot says to do. Connect up Pronterface/Printrun via USB. Once connected in the "send" panel, type in M503 and send it. This will get you lot of lines of information about your printer (and it also makes sure that the EPROM is read correctly).

Look in the returned information for something that looks like this:

echo:; Steps per unit:
echo: M92 X80.00 Y80.00 Z400.00 E405.00

M92 is the steps of the X, Y, Z and E (extruder) so you want to change the extruder to match your Orbiter. Type in the following lines, one at a time and send each one.

M92 E690 M500

Now send an M503 and look for that M92 line. It should now read E690. Congratulations you just updated the steps.

echo:; Steps per unit:
echo: M92 X80.00 Y80.00 Z400.00 E390.0

And that's how it's done. You send an update value, then M500 saves that value to EPROM protected memory, you then request all the values from EPROM with M503 and verify that what you sent is correct and saved.

The values that remain to be changed will be:

M201 E3000 M203 E120 M205 E5 M906 T0 E850

I suggest that BEFORE changing those values, look at the information returned by the M503 for those settings. You may find that they don't need to be updated since they might match the values already. And after each change remember to M500 to save it and then recall it all with M503 to verify.

The M900 and M207 values are not used on our printers. They are for linear advance (disabled on our printers) and for firmware retraction (we do this in Slicer).

According to your Orbiter, in Slicer you need to change the retraction value to 1.5mm so remember to update that in Slicer. Speed of retraction is a maximum of 120mm/s. You can put that in your slicer as well.

Mel

edhausy commented 6 months ago

I have already made these settings in the Pronterface before and wanted to carry out a test pressure. I noticed that the stepper became very hot within a few seconds (more than 100°C). I thought I had to adjust the settings under point 3.5. At the moment I am at a loss as to the temperature of the stepper. It gets very hot after a very short time. Marlin 3 5

wabbitguy commented 6 months ago

@edhausy there is no adjustment for the stepper drivers that allow you to set the current like the reference voltage suggests. On the Kobra's the current adjustment is all set in firmware so even if you changed the stepper driver pot on the motherboard, it would be ignored. Hence the reference voltage adjustment is useless.

If you read the specs on the Orbiter it's rated to 180C.

Orbiter Current

And I've found all these small steppers love to run hot.

Orbiter suggests that 65-75C is fine though. So if you want to lower the temp, simply cut back on the current to the stepper. With the M906 T0 E850 setting, you're only sending 850ma to the motor. So cut it back to M906 T0 E750, see how hot that gets. Or even M906 T0 E650.

Keep in mind when you lower the current you also provide less torque to the motor. So it's going to be a trade off. Experimentation will get you in the range for the current and if that current is too low there will be extrusion issues. You'd have to take that up with Orbiter themselves since they are the ones that made the extruder. Firmware will never fix poorly designed hardware. Sadly.

Mel BTW I looked it up and guys have been complaining about the Orbiter running hot for the last two years. Guys are running them at 500ma to compensate. M906 T0 E500.

edhausy commented 6 months ago

The seller did not sell me an original LDO engine. I have now limited it to 500mA and it has become over 100°C after 5 minutes of operation. You can see this on the video, when I put a drop of water on the motor, it boils and evaporates quickly. I have written to the seller and am waiting for his response.

https://github.com/wabbitguy/Kobra_Plus/assets/150701510/75c6a7a0-194f-4e68-9658-a5dea24a6292

wabbitguy commented 6 months ago

@edhausy WOW. That's hot. I remember a while back guys were putting heat sinks on the extruder stepper motors and at one point even adding cooling fans. My PRUSA MK3S gets hot (about 70C) but that's as hot as it gets. But a long time ago guys were having issues with the extruder motor heating up the filament gears too much and tried using heat sinks like the photo. It's never been a problem on my PRUSA so I've never done anything with it.

Hope you get it figured out!

pxl_20201025_144526404

fubar-life123 commented 4 months ago

This might be off topic but I just realized that Anycubic for some unfathomable reason went against standard practice and configured the endstops of these machines as NO which is not very safe... After swapping out the X/Y Endstops how would one configure marlin to invert the state of the endstops? Can it be done simply through a G-code command or do I have to modify configuration.h and flash the MCU? It's not a bad machine but man they made some baffling decisions...

wabbitguy commented 4 months ago

@edhausy you can't control the end stops with GCODE, those are define's in the firmware. So they have to be changed in the firmware and then flashed to the motherboard.

In configuration.h look at lines #680 for:

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.

Change those "true" to "false" in your new compilation.

And I agree 1000% with you about some of their decisions. From the selection of components, changing components halfway through a production run, or leaving out essential GCODE commands I'm just really glad they don't build aircraft.

I can safely say I'd never buy printers from a lot of companies now, AnyCubic is one of them. The last printer I bought was a QIDI X-PLUS 3. First time since my PRUSA I've owned a toaster, just put in the filament and it prints. Sure is different.