Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: Help with galvo board tuning, and do I need a new motor

  1. #1
    Join Date
    Dec 2024
    Posts
    3

    Question Help with galvo board tuning, and do I need a new motor

    Hello Photonlexicon World,
    I am driving an unknown galvo driver board and unknown galvo motors using a Teensy and a DAC. (The galvos and driver are from a commercial product that I'm modifying for my project and have no manufacturer markings to indicate their model and version etc.)
    Both the DAC and the galvo driver are supplied with +/-15V. The DAC is capable of generating analog signals within +/-10V range.
    The Teensy talks to the DAC over SPI.
    Life is good so far.
    One day when running some tests using square waves from a function generator fed to the galvo driver, I messed up something so that the x-axis was rendering 0 movement.
    I freaked out, and I tried to tune the potentiometers on the galvo driver board.
    This is where things got bad and I understand that I screwed up. If all was fine, this would not be a post for help.
    I have been learning to and trying to tune this board now for around a month.
    I do not have an ILDA connector. I simply write the x, y DAC values in my Teensy program, and that commands the galvos to go where I want them to go.
    For testing, I directly connect the board to an analog function generator.
    In attempting to replicate the ILDA pattern, I render the square using square waves at 90 degree phase from eachother, and similarly to generate a circle, I use sine waves.
    The function generator is set at 6Vpp (-3V to 3V analog) or less, and 50Hz for the square or sine wave frequency.
    I've gotten it tuned pretty well at 50Hz.
    I let the laser render a square or circle on a millimeter grid paper.
    I noticed recently that the x-axis would not scale down below 30mm for 6Vpp (the potentiometer for the scale made a click sound i.e. it's the smallest it can be), and would keep on increasing as time passed and the galvo driver heated up.
    There is also a skew at the lower right corner of the square that keeps increasing with time/temperature.
    I switched the connectors of the motors on the galvo driver, and noticed that y-axis became 15mm at the scale setting I had for the x-axis motor,
    but I had the same issue with the x-axis motor now connected to the y-axis potentiometers. I turned the pot down to minimum, and it still would not render smaller than that setting.
    I've tried changing the HFD, LFD, etc. and nothing reduces the scale, and most importantly, the drift is still there.

    Is that something to do with the motor or is it something I can fix by tuning the board properly?
    How can I proceed at this point?

    I'm happy to provide further details as required, but there's so much procedure and data, I wasn't sure if I could word-vomit everything here in the first post.

    Thank you in advance for your expert knowledge.

  2. #2
    Join Date
    Jan 2006
    Location
    Charleston, SC
    Posts
    2,147,489,518

    Default

    Normally when a galvo stops working, it's because it was drawing too much current. Most galvo drivers (scanner amps) have a resettable polyswitch that will open during sustained high-current operation to protect the galvos. Turning the power off and back on again should reset the switch. (You might need to leave the power off for 15-20 seconds.) Of course, it's also possible to permanently damage a scanner by driving it too hard, but they'll let you know when they are being over-driven (high-pitched screeching sound) so you can stop.

    I'm unclear as to what happened after the galvo stopped working, and why you started re-tuning. Were you simply adjusting the pots on the amp while you had no output on the galvo? If that's the case, and especially if there's any chance that you may have adjusted the wrong pot (were they labeled?), then you may have a real challenge on your hands trying to fix this.

    On the other hand, if you cycled the power off and on again, and the galvo started working again, and THEN you started re-tuning, then it might not be as big of a problem, provided that the galvo itself was not damaged.

    First question: do you have all of the adjustment pots labeled, and are you sure you know which pot or pots you adjusted? (I'm concerned that you might have changed the linearity pot instead of the input scale pot.)

    Next question: have you ever tuned these galvos before? If yes, how did you tune them? (That is, what waveform did you use, and what part of the displayed pattern on the wall were you looking at?)

    Normally, scanners are tuned using the ILDA test pattern. But it's not just a square with a circle inside of it. For one, that circle is NOT a sine wave. It's actually 12 equally-spaced points (a dodecagon) that are all well outside the edges of the square. The idea is that the points are spaced so far apart that the scanners have no hope of reaching the first point before they have to head off towards the next one. Thus, the 12 points end up being "rounded off" by the scanners so that the pattern on the wall appears to be a circle that is much smaller that the dodecagon in the test pattern file.

    Also, it's not just 12 points, but 36 points, because the scanners make three trips around this pattern to draw that center circle three times. The scanners are said to be "ballistic" when drawing this part of the test pattern. That is, they are under constant, maximum acceleration for all three trips around the circle. The difference between the actual point location outside the square and the correct circle position on the pattern on the wall (which has the circle just touching the edges of the square) represents about 3dB of distortion. The whole point of the ILDA test pattern is to adjust the scanner amps so you get this predictable distortion that is exactly matched for X and Y at a given point speed. (Typically 30,000 points per second.)

    If you look at those 12 points as one cycle, and then divide by the point speed (30,000), you get 2500 Hz, which is the absolute maximum small-step bandwidth for a set of 30K scanners. At 2500 Hz, there is significant distortion, even though it's a very narrow scan angle. (The center circle is less than 3 degrees wide, while the entire pattern is normally scanned at 8 degrees when tuning.)

    But all of this is moot: Since you said that you don't have the ability to generate the ILDA test pattern, that means you won't be able to tune your scanners with this method. Granted, you can tune scanners using a simple quadrature square wave, and maybe that's good enough for your application, but it's not ideal by any measure. You can adjust low and high frequency damping to eliminate overshoot and undershoot at the corners of the square, but you won't know how fast the scanners are moving.

    The central circle of the ILDA test pattern allows you to see the relative speeds of the two scanners, and you can adjust the servo gain on one or the other amp to increase the size of the circle and ensure it's round and not and oval that is tipped to one side or the other.

    Yes, each time you add servo gain you increase overshoot, and each time you add low frequency damping to correct the overshoot, you can induce undershoot, which will require more high frequency damping to correct, and all of this damping will change the speed of the galvo, reducing the effect of the initial increase in servo gain. This is why tuning is an incremental process. But normally, the only 3 pots you need to adjust are servo gain, low frequency damping, and high frequency damping.

    The Input Scale pot is normally set properly at the factory, but you might need to tweak it a tiny bit when you first set up your scanners, just to ensure that X and Y are both set to the exact same size. Note also that it's very common for the input scale pot to reach it's low limit while still displaying part of the pattern.

    Any other pots on the amps are best left alone, unless you know EXACTLY what you are doing. If you have mistakenly adjusted the balance or linearity pots, you'll need to do some research to figure out how to reset those controls before you can try to tune the scanners. I'm aware that it can be done, but I've never attempted it and I do not know the specifics.

    Adam

  3. #3
    Join Date
    Dec 2024
    Posts
    3

    Default

    Adam-
    Thank you so much for your detailed response.
    Indeed I have mucked about more than I should have and I appreciate any and all guidance in the matter.

    When the galvos stopped working, I turned off everything, then turned it back on and I still had one axis showing no movement, and the other showing correct movement. The function generator was outputting two square waves, and I was seeing a line rather than a square. I did the turning on and off bit a couple of times, with some time to wait in between. It must have been a wire crossed or something. Eventually, I turned one of the pots and no change to the device. I returned the next day and the system was working again. I suspect it was the electrical offset pot, and I will explain in my later paragraphs how I know that.

    I’m not sure if changing that pot made a difference or not, but I noticed another issue when I was trying to get a scale value for DAC units to millimeters, e.g. whether 32768 on the DAC maps to 30mm on my mm-grid paper. The bottom right corner of the square that was rendered on the grid was skewed further to the right. I tried to compensate for that in my code by mapping points on the grid-paper and the DAC commands I gave them through a polynomial fit. This method of calibration is still giving inconsistent results around the edges of the workspace of the galvo, so, for example, if i want to position the laser to be at 25mm to the right, it might end up being at 24mm. After this happened, I tried to tune all of the pots to ensure that it wasn’t the tuning that was causing the skewed square. In this process I have changed ALL of the pots including the linearity one.

    Now, about what each of these pots does, I moved them and observed what happened to the shape rendered by the laser movement on my grid paper.
    I also use a ramp signal on one axis, and a square signal on the other axis to get a sort of “step response” rendering.
    For each axis, I have identified one pot that moves the center of the image along that axis. That’s the one that I changed when one of the motors first stopped working. Another one increases the scale of the square that is rendered on the grid paper, so, e.g. for 6Vpp I will get a square that is 30mm wide, or 33, or 28mm, etc. I have identified another one which makes the rise time shorter but adds overshoot. Another one that adds damping to this overshoot. Another one, which when decreased causes ringing but when increased it dampens this ringing up to a certain point anfter which it adds more overshoot. Adding overshoot makes the square skewed into a parallelogram in one direction, and adding damping makes the parallelogram skew in the opposite direction, also rounding the corners. Using the sine waves to render a circle, I ensure that both axes are balanced, because otherwise the circle is skewed. I can also tell the “speed” by looking at the rise time using the square+ramp combination. There is the last pot that does absolutely nothing to the square or the circle. I suspect after your post that this may be the linearity pot. I have set that one to be at a minimum, because it was doing nothing.

    Thank you for explaining about the ILDA pattern. I have found several documents outlining the method, but I couldn’t find one that explains what points the galvos are commanded to go to. That’s why I’ve been using a function generator. I can write my own Arduino code that can command the galvo via DACs. The DACs I’m using are buffered, so they both update at the same time. Their response time is 7us, which is better than the 2.5kHZ requirement, so I think they might do the job. And I’m using a Teensy microcontroller with a 600MHz CPU with digital interrupts, so I think I should be okay on the speed front.
    However, I would need the coordinates for the ILDA pattern, which I don’t know how to find. I even asked chatGPT and it made up an answer about there being 80 points on the circle and 200 points on the square and I knew it was lying about that.

    I also found this post on this forum from 8 years ago, but I couldn’t find the document from where they got the coordinates for the ILDA pattern. It was also left abandoned after they reached a certain point in their tuning.
    https://photonlexicon.com/forums/sho...Sung-galvo-set

    Many thanks

  4. #4
    mixedgas's Avatar
    mixedgas is offline Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    10,016

    Default

    Pattern...

    Technical standards | International Laser Display Association

    as ZIP at above site.

    Steve
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

  5. #5
    Join Date
    Jan 2006
    Location
    Charleston, SC
    Posts
    2,147,489,518

    Default

    Quote Originally Posted by farsuy View Post
    In this process I have changed ALL of the pots including the linearity one.
    Well, crap. That means you may have inadvertently put yourself into a region where it will be very difficult, if not impossible, to retune the scanner amps. There is a way to reset the linearity and position scale pots, but I don't know how to do it. MixedGas may have the original procedure filed away somewhere, but even if he can find it, it's going to be an involved process. (Side note: MixedGas is none other than Steve Roberts, aka the guy who wrote nearly the entire Argon Ion Laser section of Sam's Laser FAQ. Fountain of knowledge, that guy is!)

    Now, about what each of these pots does, I moved them and observed what happened to the shape rendered by the laser movement on my grid paper.
    I also use a ramp signal on one axis, and a square signal on the other axis to get a sort of “step response” rendering.
    OK, that should be enough to identify most of the pots.

    For each axis, I have identified one pot that moves the center of the image along that axis.
    That could be either position scale or linearity, but I think it's most likely to be position scale.

    Another one increases the scale of the square that is rendered on the grid paper
    That should be input scale.

    I have identified another one which makes the rise time shorter but adds overshoot.
    That is servo gain.

    Another one that adds damping to this overshoot.
    That is low frequency damping.

    Another one, which when decreased causes ringing but when increased it dampens this ringing up to a certain point anfter which it adds more overshoot.
    That is high frequency damping.

    There is the last pot that does absolutely nothing to the square or the circle. I suspect after your post that this may be the linearity pot. I have set that one to be at a minimum, because it was doing nothing.
    It could be linearity, but you wouldn't want it to be set at zero - you'd want it to be something close to what it was set to at the factory. It also bothers me that you said it didn't have much of an effect. These are all multi-turn pots, so it takes a bit of cranking to see the changes, but adjusting linearity should change the pattern.

    I can write my own Arduino code that can command the galvo via DACs. The DACs I’m using are buffered, so they both update at the same time. Their response time is 7us, which is better than the 2.5kHZ requirement, so I think they might do the job. And I’m using a Teensy microcontroller with a 600MHz CPU with digital interrupts, so I think I should be okay on the speed front.
    Several people have built their own DACs using various hobbyist controllers, so I think you can do the same, but this is another area that is outside my experience. HankLloydRight here on the forums made his ILDAC-32 using the ESP-32, so he could be a great resource if you get stuck.

    However, I would need the coordinates for the ILDA pattern, which I don’t know how to find. I even asked chatGPT and it made up an answer about there being 80 points on the circle and 200 points on the square and I knew it was lying about that.
    The link to the ILDA Technical standards page that Steve posted above contains a .zip file that includes several test patterns. (Here's the direct link to the file.) You'll want to use the ILDA test pattern that is labeled 12K, also sometimes referred to as the 12/24K ILDA Test Pattern. In comparison, the 30K ILDA Test Pattern has an additional square completely outside of the main pattern that is much larger than even the normal outer square of the test pattern (to say nothing of the inner square where the circle resides). The whole thing is frankly a bit of a mess, and I think it just makes things more confusing. I would not recommend using that 30K pattern.

    Another useful pattern is the LaserMedia Test Pattern. I like to use that one to double-check that the speeds of the X and Y galvo are matched, once I've gotten the tuning to look good on the ILDA test pattern. (The top right and bottom left diagonal lines are traced twice in opposite directions, so if the speeds of X and Y are different, you will see two lines for each of these diagonals, instead of just 1, because the speed difference will prevent them from overlapping exactly.)

    And finally, the quadrature square wave pattern can also be useful, especially when you are first starting to tune your scanners. It's very helpful if you ever decide to de-tune your scanners all the way to zero (that is, no servo gain, so the pattern collapses to a dot) before starting to tune, as this pattern gives you the quickest feedback when you first start adding servo gain. (It's easy to send the scanners into resonance when you're first coming up from that dot if you add too much servo gain before you dial in some low frequency damping.)

    Here's a link to a very old thread I started long ago that discusses scanner tuning in great detail: https://www.photonlexicon.com/forums...-your-scanners There's so much good information in that thread that at one point I cleaned up the basic text of the tuning guide, added some pictures and extra comments, and posted the resulting tutorial as a .pdf file, which had been hosted on lasershowparts.com for many years and was considered by many to be a fairly comprehensive guide on how to tune a set of scanners. Alas, it seems that they've taken the file down, so I'll have to do some digging to see if I can find the original file. (We're taking about something I wrote 16 years ago, after all.)

    HOWEVER, the tuning guide only deals with 3 adjustments: Servo Gain, Low Frequency Damping, and High Frequency Damping. There is nothing in there about what to do if any of the other pots on the amp were mis-adjusted. Indeed, the guide assumes that these other settings were set correctly at the factory and never touched by the user.

    Since you said that ALL of the pots have been adjusted, I think you'll want to first start by ensuring that those other pots are re-positioned to something close to their original factory settings. Again, I'm hoping that Steve will chime in with a suggestion on what would be an appropriate starting point. (And if we're lucky, he might have a procedure for dialing in those other pots to their ideal settings.)

    While the idea of building your own DAC to display the ILDA test pattern sounds very cool, there is another option you may want to try... You haven't filled out your profile information, so people don't know where you are located. But if a member here on the forum happens to live close to you, it's likely that they'd be willing to meet up with you and bring their DAC so you could display the ILDA Test Pattern and tune your scanners right away. Worth a shot, anyway.

    Adam

    PS: Holy crap - I found a copy of my original scanner tuning tutorial! I'm attaching it to this post.
    Attached Files Attached Files

  6. #6
    mixedgas's Avatar
    mixedgas is offline Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    10,016

    Default

    WARNING NOTE, SETTING / CHANGING THE POSITION SCALE POTENTIOMETER WITHOUT KNOWING THE FACTORY VALUE IS NOT A GOOD IDEA FOR MOST GALVO USERS. LEAVE IT AT THE FACTORY SETTING FOR YOUR SCAN PAIR!


    Yeah Adam, I can bring systems up from Scratch, Cambridge used to teach a course at ILDA meetings PRE GSI Merger... Key words here are "TEACH", and personally show you how with a scope, signal generator, and angle test fixture.

    Its not for the timid, or those in a rush. You sit through the class, and then come back for an hour or more of hands on instruction, individualized. If you passed the individual session test, you were given the service manual for 68xx.

    If you'd like to experience perfidy, try having an X-Y pair with different scale factors, as that ripples through the whole PID, PI, or PII loop, depending on what you have.

    This is a brief excerpt, and its highly modified so I don't post the full procedure, as that procedure is very much model specific.

    Set the linearity pot to mid travel. If you have a scale potentiometer, it goes to zero or minimum (tricky thing if/ when you don't know which way the rotation goes) IF IT IS PRESET, AS IT SHOULD BE, MEASURE IT WITH AN OHM METER WITH THE POWER OFF! NOTE THAT READING!

    Servo gain should be zero or minimal while doing these procedures. Not all amps will go to no or zero gain, but the less the better when setting the scale factor.

    Ground the inputs, set the offset to 0V at the motor coil HIGH side. Low side galvo coil goes to the current sense resistor. Monitor the currents to the board from your power supply rails if you can. One side should be higher by about 20-40 mA, and this is the drive to the position sensor LED. When galvos are at rest, and at Zero deflection, the difference between supply currents should be about equal. If they are not, something is badly wrong.

    If your having a good day, the board has a fuse or PTC protector by the current sense resistor. Pull it. A good initial tuning requires disabling the coil drive...

    Now you can probe with an oscilloscope.

    If Life is good, your position sensor works once the fuse is pulled so you can't kill the coil, .

    If you've turned everything, and you went out of bounds, you need to come up with a scale factor, for the position sensor. ..25 to .5 Volts per degree is typical, usually on the higher end at 0.5V per degree MECHANICAL for Professional systems. Remember, optical angle of the beam off a mirror is 2X mechanical deflection due to physics.

    The procedure involves doing some trig while moving the Mirrors by hand with cotton glove (Not Cotton for Laser Making Systems), then under a dc signal , and then with a low amplitude, low frequency sine wave after giving it a little servo gain to just loosely start to close the loop.

    Once you've tested things in the static, mode, you put the fuse back in, briefly turn things on and if the mirror centers, you can keep the power on and apply the sine wave. If you have no servo gain , on "True Servo" style amps such as Turbotrack Ii, the mirror may not move until some servo is added. If adjusted wrong, or if there is too much servo gain or offset, the mirror may slam to one side and stay there when powered on. So the initial startup requires great care and a quick hand on the power switch.





    Downrange you have a marked scale at a known distance from the GALVO. You would slowly increase the scale potentiometer to a known angle by scanning a 60 Hz pure sine wave till you hit your desired end point (See Pangolin Corp web site for a scan angle vs distance table)

    R60 in the schematic is the linearity, taking making a correction from Ia and Ib the CURRENTS from the sensor PDs. Make sure the LED illuminating the position sensor flag is not exceeding ~~20 mA. Do not attempt to force the mirrors to do ANYTHING by hand if the drive coil fuse is in place, you'll kill the galvo.

    LED--> Light---> Position Flag ---> PDa and PDb--> make currents Ia and Ib and these go to the demodulator, aka 3 Op-Amp Instrumentation Amplifier. AGC OUT in the picture is the current source for the LED in the position sensor. Yes, its active in more ways then one to correct for linearity and trig errors in the system. if the Flag or Butterfly is centered, in theory the shadow on the two PDs is equal, as the rotor turns to one side, one or the other PD gets more illumination, and the other gets less.

    You have one of the few boards in the world where I can't make an assumption on the scale, or even tell if you have a fixed or variable scale. The position scale sets the response of the rest of the loop, by changing the magnitude of the feedback signal. Position linearity corrects for errors in parts placement and tolerances. You tweek that on a 10x10 standard grid at the middle or very end of tuning. A cheap Galvo may have linearity but not scale. The problem is scale and servo gain tend to look the same in Laser when initially tuning an unknown board. But they do two different things.


    OP< If your luckily your tiny board has fixed scale to reduce costs.

    So monitor that position test point if you have an oscilloscope. Don't try feeding it into anything, like using your microcontroller for controlling the loop, the ILDA pattern is very dependent on the Galvo amp's internal, inherent, characteristics. Just watch on a scope.

    When you turn the power on for one axis, and have the fuse/PTC back in circuit, you feed the system a low amplitude square wave, and check the leading edge response on the scope.

    Next up, if your image is totally screwed, initial tune up on a 30 or 50 Hertz / 50% duty cycle square wave @ 8 Degrees optical (Quadrature Square Test Pattern for Pangolin Owners), get so you have a highly damped barely there, maybe 3-5 cycles of exponentially decaying ringing on your leading edge of the square wave, at some small angle. Increase the angle, and retune, etc. You want the sharpest possible rise time and minimal ringing on the scope. You need to leave about 1/2 cycle of ringing, zero ringing is overdamped. You have now tuned your amplifier for a really good laser marking setup. ILDA will mean detuning to meet the standard. LFD does the course damping, HFD should let you set the ringing, These two potentiometers will interact.

    For a beginner, that is a bit of tutorial. It is by no means the full enchalida, which I do not want to truncate to post here. Every time I give the full "From Scratch" procedure to beginners, bad stuff happens, as they assume the procedure for scale factor is the same for ALL cloned galvos, and somebody does damage to their system from using the WRONG scale factor or tries it on a TYPE I amplifier vs Type II etc.

    Watch for clipping etc on the scope. Usually even the cheapest galvos bring out the demod test point. Do not allow the galvos to slam into physical stops at the end of travel, when experimenting. This will dislodge the sensor flag on cheap galvos, as they do not have stops on the rotor.

    Once you have a good square wave response, you end up DETUNING and RETUNING to match the mirror sizes if physically different, (Hint, detune the faster mirror to match the slow on one on a scope with both fed a small angle square wave by overlaying the traces) then detuning even more to retune to ILDA, depending on which ILDA test pattern, to a specific angle. It is very iterative.

    Before you say, Oh please, Oh please, give me the full manual, realize I teach / research / tech for a living and am giving you the part you really need, as your board is way, way different from what I am excerpting that fragment from.
    I don't want you driving your galvos into oscillation by following the wrong procedure.


    OK< that is the short version of twelve pages of initial tuning manual. The light show manual tuning is short, other models have four or more tuning options roughly: (Very Fast Fast, Accurate, Low Overshoot, Marking) and some times options on how the Servo loop is set up, ie True Servo gain, PII, PID etc.

    Once you get your scale factor right, tuning to ILDA is easy. Moral of the STORY, no matter how tempting, NEVER mess with the scale factor potentiometers unless it is a last resort. If possible, leave them where the factory set them on a Laser Show system.

    NOTE:

    If you overdrive / run at too high a frequency, the galvos will die as follows: Magnetic Rotor heats up, expands. Expanding rotor hits the stator plates, and scrapes the enamel off the coil windings, Coil Shorts to grounded Stator, or Coil Opens, or Coil changes resistance. Your coils should be 2-4 Ohms, and match each other. They should NOT short to the case.

    NOTE 2: We never just send the galvo a raw command, if you check in the ILDA Glossery, you'll find there are anchor and guide points added to an ILDA image file by the artist. Corner points, are added at 90' changes in direction, typically by the software, to hold the galvo at one spoit wheb right angles for a while, typically three to five corner points. Some users will save the corner points in the image.

    NOTE 3:

    Sensor picture, shamelessly borrowed from HACK_A_DAY, of worlds ugliest, cheapest, worse designed position sensor like EVER.

    Note 4, Electrical Signals for a small jump, Scope Picture, from a Cambridge Technology manual,.

    Note 5: Elm Chan has images of initial tuning done the "Hard Way", I'm one of many who helped him create a masterful design. He uses capacitive feedback, which is the other way.

    http://elm-chan.org/works/vlp/report_e.html

    Note 6: A good way to set linearity is hook a high bandwidth true RMS voltmeter to the position test point and scan a centered, symmetrical grid, adjust potentiometer for lowest RMS reading. Expect to have to change the setting for best artistic impression after the technical score of RMS reading.



    Note 7, Scan angle calibration chart in video background:

    https://youtu.be/PL1pbCNsass?t=77




    A little digging from very old posts here, and I think you might have, I quote WONGSAN Corp....

    Potentiometer description:


    • IS Input scale (adjusted only in factory)
    • SG Servo gain (power of the feedback signal for internal PID controller
    • LFD Low frequency damping (correct overshoot)
    • HFD High frequency damping (correct undershoot)
    • LIN Zero offset (electrical offset of the driver, adjusted only in factory)
    • PS Position scale (increases or decrease input sensitivity of the computer, DO NOT change it)


    You'll have questions, and I can only answer threads in the Evening, Eastern Time, for now.

    Steve
    Attached Thumbnails Attached Thumbnails small jump from camb manual.gif  

    Partial Scan Amp.png  

    galvo sensor.jpg  

    Last edited by mixedgas; 12-20-2024 at 20:12.
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

  7. #7
    Join Date
    Jan 2006
    Location
    Charleston, SC
    Posts
    2,147,489,518

    Default

    Quote Originally Posted by mixedgas View Post
    Yeah Adam, I can bring systems up from Scratch, Cambridge used to teach a course at ILDA meetings PRE GSI Merger...
    Booyah! Steve Roberts takes the shot from the 3-point line... Nothing but net.

    I had a feeling you'd be able to provide some guidance on how to re-adjust farsuy's amps. Thanks for delivering! It would seem that he's already got at least a passing understanding of how the feedback amp works, and clearly he has access to the necessary test equipment, so hopefully he will be able to follow your suggestions to get his amps back into their normal state. And if he gets stuck, I'm sure he'll post further questions here. Again, great job Steve. (This sort of thing is what makes this forum, and this community, so awesome.)

    As an aside, I wish I could have attended one of those Cambridge courses back in the day. I guess I joined ILDA just a bit too late for that though. (I'm assuming that those courses are rather expensive today, if they're even offered anymore.?.)

    Adam

  8. #8
    mixedgas's Avatar
    mixedgas is offline Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    10,016

    Default

    Nobody has offered the course in a long time. Once upon a time, Graphics Shows were a serious market for Cambridge. An insightful Amplifier Designer and Systems Engineer had set up the course. He basically took the show market from GSI by doing so. Laser shows are not a target market for the current management, and no one in any galvo business model wants small customers tuning. Tends to lead to excessive warranty repairs. Besides, if you break them, another pair will be sold.

    Besides, ILDA and LFX usually had at least two sales ladies and an engineer show up. Party Time! Plus, some easy sales for a startup. We as a community also pushed them hard on mirror coating development and bearing upgrades to ceramic. That helped them in the larger microscopy market. Early dielectric mirrors leaked red in an angle dependent manner. The ladies requested feedback. When we showed them how we rebuilt GSIs, that threw them for a loop, and they responded by lowering prices. Oh, and that humble Engineer? I just looked, and he actually was director of Engineering Development, according to Linked-In. Thanks Mike!

    He had a serious audience, back them, who knew their way around a screwdriver. We push Galvos hard, very hard, to their limits.


    The current marketing team at a certain big galvo company came from a different business model, and one of those post-merger managers had a personal score to settle with individual , laserist, and small quantity sales. Commercial and Scientific Microscopy users are currently experiencing a long wait time from the big company, often on the order of a year.

    Moving production overseas didn't help

    Give me some warning / reminders at the next SELEM.... and I'll show you a few things or give a talk. Without a board and a scope, it is kind of meaningless.

    Steve
    Last edited by mixedgas; 12-23-2024 at 06:15.
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

  9. #9
    Join Date
    Dec 2024
    Posts
    3

    Default

    Adam and Steve-
    Thank you so much both for spending a generous amount of time and labor to answer all of my issues comprehensively.
    I genuinely appreciate the hell out of this conversation.
    I apologize for my delayed responses. This is an ongoing process with a lot of other moving parts in my project that need to be prioritized besides the laser galvo board.


    I'm responding to specific portions of your posts that I still have questions about, and then have a more general response and more questions that follow.

    Quote Originally Posted by buffo View Post
    It could be linearity, but you wouldn't want it to be set at zero - you'd want it to be something close to what it was set to at the factory. It also bothers me that you said it didn't have much of an effect. These are all multi-turn pots, so it takes a bit of cranking to see the changes, but adjusting linearity should change the pattern.
    That's what I think, too. With the equipment and methods that I'm using i.e. function generator as input and the laser light rendering on grid paper, I did not observe any detectable changes. More on this in response to Steve's advice.


    Quote Originally Posted by buffo View Post
    Several people have built their own DACs using various hobbyist controllers, so I think you can do the same, but this is another area that is outside my experience. HankLloydRight here on the forums made his ILDAC-32 using the ESP-32, so he could be a great resource if you get stuck.
    Thank you so much for the reference. I will look up posts with those keywords. I am not stuck at the microcontroller and DAC part. I am all good. I am using a Teensy 4.0 with a 600MHz processor (better than ESP-32), and a TexasInstruments DAC 8734 capable of outputting analog voltage in the range of +/-10V at 16-bit resolution @ >50kHz.
    I do not have an urgent need for my firmware to render ILDA format frames, so I did not develop that portion.

    Quote Originally Posted by buffo View Post
    The link to the ILDA Technical standards page that MixedGas (Steve) posted above contains a .zip file that includes several test patterns. (Here's the direct link to the file.) You'll want to use the ILDA test pattern that is labeled 12K, also sometimes referred to as the 12/24K ILDA Test Pattern. In comparison, the 30K ILDA Test Pattern has an additional square completely outside of the main pattern that is much larger than even the normal outer square of the test pattern (to say nothing of the inner square where the circle resides). The whole thing is frankly a bit of a mess, and I think it just makes things more confusing. I would not recommend using that 30K pattern.
    Thank you for sharing the link. The ILDA Technical Standards use the ".ILD" file format, which I don't have a reader for. I did benefit from the link shared by Steve to the Home Built Laser Projector by ELM. [URL=http://elm-chan.org/works/vlp/report_e.html]http://elm-chan.org/works/vlp/report_e.html[/HTML].
    There, in the zip folder for the firmware that ELM wrote for the ATMega8515 microcontroller (note for future readers: this firmware is a .hex file and can only be loaded to a uc but can't be opened or edited), I found that they wrote a script in Perl to convert ILDA frames to CSV files.
    They also had the 12K, 18K, and 30K versions.
    Here is the link to the zip file Firmare pre-2006 version
    This was super useful to me, because my firmware is capable of reading CSV files like that. The 3 columns in the CSV are laser ON/OFF, the X and Y-axis positions (presumably in DAC units)
    The one thing missing on the CSV is the time stamp at which each command is sent.
    The values of the points are in the range [-2000,2000], which is +/- 0.6V for my DAC, so I may have to scale them to a reasonable value such as +/-10000 to represent a reasonable size image i.e. 45mmx45mm max
    I would like to share a picture of what the 12K frame looks like, and now your instructions about the 12 points on a circle make more sense to me (since I visually saw them)
    Click image for larger version. 

Name:	ilda_12k_points_xy.png 
Views:	1 
Size:	109.1 KB 
ID:	61580
    Click image for larger version. 

Name:	ilda_12k_time.png 
Views:	1 
Size:	180.8 KB 
ID:	61581
    I'm sure this was not a revelation to you. However, it was to me, and I'm sure to numerous others like me who do not know what's INSIDE the pattern.


    [QUOTE=buffo;365583]
    Another useful pattern is the LaserMedia Test Pattern. I like to use that one to double-check that the speeds of the X and Y galvo are matched, once I've gotten the tuning to look good on the ILDA test pattern. (The top right and bottom left diagonal lines are traced twice in opposite directions, so if the speeds of X and Y are different, you will see two lines for each of these diagonals, instead of just 1, because the speed difference will prevent them from overlapping exactly.)
    [\QUOTE]
    I will look for the point files or the frame for this test pattern and check that as well.

    [QUOTE]
    Here's a link to a very old thread I started long ago that discusses scanner tuning in great detail: https://www.photonlexicon.com/forums...-your-scanners There's so much good information in that thread that at one point I cleaned up the basic text of the tuning guide, added some pictures and extra comments, and posted the resulting tutorial as a .pdf file, which had been hosted on lasershowparts.com for many years and was considered by many to be a fairly comprehensive guide on how to tune a set of scanners. Alas, it seems that they've taken the file down, so I'll have to do some digging to see if I can find the original file. (We're taking about something I wrote 16 years ago, after all.)
    [\QUOTE]
    Thank you so much for sharing this thread. I did get my initial ideas from this post, in fact. I just did not have the pattern to test with. In my naivete, I used the function generator but used most if not all of the instructions in this thread.

    [QUOTE]
    Since you said that ALL of the pots have been adjusted, I think you'll want to first start by ensuring that those other pots are re-positioned to something close to their original factory settings. Again, I'm hoping that Steve will chime in with a suggestion on what would be an appropriate starting point. (And if we're lucky, he might have a procedure for dialing in those other pots to their ideal settings.)
    [\QUOTE]
    I did end up getting another board (with motors), and somehow setting the pots to the resistances on the new board resulted in very poor performance compared to what I've been able to tune with just the function generator (More explanation later).

    [QUOTE]
    While the idea of building your own DAC to display the ILDA test pattern sounds very cool, there is another option you may want to try... You haven't filled out your profile information, so people don't know where you are located. But if a member here on the forum happens to live close to you, it's likely that they'd be willing to meet up with you and bring their DAC so you could display the ILDA Test Pattern and tune your scanners right away. Worth a shot, anyway.
    [\QUOTE]
    Thank you for the encouragement! Before I take any credit, I did not build my own DAC, just used off-the-shelf components and put them together.
    I am in the MN Twin Cities area. It would be super awesome if there's someone out there with more experience and the right tools for this purpose.

    Now, for MixedGas / Steve's post:

    Quote Originally Posted by mixedgas
    This is a brief excerpt, and its highly modified so I don't post the full procedure, as that procedure is very much model specific
    Understood! Thank you so much for the detailed procedure.

    Quote Originally Posted by mixedgas
    Set the linearity pot to mid travel....when setting the scale factor. READING!
    These are the most important instructions I needed. I will follow up with the results from this method. The speed pots (gain, HFD, LFD) are straightforward for me to set so far following Adam's procedure, and I do believe I got quite a "good" tuning for them in terms of speed, overshoot/undershoot/ringing, and x-y speed match.
    The scale, linearity, and position are still unsolved, but I will try your me


    Quote Originally Posted by mixedgas
    Ground the inputs, set the offset to 0V at the motor coil HIGH side. Low side galvo coil goes to the current sense resistor. Monitor the currents to the board from your power supply rails if you can. One side should be higher by about 20-40 mA, and this is the drive to the position sensor LED. When galvos are at rest, and at Zero deflection, the difference between supply currents should be about equal. If they are not, something is badly wrong.
    I'm not sure what this means. Which inputs? My motors do not have exposed points that I can monitor with an oscilloscope.
    The controller board doesn't provide any Test Points either.
    Did you mean I should monitor the +/-15V power supply to the board?

    Quote Originally Posted by mixedgas
    If your having a good day, the board has a fuse or PTC protector by the current sense resistor. Pull it. ...So the initial startup requires great care and a quick hand on the power switch.
    Looks like I'm not having a good day because there is no fuse on the board.
    I also don't know the specs of the board or the motor, so I don't know what angle or Kpps it is capable of.
    So, I'm unable to tell what the max travel should be for the max voltage supplied.

    Quote Originally Posted by mixedgas
    Downrange you have a marked scale at a known distance from the GALVO. You would slowly increase the scale potentiometer to a known angle by scanning a 60 Hz pure sine wave till you hit your desired end point (See Pangolin Corp web site for a scan angle vs distance table)
    Noted.

    Quote Originally Posted by mixedgas
    The position scale sets the response of the rest of the loop, by changing the magnitude of the feedback signal. Position linearity corrects for errors in parts placement and tolerances. You tweek that on a 10x10 standard grid at the middle or very end of tuning. A cheap Galvo may have linearity but not scale. The problem is scale and servo gain tend to look the same in Laser when initially tuning an unknown board. But they do two different things.
    The board does have a variable scale as far as I can tell. For example, when provided with a square wave from the function generator, I can see the scale pot (or at the least the one I think is scale) will change the length of the side of the square.
    I did note that the gain pot changes the length as well, but not as aggressively as the scale pot. Moreover, for the square wave vs sawtooth input, the gain pot will decrease the rise time as well as add overshoot. So, I can tell which is which so far.
    Still interested in learning more about the linearity pot and its effects. They weren't visible to me. I have it set to the center at the moment.

    Quote Originally Posted by mixedgas
    Your coils should be 2-4 Ohms, and match each other. They should NOT short to the case.
    I did test these with a 500Hz square wave when "characterizing them" to find their 3dB bandwidth (it was 350Hz) as I alluded to in my original post.
    These particular motors have 3 wires going into them, which I'm assuming are the "coils". The resistance for the Y-axis motor (behaves as expected) are A-B: 7ohm, B-C: 3.5ohm, A-C: 3.8ohm. For the x-axis motor (the one with issues), they are A-B: 7.5, B-C: 3.8, A-C 4.0.
    I haven't checked these values in the new set.

    Quote Originally Posted by mixedgas
    This will dislodge the sensor flag on cheap galvos, as they do not have stops on the rotor.
    I think the mirrors and the flags both are fine. I did take a look at the inside. There are rubber stops on the flag side of the rotor.

    Quote Originally Posted by mixedgas
    Once you have a good square wave response, you end up DETUNING and RETUNING to match the mirror sizes if physically different,
    Yes, they are different. And yes, I followed the somewhat garbled version of the procedure for the speed tuning.

    Quote Originally Posted by mixedgas
    Note 5: Elm Chan has images of initial tuning done the "Hard Way", I'm one of many who helped him create a masterful design. He uses capacitive feedback, which is the other way.
    Thank you for sending me there. I did come across that tutorial in my search for tuning procedures. I did, in fact, use the square wave vs. sawtooth function procedure to tune the speed of my motors similar to this blog.
    There are pictures under the title "Adjustment" in this blog. For me, it was the visual rendering of the laser beam on a grid paper since I do not have access to the position sensor values directly like Elm Chan does.
    However, the other reason I wanted to thank you for this was because I did not "search every corner" of this blog. And, I came across the ILDA test pattern as a CSV file in their uploads.
    I will be using that for further tuning.

    Quote Originally Posted by mixedgas
    Note 6: A good way to set linearity is hook a high bandwidth true RMS voltmeter to the position test point and scan a centered, symmetrical grid, adjust potentiometer for lowest RMS reading. Expect to have to change the setting for best artistic impression after the technical score of RMS reading.
    Could you please elaborate on this one? I don't understand what you mean by "position test point", and "scan a centered, symmetrical grid".
    I have a true RMS voltmeter, and an oscilloscope. I just don't know what you mean by the above two phrases.


    Quote Originally Posted by mixedgas
    Note 7, Scan angle calibration chart in video background:
    Not sure how this was supposed to be helpful. I think it's their proprietary calibration chart, no?
    The manufacturer for my device would have one of their own.

    Quote Originally Posted by mixedgas
    no one in any galvo business model wants small customers tuning. Tends to lead to excessive warranty repairs. Besides, if you break them, another pair will be sold.
    I can certainly understand that. It does not fit their business model.
    I did contact the manufacturer, and they wanted me to send the entire device back to them for tuning.
    They would not replace the motor that I think is faulty, or provide troubleshooting help.
    Since the manufacturer is in China, I am unwilling to part with a device that I can still explore.

    Thank you both for your help.

    Here are some other updates:
    1. I ended up ordering another device, so my project still stays on the same timeline, but I really, really want to solve this enigma and learn to understand these little things.
    2. I first noted the resistances of the potentiometers of the new board, and adjusted the pots on the old board. However, that tuning was completely out of whack for the old system with a lot of overshoot and mismatch of both scale and speed in the XY axis.
    3. The square wave response of the new board/motor set had quite a bit of overshoot. Not sure why they tuned it to be so. I also have an alibaba/aliexpress galvo board/motor set which is 7x cheaper than the set I'm using, and it has a better response than this factory tuned fancy set.
    4. I then hooked up the new galvo board to the old motors, and I still got a pretty poor response. I have not tried hooking up the old galvo board to the new motors. I do not want to risk my project by doing so.
    5. I have designed and worked with servo feedback in DC motors, with a little bit of experience in electronics and embedded systems. I'm able to translate that to these systems.
    However, not having direct access to the outputs on many components e.g. the position sensor output, and no idea about the specs of the motors, I am in muddy waters. The procedure I'm undertaking is also toeing the line around warranty (though the device does not have warranty void seals to prevent user tampering so idk), and understandably, the manufacturer is unwilling to lend direct help.
    6. After getting the CSV file for the ILDA test pattern, I will try to implement that in code to test the problematic galvo set in the upcoming weeks.
    7. To clarify again, my bigger issue that I can't really identify whether it's physical or tuning-related, is that once I've tuned the motors, and I get a perfect square and circle (using the function generator), over the course of 30-45min, one corner of the square will start skewing outwards, and the scale on the x-axis will increase over time. And I really can't figure that out

    I really appreciate the detailed help I'm getting here.

    I look forward to learning more about the "linearity" and "scale" pots and if that has any relationship with the issue I mentioned in point 6.

  10. #10
    mixedgas's Avatar
    mixedgas is offline Creaky Old Award Winning Bastard Technologist
    Infinitus Excellentia Ion Laser Dominatus
    Join Date
    May 2007
    Location
    A lab with some dripping water on the floor.
    Posts
    10,016

    Default

    May I have a picture of the component sides of your amps?

    350 Hz 3 dB is a bit low,way low...

    Steve
    Qui habet Christos, habet Vitam!
    I should have rented the space under my name for advertising.
    When I still could have...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •