Getting orange pi 3 lts + klipper working with anycubic kobra 2 neo

Typically, you would home Z to this point and then do a Z_ENDSTOP_CALIBRATE to define your needed Z offset.

Thatā€™s not 100% true - in the beginning with the TriGorilla v3.0.6 they did use real TMC2208, I have several mobos of those. It seems to be the version with the black heatsinks as the one Iā€™m showing here.
But then they switched to using GC6609 at the v3.0.6 instead, seems like those ones are being used at the mobos which are using the silver heatsinks (instead of the black heatsinks).

Now with the v3.0.7 it might be that theyā€™re still using the GC6609 - dunno, I donā€™t have that one and canā€™t check on itā€¦

I find this quite intriguing. I now have both boards, but Iā€™ve only had a chance to examine the one with the black heatsinks. Iā€™ll take a look at the other one when I switch them out. Itā€™s not that I doubt your findings; Iā€™m just curious. Iā€™ve been planning to use an SKR3 to replace it.

Whatā€™s particularly interesting is that Iā€™ve encountered a strange resonance or surface artifact issue that doesnā€™t occur with the silver heatsink board. I initially thought it might be some unique problem with the other board, but now Iā€™m considering if they could be connected in some way. Iā€™m not a big believer in coincidences, but itā€™s a possibility.

Have you already explored the UART mod? Iā€™ve located the pins on the board, the second from the far right in the empty resistor spot on each chip when the board text is right side up.

One thing I didnā€™t quite grasp from the original post i read was how the old signal that ties all the pins together was cut. Iā€™m simply curious about that aspect. At this point, my curiosity has gotten the better of me, and Iā€™ve decided to purchase some things instead of engineering them to save time.

Not really.
During the bed mesh calibration nozzle moves to this point and probes it to find a z offser automatically. It noves the nozzle exactly at the center and then bumps into it kinda like into an endstop.

As this thread is about the Kobra 2 Neo anyway and you were referring to the mobo of the Neo/Go, letā€™s talk about this in private if you want to not clutter up this thread even moreā€¦

The stock Marlin does have ABL, as well as that circle button is used to set the z offset automatically.

Itā€™s not used as a Z endstop, the ABL sensor is used for that

The cheaper (v1) BTT USB version has been working good for me and was fairly easy even on a non-standard setup (no r-pi, Deepin Linux, x86)

Model: S2DW v1.0. They are around $13 shipped in US.

In response to your post about getting a failed unit and trying to make one.

IMO this is a misunderstanding how homing and meshing works:

  1. Bed mesh is not related to the z-offset
  2. The ā€œcircle buttonā€ is providing a ā€œstable z referenceā€ that ideally never changes
  3. For meshing purposes this could be used, leveraging Klipperā€™s zero_reference_position
  4. Neither Klipper nor Marlin can magically know the offset from your nozzle to the bed after homing to this circle button
  5. The distance that is relevant after touching down to this button needs to be determined and set as z_offset

I may have gotten my terms wrong:
The button is an ā€œoffset measurement switchā€, and is used to detect when the nozzle touches the button as part of the stock abl process.
It assumes the button is installed perfectly level with the bed.

https://wiki.anycubic.com/en/fdm-3d-printer/kobra-2/how-to-maintain-the-offse-measurement-switch

I think this is the part in the original code - Kobra2_Neo/Marlin/src/lcd/menu/menu_probe_offset.cpp at 496e6bcfe0bef7d885ddc30d41c333331dc5da61 Ā· ANYCUBIC-3D/Kobra2_Neo Ā· GitHub

This is highly unlikely, but of course you could adjust the button position in a way that its trigger point is absolutely level with the bed but this sounds like no fun at all.

Because rarely such switch can be adjusted in the needed precision (relative to the bedā€™s surface) the way commonly used in 3D printer is to have it slightly lower (to avoid crashes with the nozzle) and then calibrate the actual z-offset to the bed within the software.

Generally this concept is well known in the CNC world, e.g. What is a Z Probe & How do I Use it? - SainSmart Resource Center and always needs proper calibration

Why would you ever get a crash with the nozzle, youā€™re not going to be approaching the button from the side?

And Iā€™m just going by what all the documentation says about putting it exactly level with the bed.
That may not be the best way to do it, but thatā€™s how anycubic says to set it up.

The link you sent was for the z probe, and there any cubic uses an induction zprobe which is different than the button weā€™ve been talking about.

I had a problem with this sensor in K2N and I had to position it manually. It must be set to the table level as in this guide:

Anycubic exchanged a printer for a new and a few other because of the factory -installed sensor in the first batch of printers sold.
After setting the sensor level, in Marlin you need to set programmatically set on the X and Y axes so that the nozzle goes exactly into the middle of the sensor, i.e. the eye on it. Otherwise, Z-offfet at Auto Level will not be properly set.

@AJolly and @Sineos Iā€™ll try to clarify some things about the two different parts z-offset switch and the inductive probe here.

  1. The z-offset switch (that round silver button at the back of the bed) is being pushed down by the nozzle during the calibration procedure. When being pushed down ~2mm, it closes a contact.
    Thatā€™s what AC then uses as a reference for calculating the z-offset (so itā€™s not 100% the same like at a CNC where the drillbit touches the metal contact of that ā€˜sensorā€™ which is rigid and an electric circuit will be closed due to the metal drillbit touching the contact - at least thatā€™s how it works at my CNCā€¦).
    This calculated z-offset value can change, e.g. when rests of filament are still stuck at the nozzle after wiping it across that silicone block (which would have a negative effect of course), when the position of the nozzleā€™s tip changed due to swapping out parts etc (so one should re-calibrate in that case as well).
    The top surface of that button should be the same height as the surface of the PEI plate and therefore it has to be checked and adjusted if one uses e.g. a different PEI plate which might be thicker or thinner. If the surface of that button switch is too low in relation to the PEI plateā€™s surface, itā€™ll drive the nozzle into the bed when starting a print as the z-offset wonā€™t be correct. So here itā€™s not about adjusting the button in the way that itā€™s trigger point (= when the switch closes the contact) is at the same height level as the PEI plateā€™s surface.
    However, besides that, one still has to keep an eye on the first layer as one might (most likely) still has to finetune the z-offset and dial it in on the fly. Unfortunately (due to the marketing and a lack of knowledge at the userā€™s side) many new users arenā€™t aware of this and face the problem that the z-offset doesnā€™t fit and the nozzle is either too far away or is being driven into the plateā€¦
    This one only comes into account for the z-offset = when printing the initial layer, it doesnā€™t have any effect on neither the bedmesh probing nor the homing.

  2. The inductive probe (that part with the round yellow-orange-ish tip) at the head is the one which is being used for the ABL and which acts as a virtual endstop as well, as the K2Neo (as well as e.g. the K2Pro/Plus/Max) doesnā€™t have a physical Z minimum limit switch anymore.
    This one has to be leveled in relation to the nozzleā€™s tip as well, because if the tip of the probe is too far up, then it can happen that it doesnā€™t detect the steel PEI plate and the nozzle will be driven into the plate - both during homing and when trying to start an ABL bedmesh measurement sequence.
    Usually itā€™s position when coming from the factory is ok, but one still should keep an eye on it, especially after working at the hotend (e.g. changing from the proprietary stock nozzle&heatbreak setup to a Volcano one).
    So this one comes into account when probing for the bedmesh and when homing (as it acts as a virtual z-endstop) as it detects the metal in the PEI plate, but it doesnā€™t affect the z-offset.

Thanks for the feedback.
Essentially the same as stated previously ā†’ See Getting orange pi 3 lts + klipper working with anycubic kobra 2 neo - #189 by Sineos :

  • A (hopefully) stable Z-reference
  • Fine tuning needs to be done via z-offset

In fact, there is simply no other way it can work unless you could secure that your trigger point is 100% level with the bed and even then this would NOT take into account factors like thermal expansion, e.g. heated bed vs cold bed, heated chambers etc.

WRT to your point 2, again the zero_reference_position is noteworthy as this is unique to Klipper.

Thanks. Yes, itā€™s correct what youā€™re saying - I just thought it might be helpful to describe (and differenciate between) those two hardware parts at this point as it felt like there might be some sort of misunderstanding somewhere at someoneā€™s end (and also for users who might come across this post in the future)ā€¦ :wink:

1 Like

I donā€™t know if it will help, but in octoprint there is a plugin for level leveling and it works with K2N in Marlin.

Octoprint just sends a connamd for printer to calibrate and then gives you the values of the points that was probed. All the probe logic is still in the marlin firmware. It looks like this:

send: calibrate_the_bed_mesh
wait: bed_calibration_finishes
read: eeprom:bed_mesh

This is all the simplified logic that plugin does. On the other hand you have klipper whoā€™s manually controlling each step of bed mesh calibration and you can change almost all of itā€™s logic. You can change things like z hop when moving between points, quantity of points, speed of moving nozzle up and down and etc. This gives you much more possibilities than the marlin did. For the same reason you cannot just make the printer calibrate the z offset in one click. Octoprint can do that because he just tells the printer ā€œgo calibrate yourselfā€ and marlin just does all the hard stuff. The klipper tells printer ā€œmove to x10 y10, move nozzle down, wait untill the sensor has found the bed, stop moving nozzle, write down current z positionā€¦ā€ and etc.

I have a question.
I made an auto level on the original software and the optimal setting is for Z -Offse -2.16.
Can this value be used in the Klipper?
If so, where should I enter it?
Will the printer use this value work properly?
If I write the X and Y settings to the table level sensor, can I use them?
If so, where to enter them so that the Klipper uses these values?

You can use it as a start value.

Depends on if you use endstop switches or a probe.

It is very much recommended to do a calibrate to a new Z-offset.

I already have working configs that has implementations for all of it. All youā€™ll need to do is set the z offset in the very end of printer.cfg file. If your layers arenā€™t perfect you should babystep it. But i recommend you to find the z offset manually because the homing position of my configs and marlinā€™s homing position are not the same and because the z offset is relevant to z0 position it will require diffrent calibrating approach. You should do the bed mesh first and then babystep your z offset using the sheet of paper.