Comments (13)
Sorry tripped on the closing button issue on my mobile phone 🙈
The G10 L2 and not L20 is the way that it is defined in the standard.
I think you are mixing G54 G55, etcc. with G92.
G54 is an offset off your coordinate system relative to your machine origin. It's stored in memory and must be repeatable even after you turn the machine off and on.
That means that you send a command specifying the machine the point in machine coordinates to define that coordinate systems origin and not how you would like it to be at that position
A bit like this
G10 L2 P0 X(MX) Y(MY) Z(MZ)
Let's say you want to make your G54 origin in the machine X0 Y0 Z50
your command should be G10 L2 P1 Z50
. This makes it predictable. Image you set you G55 origin offset while with an offset on your current coordinate system. Where would your actual origin be? A sum of offsets?
G92 works like you said. It's relative to were you are and the coordinate system you are using. So G92 X0 Y0 Z0 adjusts the temporary offset to make like your origin is displaced to where you are standing. But that gets cleared after a power off/on. It's not stored permanently.
I believe this is the way Grbl works also.
from ucnc.
Makes sense. If that is the case why does cncjs send G10 L20 …
?
from ucnc.
Grbl supports both G10L2, G10L20.
They must have imported from LinuxCNC G10 L20.
It's a flavor of G10 adopted by LinuxCNC. Not a part of version 3 of RS274NGC.
With L20 it works like you stated. Has a relative offset.
I'll add this feature to µCNC too make it more compatible with existing softwares for Grbl.
from ucnc.
Ok. It's done. Just need some proper testing. It's not yet merged in the main branch.
I have to check how Grbl behaves to make it match. My doubts about the way this works is what must be taken in account or not.
Let's say you already have a G92 offset active. Will the relative offset for your coordinate system take G92 in account too or not??
I'm not a big fan of G10 L20 because reference indirection might make it very confusing.
from ucnc.
Looking at Grbl confirms my suspicions.
Grbl-gcode.c#550
// L20: Update coordinate system axis at current position (with modifiers) with programmed value
// WPos = MPos - WCS - G92 - TLO -> WCS = MPos - G92 - TLO - WPos
besides any active G92 also Tool Length Compensation is taken in account.
from ucnc.
I did find one or two issues looking a bit more in the µCNC code regarding TLO 🤣.
Working on it.
from ucnc.
You’re a freaking machine my dude.
from ucnc.
I'm merging #189 into master now. I've done a series of tests and seems to stick. If any thing goes off please let me know.
If you are able to replicate the commands prior to error it will be very useful.
from ucnc.
By the way I'm evaluating the opportunity to implement the actual NIST G43. My current problem is that the UNO is already struggling for it's life as it is 🤣.
I still have the 16-bit bresenham card in the sleeve...but if I spend it...lol
Maybe I'll be able to optimize something later...although I'm running out of ideas. I know this board may work as an actual obstacle in evolving some aspects of the firmware...but would like to keep supporting as much as I can. Many laser machines still run on boards like these.
from ucnc.
Yeah. It's a tough call trying to fit it all in a ATMega328. I was thinking that there must be a breakout board for stepper drivers and stuff that works with esp32, since they're still pretty easy to get hold of.
from ucnc.
There is. @bdring has an awesome firmware called Fluidnc. You can check it at https://github.com/bdring/Fluidnc. There are also some break out boards. His project is trully unique. For Esp32 that is the firmware to go..it even has it's own web interface based on cncjs I believe
from ucnc.
Oh nice. Anyway, I see that #189 is merged so I’ll close this issue. Thanks again. You’re amazing.
from ucnc.
Just one side note. NIST G43 was already implement 🤣🤣🤣 .
I forgot I already did that a while ago. That means you can add TLO via G43 H command.
The TLO for each tool is available via $81 to $96 setting.
from ucnc.
Related Issues (20)
- When configured in 6 axis mode, there is a false-positive trigger of limit switch 'C' HOT 3
- [BUG] If I start the spindle, ALARM:13 is displayed HOT 2
- [FR] Support SCARA machines with 2 fixed motors HOT 4
- Sketch to big to fit into Arduino UNO memory HOT 6
- Running ucnc on NUCLEO-F411RE (STM32F411RET6)??? HOT 13
- [BUG] Using automatic extensions macro causes part of the extensions to not be rewritten
- [BUG] If a timeout assert loop using mcu_millis is called inside an ISR the program stalls
- [BUG] STM32F4 fails to compile when using HW I2C
- [BUG] SPI configuration of STM32F4 incorrect/incomplete
- [BUG] Plasma THC speed range function outdated
- PWM Laser or PPI Laser
- [BUG] DSS_CUTOFF_FREQ build error HOT 2
- [FR] Default servo position HOT 4
- [BUG] Compiling Error with STM32 Blackpill (Arduino AND Platformio) HOT 10
- Ask if it has the function of PCB cutting proximity switch to test the flatness of the mesh bed HOT 3
- [BUG] zero after hmap results in non-zero work position HOT 2
- [ask] ramps 1.4 beeper and read sd card feature HOT 4
- [BUG] Y axis endstop triggered after a period of time and hold in this position HOT 3
- [BUG] ESP32 SPI should use Arduino SPI by default
- Module event listeners with locks issue HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ucnc.