Selecting driver boards for 6-axis PUMA arm

More
27 Feb 2023 23:04 #265524 by dsz123
Howdy folks -

I've got an existing PUMA arm that I had working via custom software running on an old laptop and some basic RS232-controlled motor boards (with PID loops running on those motor control boards). Even when it was in working condition, there was a speed limitation for the control loop because the motor driver boards I used had fairly low baud rates. The system has been in storage for quite some time, and I'm interested in making some upgrades to get it up and running again. (In case you're interested, some details about what I've done previously here: dsz123.net/Projects/RobotArm/)

So my thought is (obviously) to replace my old Mac laptop and custom software with LinuxCNC and probably replace the motor driver boards as well. I have a relatively recent Intel NUC with high-speed Ethernet that could host the LinuxCNC instance (I have read about how to set up the power options in the BIOS and use the correct network drivers to ensure reasonably latency).

The motors in the arm are brushed DC motors that run at 12V. Three max out at about 3.5 A, the remaining three are closer to 2.7 A. They all have nice glass encoders (at least 200 counts per revolution) that run at 5V and have the usual A/B signal as well as an index signal. The encoders are mounted to the motor shafts directly (rather than the joints or some intermediate shaft).

Not worried about the kinematics model at the moment (I think there's a PUMA model built-in), but am trying to wrap my head around the various I/O & driver options. It seems like the Mesa FPGA boards are pretty reasonably priced and quite powerful, but there are quite a few options.

From what I've gathered, one option would be to use three 7i40-LV drivers (two axes per driver) for the motors and encoders, but then I'd need some other interface board to connect to the PC, right? Is there a supported Mesa board that could connect to three separate 7i40-LV driver boards?

Another option seems to be the (new, not quite in stock but that's okay) 7i95T board , which has an Ethernet interface and is set up for 6 axes already. But that board isn't actually going to drive the motors directly, right? It says in the description it can work with servo motor drives (rather than stepper motor drives), but I can't see anything in the manual about how that would operate. What kind of motor drive would I need for this kind of configuration?

Is there some other configuration I'm missing?

Many thanks in advance for any advice & info!

Best,
-Dave Z.

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

More
28 Feb 2023 03:39 #265530 by PCW
Is 3.5A the peak current or continuous?

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

More
28 Feb 2023 14:52 #265566 by dsz123
Peak, I believe. A good bit lower most of the time, but I don't have an exact number, unfortunately.

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

More
03 Mar 2023 00:18 #265750 by andypugh
The 5i24 would be a good fit to drive 3 x 7i40.
You can connect 2 x 7i40 to each 50 pin header, so there are connections available for other cards too if you need more IO.
The following user(s) said Thank You: dsz123

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

More
04 Mar 2023 05:51 #265822 by dsz123
Thanks so much, Andy.

In the 7i40 manual, I had missed the notes that effectively say each board only uses half the pins on a 50-pin cable, and you can select which half. Hence the ability to use two cards on one 50-pin bus.

I like the 5i24, especially since they are in stock at the moment, but unfortunately, the PC I have doesn't have PCI expansion slots available (it's a small form-factor Intel NUC from Logic Supply). I was hoping to use Ethernet instead. Given that, it seems like the 7i80HD or 7i93 cards are my options. Does that sound about right? The 7i80 cards have three 50-pin connectors, and the 7i93 has two, which should suffice. (As you suggest, having extra I/O will indeed come in handy, since there are brakes on three motors, etc.)

Again, thanks for your guidance!
-Dave
 

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

More
04 Mar 2023 11:14 #265833 by andypugh
2 x HD50 sounds a bit tight. in theory you could use the unused half of one connector for GPIO, but I think that it would be simpler and more standard to have a whole connector for that, so 7i80 would be my suggestion. However it appears to be out of stock at mesa and mesaus.

If you are in Europe, though, eusurplus has stock: eusurplus.com/index.php?route=product/pr...t_id=103&search=7i80
The following user(s) said Thank You: dsz123

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

More
04 Mar 2023 16:44 #265854 by PCW
We will have limited qtys of 7I80HDTs (New FPGA version of the 7I80) this coming week.
The following user(s) said Thank You: dsz123

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

More
04 Mar 2023 18:59 #265864 by dsz123
Thanks to you both! I've got some (hopefully working!) 7I40-LVs on order from eBay, and it seems like there were a couple 7I80HDTs in stock so I bought one of those as well.

Really appreciate the timely and helpful replies here to get me going!

-Dave

 

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

More
16 Mar 2023 18:05 #266852 by dsz123
So I received my Mesa boards and have them powered and connected to each other and the PC:
  • The 7i80HDT has 5V power, and is connected to the PC via ethernet. Address is all sorted, and ping times are reasonable.
  • Three 7i40-LVs are connected to the 7i80HDT via 50-pin connectors (one 50-pin cable has two boards, another has just one). They are getting power and seem fine.
I have mesaflash (downloaded and built the most recent version, 3.4.7, since the 7i80HDT is so new) working - it can communicate to and interrogate the 7i80HDT.

A few follow-up questions:
  1. How can I tell what bitfile / configuration is loaded on the 7i80HDT? The manual for that board lists quite a few "Supplied Configurations" (page 16, including: SVST8_4IM2, SVST4_8, etc.). But I can't find a configuration name like that listed in the output of any of the mesaflash queries.
  2. Does anyone know where to find those configuration files for the 7i80HDT? I downloaded the support software for that board from the mesanet.com website, but there are only two .bin files in that Zip archive, neither of which corresponds to the list on page 16 of the manual.
  3. Do I actually need a custom configuration (.bin) for my setup anyway? As I understand it, I'll want at 6 axes of servos (with PWM output each) and 6 encoder inputs, and then a bunch of GPIO. Can I use the SVST8_4IM2 configuration, assuming I find the .bin file somewhere? Or does it need to know that I'm using the 7i40-LVs and require further customization?
Once I get that sorted, I think I understand how to go about creating/modifying the .ini and .hal files required by LinuxCNC (or I'll ask in the appropriate forum).

Thanks in advance for any further advice / help y'all can provide!
-Dave

In case it helps, here's the output from the mesaflash --readhmid command:
Warning: Spoiler!

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

More
16 Mar 2023 18:38 #266853 by PCW
I would use 7i80hdt_sv12d.bin
The following user(s) said Thank You: dsz123

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

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