LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Software development of dual axis galvo system scanner for laser marking

Hello everybody

 

I'd like to develop a programm/GUI for the synchronization between a laser and a dual axis galvo scanner system. A dual axis galvo system is composed of two mirrors X and Y which reflect the laser in the X and Y axis respectively. My initial idea is to choose the 'image' (sqare, logo...) that we want to mark on a surface with the laser and from this image (.bitmap) extract an array of {x,y,N} parameters for each pixel:

 

- x and y are the coordinates for each pixel which will correspond later to the laser position 

- N is the number of laser pulses which is  linked to the value of the pixel at (x,y). Therefore the number of laser pulse for each pixel/laser position is between 0 and 255.

 

I know the mathematical formula for the mechanical angles of each mirror X and Y of the galvo scanner which are linked to x and y coordinates of the image field respectively.

 

Unfortunately I'm totally novice in Labview Smiley triste and I have basic knowledges in C++, can you give some clues for my project?

Thank so much for your help !

 

0 Kudos
Message 1 of 22
(7,424 Views)

Hmmm. Smiley Frustrated  How fast do you expect this to mark?  A software-based solution is going to be tricky if you need speed.  Laser marking systems usually use an FPGA with dedicated support hardware to control the galvo <> laser timing so that the laser can fire in the right place at the right time.  You might be able to leverage DAQmx calls (LabVIEW's excellent DAQ driver) to control both scanhead and laser with small functions that run on the DAQ hardware.  I could envision a line by line method that might work.

 

First off, some questions:

 

What kind of galvos?

What servo driver are you controlling them with?

What kind of laser?

What is the laser's interface protocol?

Are you trained in laser safety???  (Had to ask! Smiley Wink)

 

Caveat:  I assume this is a school project and you should know that it might not be rocket science but it's no walk in the park either.  You have a serious challenge ahead of you, especially if you're new to LabVIEW. 

LabVIEW Pro Dev & Measurement Studio Pro (VS Pro) 2019 - Unfortunately now moving back to C#, .NET, Python due to forced change to subscription model by NI. 8^{
0 Kudos
Message 2 of 22
(7,412 Views)

Hello,

 

In fact it's not a school project, it's for my work. I work in materials science and I'm used to work with laser for laser-matter interaction topics, especially femto laser but it's the first time I have to develop such a program. 

The scanning galvanometer mirror positioning systems is a dual axis system from Thorlabs (the GVSO12 model) and it uses a a non-integrating Class 0 servo. I purchased the NI 9269 for the DAQ card. The laser is a femtosecond laser (400fs). Regarding the laser's interface protocol its USB/ethernet/RS-232. You're right to ask and yes I'm trained for the use of laser!

 

Thanks!

0 Kudos
Message 3 of 22
(7,393 Views)

OK, sounds like the scanhead part is pretty simple if you can connect everything and tune it.  You won't be able to go very fast with such large mirrors and a class 0 servo but I assume you plan to scan the laser across the target at a constant velocity and fire the laser when you want a "pixel" to be burned, then drop down a "line" and scan across again and again until the image is generated.  Is that correct?

 

Some problems right off the bat:

 

You don't really need the 4 simultaneous channel output from your DAQ choice and it's very slow at 100KHz (although this might not matter much at the speeds you'll be limited to).   More importantly, it has no digital ins or outs you might need for triggers or sync signals and no analog inputs to monitor the position feedback signal of your servos.  You'll be "flying blind" so to speak.   I would have suggested something more versatile like the PCIe-6351

 

I'm not too familiar with femto lasers.  What is your beam diameter?  Do you not require a big, field-flattening, F-Theta lense to correct for spatial distortions?  Most importantly, what method does it have to trigger an output pulse?  USB, etc. are too slow to allow for the on-the-fly speeds you'll need unless you're OK with very slow imaging rates.  I might be wrong about this so please provide the make/model and I'll take a look at its specs...

LabVIEW Pro Dev & Measurement Studio Pro (VS Pro) 2019 - Unfortunately now moving back to C#, .NET, Python due to forced change to subscription model by NI. 8^{
0 Kudos
Message 4 of 22
(7,369 Views)

You're right for the principle. The purpose is to mark line by line.

Regarding the choice of the DAQ card, it's an engineer from NI who recommended this model for this application so now I have to do with that. The beam diameter is around 30μm and indeed the galvo scanner needs a F-theta lens to focus the laser on the image field without (almost) aberrations. The laser already offers a GUI through which we can control the number of pulses, repetion rates (up to 1MHz for pulse train)... but it can be connected to the computer by only 3 ways USB, ethernet or RS232. If I well understood you'll like I provide the laser operator manual? 

 

Thanks!

0 Kudos
Message 5 of 22
(7,351 Views)

Yes please post the manual.  I assume they must offer an API of some sort so that the laser operation can be automated.  You might even get lucky and find LabVIEW drivers available Smiley Happy.  

 

Also, what version of LabVIEW are you using?  What type (Basic, Student, Pro Dev)?  Do you have DAQmx installed?

LabVIEW Pro Dev & Measurement Studio Pro (VS Pro) 2019 - Unfortunately now moving back to C#, .NET, Python due to forced change to subscription model by NI. 8^{
0 Kudos
Message 6 of 22
(7,322 Views)

Hello,

 

I use the LabVIEW 2015 Pro Dev and I already the DAQmx driver.

 

Thanks!

0 Kudos
Message 7 of 22
(7,307 Views)

Well, as I expected the system has software control parameters and the associated external connectors for triggering, gating and synchronizing the laser pulses.  You can set up how you want to trigger/gate/sync the pulses in software and then a fast, TTL digital signal is directly connected which provides the trigger signal.   This way you could have simultaneous signals generated from LabVIEW/DAQmx.  One analog out that moves the X mirror at a constant velocity and another TTL signal to fire the laser based on a synchronous pulse chain that corresponds to the location of the "pixels" you want burned.  Basically, to use this laser right you will need fast, controllable, digital signal outputs from your PC that can be synced to the outputs of your analog DAQ (i.e:  a multi-function DAQ card like the 6351 I mentioned).  

 

There may be an option to do a very slow "jump & mark" solution without a trigger signal.  I didn't read completely through the manual but I suspect you can fire the laser with the communications interface.  So you could set up a table of X,Y locations where you want your "pixels" and then just JUMP to the location, MARK the "pixel",  rinse and repeat until your image is complete.  Unfortunately, without an integrator in your servo, I'm not sure you will have the accuracy required to do this well.  You will also have to figure out a way to have LabVIEW talk to the laser through it's COMM interfaces and tell it when to fire.

 

I suggest you first contact NI and have them reevaluate their choice of DAQ cards after you inform them specifically what you are trying to achieve and include the details of the scanhead and laser.  You may be able to exchange your 4-ch analog card for one with better options for your task.

 

In the meantime here is a good start to tutorials in LabVIEW.  As I said before, your application is certainly doable, but is a BIG step for a beginner.

http://www.ni.com/academic/students/learn-labview/

LabVIEW Pro Dev & Measurement Studio Pro (VS Pro) 2019 - Unfortunately now moving back to C#, .NET, Python due to forced change to subscription model by NI. 8^{
0 Kudos
Message 8 of 22
(7,292 Views)

Thanks for all your advises, but the thing is that we are already limited in speed by the capability of the both mirrors which compose the scanhead.I don't have a specific data for the scanner speeds, but theoretically this will dependent on the galvo scanning angle being used. For example if you are using the full +/-20 deg mechanical scan angle then the typical bandwidth will be 60-130 Hz. For a smaller angle (~+/- 0.2 deg) this can reach upto 1KHz. 

0 Kudos
Message 9 of 22
(7,260 Views)

Yeah, speed and accuracy are both going to be minimal with your hardware but if you're OK with the slower speeds you can certainly use what you have...  IF, you can fire the laser with reasonably accurate timing through its communications interface, AND, make that happen with LabVIEW.

 

Can you send a command through USB, serial or ethernet that will fire your laser without actually pressing a button on a GUI display?  In other words, can you send a simple command to the laser that will fire it with no other interaction on your part?  Please read through the manual and see what options you have.  I'll do a quick search for any LabVIEW drivers that may be able to help and get back to you...

LabVIEW Pro Dev & Measurement Studio Pro (VS Pro) 2019 - Unfortunately now moving back to C#, .NET, Python due to forced change to subscription model by NI. 8^{
0 Kudos
Message 10 of 22
(7,225 Views)