OX CNC With TinyG First Cuts Using ChiliPeppr & JSCut...

OX CNC With TinyG First Cuts Using ChiliPeppr & JSCut… I got some time to go back over to my buddys place today. This time we got all the switches working. I am still confused as to how exactly I am supposed to set up the Z homing and soft limits properly.

Also I need to figure out what kind of feed rates I need to set up in JSCut because the machine is moving (imo) at a snail’s pace. With that said, this isnt my machine, I was just helping a friend get going. I wired it and programmed it. I also set him up with a basic pipeline/ workflow using all Open Source tools.

He seems happy, but I told him he needs to learn how to tune the machine. Also, I’ll be back tomorrow to make a complete tutorial and show a normal person wanting to build one of these machines exactly what he or she needs to do.

Here is a good reference to Homing and Limits: https://github.com/synthetos/TinyG/wiki/Homing-and-Limits-Setup-and-Troubleshooting.
It provides additional references.
As you say, optimal speed setup for the Ox has many dependencies. I usually generate Gcode with F800 (800mm/min), then experiment with the CP Gcode widget Feedrate multiplier to find a most appropriate rate for my jjobs.

Thanks Carl…I did read that information on limits and homing, its pretty detailed.

The problem we had was when you home the Z ( set to Zmax) it works perfectly, the head moves to the top (away from the bed). However if you send a command to move the head (example g0 z20)after it’s already at home, it will crash the Z axis.

Using soft limit to control the overall travel of Z didn’t really help (at least the way I set it up (50mm) because when the Z is homed its (fully up) at the end of its physical travel. But the command G0 Z20 sends the head 20mm, but there is no where to go but crash.

Also, it seems the defined soft limits (50mm) changes based on the thickness of the material being cut because Zero on a 1/8" piece of material is different from one thats lets say 2" inches thick.

Like I said in the video, I am still trying to wrap my head around this (and I will :), but for now somthing simple is eluding me.

Usually the home for Z is at the bottom, not the top … I think that might be why it crashed. That also suggests that maybe the Z is inverted? I would expect (again) that the home operation would move it lower…

I’m sort of tied up at the moment being grandpa. Kevin, I believe you are incorrect. That is sort of the way I think too, but I don’t have homing switches. This from the wiki: “Homing is typically performed by running a “homing cycle” that locates the Z maximum, X minimum, and Y minimum limits - in that order. Z is done first …”
I believe that if you are going to use homing on Z, then $zmx=0 and $zmn=-50 or something like that, for soft limits to work. It gets more complex if you then do a G38.2 zero probe with a touch plate, but I believe that would ‘cancel’ the home(d) status and turn off soft limits anyway.

Thomas - you may be blazing new territory using soft limits on Z.
Hopefully Riley will enter the discussion

OK, lets invite @Riley_Porter_ril3y to the party then … I need to understand how it should work as I will be adding switches in the near future.

Typically Z homes upwards. This is where the Z min software limit value in the FW is effective. It ‘zeros’ at the top. And it knows the max travel downwards.

I know 100% for sure that thw Z home is up and away from the work surface :). I assumed we would use the home max for that… I read th e wiki and troubleshooting guide again.

Yesterday when I was messing with it, i did set the switch to me homing +limit. This will stop a crash if we send send a command to it after it’s been homed. It thows an alarm code that has to be reset to continue.

The fact that zero is at the work surface and home is at the opposite end (which is differnt then X&Y), creates a unique situation for the configuration.

When it homes it zeros… i think… i cant remember 100% however, in soft limit we tell the machine that it can travel 50mm. And since that travel is homed and is already 50mm away from the work surface & at Z0, it fires up the motor and crashes the axis.

However if we zero the Z with the tool tip on the surface, the machine runs fine. One just needs to remember after a Z home, to set a new Z zero manually or with a probe (havent tried the probe yet).

I am sure I did somthing wrong. TinyG has been out for a while and my configuration has to be creating the conflict…

Ahha. So what you are saying y milford, is that I dont use Z max with the switch placed at the top, but infact I use Z min.

This is where my head cant think it thru for some reason. So if i set it up like that, and hit home, your saying the head will still travel away from the workbed, but this will not reset a zero when it hits the Z min switch. Won’t the machine still think its at Z zero and crash if we send it commands to travel to Z 50. If in fact it does travel away from the home switch, doesn’t that mean instead of the tool lifting from the work surface it will now dig in and be backwards? Grrr… I have to be over thinking this.

Also, i do belive i set the wrong variable. I need to be entering -50mm in the Zmin

@Thomas_Shue I believe what you want, if you insist on homing Z, is $ztm=0, $ztn = - 50(or something like it) and the ZMax switch set as home and limit, $zsx=3. This follows the wiki description, I believe.
The problem with doing this is that Gcode will likely expect Z=0 to be the material surface into which you will mill. And, the distance from ‘home’ to the material surface will be a random variable, due to material thickness variations and the tool position uncertainty(depth into collett)
The offset between homed Z and material surface could be dealt with with a different coordinate system (e.g. G55 , G56, etc), but that conversation is (complex)^3.

You said it perfectly. Material thickness variations make setting a soft limit on the Z that will remain consistent extremely difficult. I was trying to figure a way to set up his machine that will Home without dragging the tool, and making it crash proof.

The person I am setting up the machine for is very new to this stuff, and I just wanted to made it as safe as possible,

@Thomas_Shue I think I understand your objective. A solution could likely be crafted in Chilipeppr using a macro, once you decide on a strategy for auto-setting the top-of material; if it is conductive (e.g. al) a G38.2 probe could work. You might get some hints looking at the Axes Widget under the Z axis, where hints for using alternate coordinate systems are found.

This all gets a bit confusing. My partner @Alden_Hart is MUCH better equipped to chime in on this. I think we (all of us) are confusing the work coordinates with the machine coordinates. When I say we. I mean we as a whole of DIY CNC’ing community. There are a bunch of old crusty mach-3’ers that understand this (and I think make fun of us :slight_smile: very well. This is also something @jlauer was attempting to wrap his head around with the alternate coordinate systems. So I have invited @Alden_Hart to the thread to see what his opinion on the matter is.

Yes I am deep in research as to what is the industry standard to set up the Z axis and homing. It’s obvious I am missing something. Being kind of new to this, I look forward to hearing input from the gurus.

I have been thinking of a way to maintain a fixed Z work height. I even thought of a work table that can move up or down depending on the material thickness to maintain a fixed Z working distance. It’s then and only then do I see the use of a max homing/limit switch and soft limits working as expected.

If our machine used only one thickness of material, the setup works perfectly. IMO, it’s the changing of the Z height kills that kills the system. :wink:

Light bulb moment! Stay with me here. My goal was to make a crash proof Z axis… Well with my moving bed theory, it could be possible. However on a normal machine (fixed bed) its impossible to set up a crash proof situation with a tool hanging out.

So right now I have homing at the top on a the max side (home + limit), however since I see Zero is at the tool meeting the surface, there has to be TWO Zeros. Ah Ha!

One zero ( its the home) should be the top, it’s the physical/mechanical Zero. Then when you run the job, you touch off for a Zero at material thickness. Then you can set a Soft Limit distance for the actual amount of travel you have before the extrusion bottoms out on the wheels.

Am I missing something? I dont have a OX so I can’t test it. My buddy’s build is over and I dont think he is ready for me to tell him what to do via the phone. Time will tell, I need to start buying parts I suppose :slight_smile:

I read this thread and let me see if I got this right. What you are missing s the notion of a work coordinate system. You want the machine to be in absolute coordinates that define the machine volume, then you set a work coordinate system (offsets) that is relative to the workpiece.

Typically Z homes at the top at zero. All Z movement in machine coordinates from then on is negative. I usually leave G54 (Coordinate system 1) with zero offsets so that there is a way to move about in machine coordinates.

Then probe to the face of the work piece and set the G55 (or other) coordinate system for that. You can also issue a G92 to offset against the G54 coords. That way you can set your zero to the surface of the work.