LinuxCNC support for XY2-100 interface using xy2mod and hostmot2 firmware

More
27 Aug 2020 23:36 #179755 by Bari
What do you need to know? It's open loop with one analog out for X and another for the Y axis motor. You might just need to adjust scaling since the 7i33 is +- 10V.

Please Log in or Create an account to join the conversation.

More
28 Aug 2020 10:54 #179804 by vre
Mine galvos are cambridge technology and have feedback sensor at the back.
Are from an old synrad engraving galvo scanner.
What drivers you use that accept analog input from mesa to drive galvos ?
I suppose these drives get the feedback from the galvos.
servo thread time? Also what kinematics and cam ?

Please Log in or Create an account to join the conversation.

More
28 Aug 2020 14:52 #179843 by Bari
I order galvo heads complete with motors, frame, amps and lens in either analog input or XY2-100.

There are off the shelf galvo amps with either analog or XY2-100 input but you'll have some tuning to do to get them to behave with the accuracy of a complete assembly.

Building galvo amps from scratch is another project all together. Just for an idea: hackaday.com/2018/02/15/laser-galvo-cont...icrocontrollers-dac/
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
28 Aug 2020 20:12 - 28 Aug 2020 20:14 #179875 by vre
probably and mine scan head has inside the analog amps
but must figure out first the pins of analog input -10+10v
In next post i will upload shots if someone can help me with that.
What kinematis you use? trivial ? and what is the servo thread time? also which cam software ?
Last edit: 28 Aug 2020 20:14 by vre.

Please Log in or Create an account to join the conversation.

More
28 Aug 2020 20:28 #179877 by Bari
Yes, trivial kinematics.

I run the servo loop as fast as the board combo can run. Older analog servos only run at a few hundred points per second and not at full scale.

We have MasterCAM and NX. There are several low cost and open source CAM applications out there. I've even used the Inkscape plug-ins and www.scorchworks.com/index.html

Please Log in or Create an account to join the conversation.

More
03 Sep 2020 10:32 #180513 by tstaroveski
Thank you for your feedback.
If I had a choice, I would have ordered analog galvo head and used MESA analog interface as well. However, for this project I didn't have much choice.

Anyway the 7I96 is on it's way. I will try to use it with the new hostmot2 firmware and report back as soon as I start experimenting with it.

Please Log in or Create an account to join the conversation.

More
03 Sep 2020 16:24 #180559 by Bari
I will likely be using the XY2-100 from this point on since the cost of these heads has dropped dramatically over the past few months.

Please Log in or Create an account to join the conversation.

More
15 Sep 2020 16:29 #182243 by tstaroveski
Just a quick report,

I managed to get it working and can definitely confirm that XY2-100 is working with LinuxCNC 2.9 / latest hostmot2! Very special thanks to PCW for all his help.

7i96 produces very stable 2MHZ clock, 100kHz sync, as well as x/y motor signals needed to control the galvo head.
Here is a picture of my testbed:


I made two simple tests in order to investigate the behavior of the galvo interface.



In the first test (7i96-xy2mod-test_circle_pos.hal), sine/cosine signals have been fed to the galvo controller directly as the position reference signals (hm2_7i96.0.xy2mod.00.posx-cmd/hm2_7i96.0.xy2mod.00.posy-cmd). This is much simpler compared to the example configuration provided by PCW in his reply . Results were not so great as the mirrors maintain their previous positions until the new reference position is sent (7i96-xy2mod-test_circle_pos.jpg). It was also not possible to get a nice non-distorded circle at siggen frequencies above 15Hz.

File Attachment:

File Name: 7i96-xy2mo..._pos.hal
File Size:2 KB





In the second test, sine/cosine signals have first been fed to the PID controllers, whose outputs have than been fed to the galvo controller as velocity references (hm2_7i96.0.xy2mod.00.velx-cmd/hm2_7i96.0.xy2mod.00.vely-cmd). PID gains where manually tuned to get minimal following errors. This approach yielded much better results. I was able to get almost perfect circle at siggen frequencies even above 30 HZ.

File Attachment:

File Name: 7i96-xy2mo..._vel.hal
File Size:2 KB



The only modification that needed to be made the PCW's example (hm2-pidstepper-master-pexy100.hal from 7i96_xy.zip) was to replace the line
setp hm2_[HOSTMOT2](BOARD).0.xy2mod.timer-number 1
with:
setp hm2_7i96.0.xy2mod.read-timer-number 1
setp hm2_7i96.0.xy2mod.write-timer-number 1

Regards,
T
Attachments:
The following user(s) said Thank You: Bari, tommylight, Aciera

Please Log in or Create an account to join the conversation.

More
16 Sep 2020 19:22 - 16 Sep 2020 19:26 #182457 by PCW
Yes, its expected that velocity mode will be used, since this will result in constant velocity
(linear) interpolation between waypoints. This interpolation runs at the serial update rate (100 KHz)
Actually you can go a step further and have parabolic interpolation by connecting the acceleration pins,
but I don't know if LinuxCNCs acceleration values are properly synchronized.

The separation of read and write times is to allow the write time to be less that a full cycle late
as you have now (by using a separate DPLL timer for write with some positive offset)

Note that if you leave the hm2_7i96.0.xy2mod.write-timer-number pin unset, the writes will happen
as soon as the 7I96 receives the write packet (therefore with minimum delay but more jitter)
This may be a better compromise
Last edit: 16 Sep 2020 19:26 by PCW.

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.226 seconds
Powered by Kunena Forum