Calibration Tool Idea

Yea my SW of choice (LabVIEW) is something I can almost guarantee that nobody has installed but it’d work well and be efficient. It’s what I do at my place of employment.

But as a backup, you could go with Python if Java is just too cumbersome.

I have access to a very experienced programmer who knows a ton of languages. What’s the ideal/universal language to write such a program in?

Great Idea, the thing with calibration is you want to calibrate the longest distance of travel which helps to compensate for any back-lash that you may have in the axis and it is a more accurate method for calibration. I do like the idea of using 1,2,3 blocks mounted to an extrusion perfect adjustable solution. If you use a calibrated SS dowel you can create a digitizer program similar to that of the touch off zero plate and automate the process. I have not written a file to do this as of yet because I have many time constraints to deal with and all of my projects have been put on the back burner. Nevertheless, ya’ll are heading in the right direction. One more thing when you calibrate the process should be completed several times to test for repeatability. Let me know if you have any questions.

Java has historically shown to be one of the most cross-platform friendly languages but at a cost of performance.

However, for this particular application, it would be the closest match but its still not a guarantee that everyone has the proper version of Java installed (one of numerous drawbacks to Java). You’re also dealing with the overhead of Java in order to create a simple UI, given you want to create a simple UI.

It’d be interesting if it could be written as an add-in to a program like UGS. I think the new Platform version supports plugins now.

Wrong. I have version 2009. Have used it for years testing rocket motor propellant formulas.

Love the development environment.

Use $# to get the probe value (machine co-ordinates - mm)

$#
[G54:10.000,10.000,-10.000]
[G55:0.000,0.000,0.000]
[G56:0.000,0.000,0.000]
[G57:0.000,0.000,0.000]
[G58:0.000,0.000,0.000]
[G59:0.000,0.000,0.000]
[G28:0.000,0.000,0.000]
[G30:0.000,0.000,0.000]
[G92:0.000,0.000,0.000]
[TLO:0.000]
[PRB:0.000,0.000,0.000:0]
ok
G38.2 Z-0.25 F1
[PRB:10.000,10.000,-10.077:1]
ok
$#
[G54:10.000,10.000,-10.000]
[G55:0.000,0.000,0.000]
[G56:0.000,0.000,0.000]
[G57:0.000,0.000,0.000]
[G58:0.000,0.000,0.000]
[G59:0.000,0.000,0.000]
[G28:0.000,0.000,0.000]
[G30:0.000,0.000,0.000]
[G92:0.000,0.000,0.000]
[TLO:0.000]
[PRB:10.000,10.000,-10.077:1]
ok

I said almost :wink:

That’s what I’ve done for the last 10 years at work (my entire career). I started with LV7.1 and 8.5 and have migrated throughout the different versions. Currently using LabVIEW 2016 and will probably jump to 2018 with the next project. It’s gotten quite a bit better over the years I’ve used it.

I love it. It’s incredibly easy to do some rather complex stuff. We were doing some real-time signal impairment at my old job. It handles incredibly large data sets relatively easy.

I’ve debated about making a Gcode sender using LabVIEW but the time involved would be more than I can do right now. Maybe one day.

1 Like

I asked around, and why cant UGS do the calculations?

plug in? Does grbl do linuxcnc? or is grbl linux cnc? or arduino for that matter?

UGS itself I don’t think can.

A plug-in for the Platform version probably could easily. He made a probing plug in and a dowel maker or something plugin.

It has to read values from grbl to report machine positions & states.

@WillWinder would a UGS plugin have access to machine commands and responses?

I’m trying to get my old man to help me with this. He likes a challenge but is somewhat busy. I’ll see if I can tempt him to join in on this. @AngusMcleod u wanna collab? :stuck_out_tongue_winking_eye:

Can’t really help contribute but when you ready…

You could use the UGS Platform plugin system to do something like this. There is an abstraction layer for sending commands, an event system for receiving feedback (i.e. notification when commands complete, probe coordinates, state changes, etc), and a plugin system for creating visual elements.

I did something very similar to build the existing probe module. If someone is interested in trying it out I’m happy to help get you started and answer questions along the way. Here is the probe module if you’d like to take a look. The “TopComponent” class is basically the plugin layer and everything else is pretty much plain old java.

There’s also an archetype to generate (most of) the plugin boilerplate for you. You also don’t need to embed it into the UGS project directly if you want to keep your project separate, here is an example of that.

No crossed paths. I am saying the same thing as you. Maybe just a bit differently.

UGS Platform has a Plugin system (see WillWinder’s post). That plugin system would have to be able to access the underlying UGS components to be able to communicate with the machine and get the responses back via the UGS interfaces.

That’s why I tagged Will and asked the question. The plugin would HAVE to communicate with GRBL (via the already established UGS interfaces/API) so those API hooks HAVE to be accessible by the plugin if the plugin could work.

Also, we could speculate for forever, it’s best just to go to the source of UGS to see if it’s possible :smile: