Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
03 Sep 2020 13:13 #180542
by freemoore
Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm. was created by freemoore
Hi all,
I’ve been reading and tinkering around this for a while but can’t tell if I’m barking up the wrong tree, or not far enough up the right one. Lots of questions, I hope someone can help me fill the gaps in my understanding here…any and all help appreciated.
I have a Fanuc S420F robot arm from 1991 with 6 red cap servo motors with pulse coders (details below) but no control box; the goal is to get it moving and usable for the least cost, driven by Linuxcnc as I’m familiar enough with it (use it for lathe, mill, router and plasma).
I have a Mesa 5i24-16 and a 7i52s as interface cards but not sure of correct firmware.
I have three ODrives (v3.6) with 2x 56V/120A channels per board. I know the Fanuc motors are nearer 150V, but my understanding is that I’ll be able to use the ODrives and just lose some max velocity. They take step/dir and PWM input plus some others. They require single-ended quadrature encoder input - I’ve had one motor turning by attaching a £15 encoder and using the ODrive’s native protocol over USB, so I have proof of concept that the ODrives will move the redcaps.
If I understand, ODrive can do commutation using the differential encoder inputs so I can bypass the Fanuc C1C2C4C8 signal, is that correct?
So. I’d prefer to use the built-in encoders, and (if possible) keep the absolute-position features. I think the system might look like this:
Motor enable signal switches relays to release DC brakes. 6v battery bank powers pulse coder position memory.
I believe the pulse coders need a REQ signal sent so they’ll output encoder count to last known position? How is that signal sent? Am I right in thinking that the Mesa cards/Linuxcnc will read that as encoder real-time input moving quickly to a specific place? Can a LCNC component send that signal, and how?
Encoders AA-BB-ZZ- differential signals are wired to Mesa terminal blocks and show up as HAL pins …encoder.0.position sort of thing…What I think I need to do to complete the control loop is to then have the Mesa card duplicate that encoder signal and output it as single-ended to the ODrive so it can do servo commutation and control.
Is this the right place to branch the signal, or do I need a separate hardware splitter/converter to send differential signals to the Mesa card and single-ended to the ODrives? I’ve seen the Pico cards but it’s a chunk of extra cash I’d rather not spend if I can do it with the hardware I already have.
Both hostmot2 and the BLDC component seem to have some provision for dealing with Fanuc encoders but I’m not sure if I need that, which to use, or where to start.
Also, will this be doable with the 5i24-7i52 combination, which bitfile/firmware do I need, or will I need a custom firmware (will I need to learn to write one? eek…). Is there a better Mesa daughtercard or FPGA/daughtercard combination for this task?
I know there’s a version of this where I attach the £15 encoders to each axis motor, drive the ODrives directly with them and have the whole system effectively working as though it were 6 open-loop steppers. I’d rather use the Fanuc encoders - better quality, higher resolution, already built in, better noise resistance, and if I can get the absolute positioning bit working that would be great. I’ve recently been wrestling with closed-loop steppers on a plasma table and it had some quite big spasms before I got the shielding and grounding sorted: not so bad on a 3-axis cartesian table, but somewhat terrifying on a 1.5ton 6-DOF arm - I’m happy to sacrifice some top speed while I get used to how this thing works! I understand that the STMBL drives, when available, are likely my best option for a full-speed upgrade for this, but I’d like to get started.
Phew. I know it’s a lot of questions, I feel like I’m missing some foundational knowledge here but would really appreciate it if anyone can help me out. Many thanks in advance!
Andy
Motors:
3x Model 10 / A06B-0501-B751
stall torque / amps 12Nm/11A
8 pole / 3 phase / 2000rpm
144V
2x Model 20 / A06B-0352-B731
stall torque / amps 23Nm/20A
8 pole / 3 phase / 2000rpm
141V
1x Model 20S / A06B-0502-B751
stall torque / amps 23Nm/20A
8 pole / 3 phase / 2000rpm
146V
Pulse coders:
all Fanuc ABS Pulse Coder A860 - 0320 - T111, 2000P
Power supply:
4x daisy-chained 12v server PSUs outputting 48V up to 200A
I’ve been reading and tinkering around this for a while but can’t tell if I’m barking up the wrong tree, or not far enough up the right one. Lots of questions, I hope someone can help me fill the gaps in my understanding here…any and all help appreciated.
I have a Fanuc S420F robot arm from 1991 with 6 red cap servo motors with pulse coders (details below) but no control box; the goal is to get it moving and usable for the least cost, driven by Linuxcnc as I’m familiar enough with it (use it for lathe, mill, router and plasma).
I have a Mesa 5i24-16 and a 7i52s as interface cards but not sure of correct firmware.
I have three ODrives (v3.6) with 2x 56V/120A channels per board. I know the Fanuc motors are nearer 150V, but my understanding is that I’ll be able to use the ODrives and just lose some max velocity. They take step/dir and PWM input plus some others. They require single-ended quadrature encoder input - I’ve had one motor turning by attaching a £15 encoder and using the ODrive’s native protocol over USB, so I have proof of concept that the ODrives will move the redcaps.
If I understand, ODrive can do commutation using the differential encoder inputs so I can bypass the Fanuc C1C2C4C8 signal, is that correct?
So. I’d prefer to use the built-in encoders, and (if possible) keep the absolute-position features. I think the system might look like this:
Motor enable signal switches relays to release DC brakes. 6v battery bank powers pulse coder position memory.
I believe the pulse coders need a REQ signal sent so they’ll output encoder count to last known position? How is that signal sent? Am I right in thinking that the Mesa cards/Linuxcnc will read that as encoder real-time input moving quickly to a specific place? Can a LCNC component send that signal, and how?
Encoders AA-BB-ZZ- differential signals are wired to Mesa terminal blocks and show up as HAL pins …encoder.0.position sort of thing…What I think I need to do to complete the control loop is to then have the Mesa card duplicate that encoder signal and output it as single-ended to the ODrive so it can do servo commutation and control.
Is this the right place to branch the signal, or do I need a separate hardware splitter/converter to send differential signals to the Mesa card and single-ended to the ODrives? I’ve seen the Pico cards but it’s a chunk of extra cash I’d rather not spend if I can do it with the hardware I already have.
Both hostmot2 and the BLDC component seem to have some provision for dealing with Fanuc encoders but I’m not sure if I need that, which to use, or where to start.
Also, will this be doable with the 5i24-7i52 combination, which bitfile/firmware do I need, or will I need a custom firmware (will I need to learn to write one? eek…). Is there a better Mesa daughtercard or FPGA/daughtercard combination for this task?
I know there’s a version of this where I attach the £15 encoders to each axis motor, drive the ODrives directly with them and have the whole system effectively working as though it were 6 open-loop steppers. I’d rather use the Fanuc encoders - better quality, higher resolution, already built in, better noise resistance, and if I can get the absolute positioning bit working that would be great. I’ve recently been wrestling with closed-loop steppers on a plasma table and it had some quite big spasms before I got the shielding and grounding sorted: not so bad on a 3-axis cartesian table, but somewhat terrifying on a 1.5ton 6-DOF arm - I’m happy to sacrifice some top speed while I get used to how this thing works! I understand that the STMBL drives, when available, are likely my best option for a full-speed upgrade for this, but I’d like to get started.
Phew. I know it’s a lot of questions, I feel like I’m missing some foundational knowledge here but would really appreciate it if anyone can help me out. Many thanks in advance!
Andy
Motors:
3x Model 10 / A06B-0501-B751
stall torque / amps 12Nm/11A
8 pole / 3 phase / 2000rpm
144V
2x Model 20 / A06B-0352-B731
stall torque / amps 23Nm/20A
8 pole / 3 phase / 2000rpm
141V
1x Model 20S / A06B-0502-B751
stall torque / amps 23Nm/20A
8 pole / 3 phase / 2000rpm
146V
Pulse coders:
all Fanuc ABS Pulse Coder A860 - 0320 - T111, 2000P
Power supply:
4x daisy-chained 12v server PSUs outputting 48V up to 200A
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19209
- Thank you received: 6438
03 Sep 2020 20:41 #180585
by tommylight
Replied by tommylight on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
ODrive might not be the best choice for anything CNC as last time i checked last year they were very slow at returning to the position after moving them. Things might have changed.
The other issue i see is the voltage for the drives/motors as 50V might prove enough for what you need, but then again, might not have enough torque to even start moving if there is a lot of power required from them.
But since you already have them, wire the drive to the motor and use the ODrive software to move them and try to get a feel for how much power/torque they can produce with that voltage.
As for Fanuc encoders, from the numbering i would guess standard incremental ones, but not sure so try to find a datasheet for them. If they are proprietary ones that makes things more pricey/complicated, but there is always the possibility of replacing them with normal ones.
The other issue i see is the voltage for the drives/motors as 50V might prove enough for what you need, but then again, might not have enough torque to even start moving if there is a lot of power required from them.
But since you already have them, wire the drive to the motor and use the ODrive software to move them and try to get a feel for how much power/torque they can produce with that voltage.
As for Fanuc encoders, from the numbering i would guess standard incremental ones, but not sure so try to find a datasheet for them. If they are proprietary ones that makes things more pricey/complicated, but there is always the possibility of replacing them with normal ones.
The following user(s) said Thank You: freemoore
Please Log in or Create an account to join the conversation.
17 Sep 2020 22:35 #182585
by Roiki
Replied by Roiki on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
You're not going to be running those with odrive. It's meant for small hobby motors, not large industrial servos. Those motors require drives in the kW range.
It's possible they could work with 220v drives so buying cheap chinese drives and new encoders could work with linuxcnc
Though it's far from ideal.
It's possible they could work with 220v drives so buying cheap chinese drives and new encoders could work with linuxcnc
Though it's far from ideal.
Please Log in or Create an account to join the conversation.
18 Jan 2021 14:13 - 18 Jan 2021 14:16 #195795
by freemoore
Replied by freemoore on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
I have now had some success with the ODrive and the robot arm.
The TI AM26C32 Quadruple Differential Line Receiver (www.ti.com/product/AM26C32) were about £17 for a pack of 10 from RS in the UK. I’m not so good with electronics so may be missing obvious filtering capacitors or something, but wired straight through on a breadboard according to the data sheet, these seem to be working perfectly well to translate the Fanuc A860-0320-T111 pulse coder’s quadrature output to single ended. I have a nice clear pulse stream visible on the scope for A, B and Z channels and the ODrive now reads them OK. I am not reading or using Fanuc's commutation pins (C1, C2, C4, C8) from the pulse coder, as the ODrive is capable of using the quadrature encoder for commutation. Currently I don't have absolute position but I believe that's coming to ODrive firmware at some point (I'm not up to coding standard for writing that myself).
ODrive seems to expect values within certain ranges for phase resistance and inductance. I measured phase resistance at 5.4Ohms for the Fanuc Model 10 motors and 25 Ohms for the Model 20 motors and input those values to the ODrive before running the motor full calibration sequence, increased the calibration voltage to 24V (half my power supply voltage) and calibration is now successful.
Tuning the ODrives to get the current and velocity settings right has just taken lots of trial and error, and it’s not dialled in quite yet. I’m still getting the some overvoltage errors (I think from inertia back-driving the motors) but the Model 20 motor is bolted to the robot frame and moves the W axis (the heaviest one/shoulder joint) through its full range of motion and back. Top speed is limited to around 7 revs/sec, thanks to Wetmelon on the ODrive forums for showing me that that is the expected value - 1/3rd designed system voltage gives about 1/3rd designed top speed.
In terms of CNC control, when tuned, they seem to be capable of moving the motors to the commanded position perfectly well; snappy and responsive when the settings are all tuned in and running OK. With forced cooling they’re good for somewhere around 80A at 56V which puts them comfortable into the kW range.
The TI AM26C32 Quadruple Differential Line Receiver (www.ti.com/product/AM26C32) were about £17 for a pack of 10 from RS in the UK. I’m not so good with electronics so may be missing obvious filtering capacitors or something, but wired straight through on a breadboard according to the data sheet, these seem to be working perfectly well to translate the Fanuc A860-0320-T111 pulse coder’s quadrature output to single ended. I have a nice clear pulse stream visible on the scope for A, B and Z channels and the ODrive now reads them OK. I am not reading or using Fanuc's commutation pins (C1, C2, C4, C8) from the pulse coder, as the ODrive is capable of using the quadrature encoder for commutation. Currently I don't have absolute position but I believe that's coming to ODrive firmware at some point (I'm not up to coding standard for writing that myself).
ODrive seems to expect values within certain ranges for phase resistance and inductance. I measured phase resistance at 5.4Ohms for the Fanuc Model 10 motors and 25 Ohms for the Model 20 motors and input those values to the ODrive before running the motor full calibration sequence, increased the calibration voltage to 24V (half my power supply voltage) and calibration is now successful.
Tuning the ODrives to get the current and velocity settings right has just taken lots of trial and error, and it’s not dialled in quite yet. I’m still getting the some overvoltage errors (I think from inertia back-driving the motors) but the Model 20 motor is bolted to the robot frame and moves the W axis (the heaviest one/shoulder joint) through its full range of motion and back. Top speed is limited to around 7 revs/sec, thanks to Wetmelon on the ODrive forums for showing me that that is the expected value - 1/3rd designed system voltage gives about 1/3rd designed top speed.
In terms of CNC control, when tuned, they seem to be capable of moving the motors to the commanded position perfectly well; snappy and responsive when the settings are all tuned in and running OK. With forced cooling they’re good for somewhere around 80A at 56V which puts them comfortable into the kW range.
Last edit: 18 Jan 2021 14:16 by freemoore. Reason: extra info about commutation
Please Log in or Create an account to join the conversation.
19 Jan 2021 13:03 #195888
by andypugh
Replied by andypugh on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
If you end up giving up on Odrive, this would be a good application for the STMBL drives if they existed.
There is a hardware redesign for STMBL which does not depend on unobtanium parts, so supply might improve, but I would suspect it will take many more months.
Just something to bear in mind for later. STMBL can use the C1C2C3C4 _and_ the quadrature together. It works up to 300V too.
There is a hardware redesign for STMBL which does not depend on unobtanium parts, so supply might improve, but I would suspect it will take many more months.
Just something to bear in mind for later. STMBL can use the C1C2C3C4 _and_ the quadrature together. It works up to 300V too.
Please Log in or Create an account to join the conversation.
19 Jan 2021 13:14 #195889
by freemoore
Replied by freemoore on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
yes, I've been following the STMBL project for quite a while now with exactly this in mind - thinking I'd get used to using the Fanuc at low speed with the ODrives and then if all went well, upgrade to STMBL when it's possible. I struggle to follow the stream of info on gitter so I gather that some folk have working drives and that there's no release date for the redesign, but I really can't tell what's the best course of action.
Do you have working stmbls, or is anyone supplying them (to individuals in Cambridgeshire)? Is it a mistake to try acquiring and building the current version? I appreciate that I may be asking the wrong person, but I gather you're trying them out, and any input appreciated. I'm happy to order boards and components, make cases, solder parts etc. if that's the way.
Looking forward to trying them out when it's possible, it seems to be a great project.
Do you have working stmbls, or is anyone supplying them (to individuals in Cambridgeshire)? Is it a mistake to try acquiring and building the current version? I appreciate that I may be asking the wrong person, but I gather you're trying them out, and any input appreciated. I'm happy to order boards and components, make cases, solder parts etc. if that's the way.
Looking forward to trying them out when it's possible, it seems to be a great project.
Please Log in or Create an account to join the conversation.
19 Jan 2021 13:40 #195891
by andypugh
Replied by andypugh on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
DMSci is having a batch made right now. I don't know if it is too late to increase the order size.
I have 5 working STMBLs but I want to keep them.
I have 5 working STMBLs but I want to keep them.
Please Log in or Create an account to join the conversation.
19 Jan 2021 14:33 - 19 Jan 2021 14:34 #195895
by Roiki
Are the new stmbl designs on github? Or is there other place for them.
Replied by Roiki on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
If you end up giving up on Odrive, this would be a good application for the STMBL drives if they existed.
There is a hardware redesign for STMBL which does not depend on unobtanium parts, so supply might improve, but I would suspect it will take many more months.
Just something to bear in mind for later. STMBL can use the C1C2C3C4 _and_ the quadrature together. It works up to 300V too.
Are the new stmbl designs on github? Or is there other place for them.
Last edit: 19 Jan 2021 14:34 by Roiki.
Please Log in or Create an account to join the conversation.
19 Jan 2021 14:44 #195897
by andypugh
Replied by andypugh on topic Mesa 5i24 - 7i52S, ODrives and a Fanuc S420F robot arm.
I think that they are keeping the new design private until it is safe to make.
Please Log in or Create an account to join the conversation.
Time to create page: 0.085 seconds