Which Mesa Card Should I Buy?

More
05 Feb 2024 21:18 - 08 Feb 2024 17:04 #292576 by spumco
“What Mesa card should I buy?”

1 - INTRODUCTION
The Linuxcnc (LCNC) forum has frequent posts from new users seeking help selecting a Mesa Electronics’ card.  In some cases the question is fairly specific to a particular card’s function and these are typically addressed by experienced users, LCNC developers, or even Mesa representatives.

All too often, however, it appears that the questioner may only have a vague idea about how the whole LCNC-Mesa ‘thing’ works.  They are confused about how LCNC connects to Mesa cards, what the various Mesa cards do, and how different Mesa cards connect to each other (or don't).

If the reader fits in to the second group, this is the guide they will want to read while coming to grips with the LCNC & Mesa universe...

Please keep in mind that this guide is not:
    • A comparison of Mesa vs. other hardware which performs similar functions
    • An installation, configuration, or troubleshooting guide
    • A recommendation for
        ◦ a particular card or connection method
        ◦ analog vs. step & direction vs. serial vs. something else
        ◦ stepper vs servo
    • A comprehensive or evergreen list of LCNC-compatible Mesa cards

CONTENTS
    1. Introduction
    2. Short (TLDR) version
    3. Background & Mesa Basics
    4. FPGA Cards
    5. Daughter Cards
    6. Selection Process - Drive Signals
    7. Selection Process - IO & Other Considerations
    8. Selection Process - Putting it all together & Mesa card chart
    9. Examples
Last edit: 08 Feb 2024 17:04 by spumco. Reason: REV3
The following user(s) said Thank You: tommylight, nwallace, Buks

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

More
05 Feb 2024 21:19 - 08 Feb 2024 01:45 #292577 by spumco
2 - SHORT VERSION (TLDR)

Too impatient to read?  The bare minimum hardware you need to easily connect LCNC to the outside world using Mesa cards is:
    • An FPGA ‘main’ card
    • Screw terminal connections for drives and IO (depending on selection, these may be on the FPGA card or a daughter card)
    • Power supply for the FPGA card

That’s it; no network switch or other ‘stuff’ required.  Below are just a couple of examples out of the numerous Mesa options:

For simple stepper machine
    • You will need one step & direction ethernet FPGA main card with onboard IO
        ◦ Example - 7i96S
            ▪ 5 step/dir axes
            ▪ 11 inputs
            ▪ 6 outputs
            ▪ 1 analog spindle output
            ▪ 1 encoder input
            ▪ 1 Smart Serial port
            ▪ 1 25-pin expansion port

For analog servo machine
    • You will need one analog ethernet FPGA card with onboard screw terminal IO
        ◦ Example - 7i97T
            ▪ 6 +/-10v analog axes
            ▪ 6 encoder inputs
            ▪ 16 inputs
            ▪ 6 outputs
            ▪ 1 Smart Serial port
            ▪ 1 25-pin expansion port
OR
    • You will need one ethernet FPGA card with no screw terminal drive outputs or IO
        ◦ Example - 7i92TH
            ▪ 2x26-pin header
      AND
    • You will also need one daughter card with analog outputs & IO with a connector that matches the FPGA card
        ◦ Example - 7i77
            ▪ DB25 input (connects to 7i92TH 26-pin header with adapter cable)
            ▪ 6 +/-10v analog axes
            ▪ 6 encoder inputs
            ▪ 32 inputs
            ▪ 16 outputs
            ▪ 1 Smart Serial port
            ▪ 1 DB25 to 26-pin adapter cable

Do yourself a favor and go read the rest of this guide.
Last edit: 08 Feb 2024 01:45 by spumco. Reason: REV2
The following user(s) said Thank You: tommylight

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

More
05 Feb 2024 21:20 - 08 Feb 2024 01:46 #292578 by spumco
LONG VERSION

3- BACKGROUND
Linuxcnc was originally designed to connect the outside world to the computer via the PC’s parallel port.  Over time, parallel ports have become less available on PC’s, and, perhaps more importantly, parallel ports are rather limited in both speed and the quantity of signals to/from external hardware they can handle.  One solution to these problems is to use an interface card from Mesa Electronics instead of (or in addition to) the parallel port.

Mesa cards are not motion controllers, nor do they buffer commands from the PC as with Mach3 & ESS boards.  At the risk of oversimplifying, Mesa cards are a 'system' of extremely capable and fast breakout boards for LCNC with onboard FPGA chips that take care of high-speed timing and signal management.

As a newcomer to LCNC, you probably do not need to know the exact details of how they work, but you do need to know what they can (and can’t) do, and how all the different connection options fit together with LCNC and your CNC machine’s hardware.  The number of options available from Mesa can be daunting.

BASICS
To use Mesa ‘stuff’ with LCNC you will need, at minimum, an ‘FPGA’ card.  FPGA cards can be thought of as the 'main' card as it is the FPGA chip which communicates with LCNC, passing all signals to/from the FPGA card's onboard IO or daughter board IO.

Depending on which FPGA card and external hardware you use, you may also need (or want) to connect one or more daughter cards to the FPGA card.

So the basic architecture looks like this:

 
Attachments:
Last edit: 08 Feb 2024 01:46 by spumco. Reason: REV2
The following user(s) said Thank You: tommylight

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

More
05 Feb 2024 21:22 - 08 Feb 2024 01:48 #292579 by spumco
4 - FPGA CARDS

PC CONNECTION
Mesa offers FPGA main cards with a variety of different PC connection types.  First decision is which connection method is used as this will depend on your computer hardware:

    • Ethernet
        ◦ Ethernet cable from the LCNC computer (PC or Raspberry Pi) to the Mesa FPGA card
        ◦ No additional hardware is required
        ◦ Network switches will interfere with the Mesa ethernet connection.  If the host computer only has one ethernet port, you must use a different port for internet connections (i.e. USB WiFi)
    • SPI
        ◦ Raspberry Pi plugs directly in to a Mesa motherboard via the Pi’s GPIO pins
            ▪ 7C80 & 7C81 cards
            ▪ NOTE - rpi 5 is not supported for direct plug-in (SPI) as of 2/2024
    • Plug-N-Go kits
        ◦ A Mesa card is plugged in to a PC’s internal PCI or PCIE slot, and a second card, external to the PC, is plugged in to the PCI card.
        ◦ The second card is connected to outside hardware (drives, IO components, etc.)

There are other host computer-to-Mesa connection methods available, but those are less frequently selected by novice LCNC users and will not be discussed in this guide.

ONBOARD IO
Some FPGA cards have onboard IO and/or drive outputs, and some don't.  As an example, compare a 7i76EU with a 7i92TH.  They are both FPGA main cards and both do approximately the same thing, but the 7i76EU has onboard IO connectors and the 7i92TH doesn’t

The onboard IO type is an ‘all-in-one’ arrangement with screw terminal connections for drives as well as analog & digital inputs and outputs.  This type also has one (or two) expansion connectors for use with daughter cards.

The other type of FPGA card has no onboard drive/IO screw terminal connections, but it does have connectors for use with daughter cards.  Examples of this type are the 7i80DB or 7i92TH.

Plug-N-Go kits are, essentially, a ‘no-onboard IO’ FPGA card coupled with an external drive and/or IO daughter card which has screw terminals.

As far as the novice LCNC user is concerned, there is no performance difference between an ‘all-in-one’ FPGA card and an equivalent no-IO FPGA card combined with suitable daughter card(s).

Which type of card to select is primarily dependent on which, if any, daughter cards are desired, as well as packaging/mounting restrictions.  A very large ‘all-in-one’ card, such as a 7i95T, may be harder to fit in a tight enclosure than a 7i92TH with remote-mounted daughter cards.

On the other hand, if you have the space an all-in-one FPGA card can be tidy as there are no inter-card cables or multiple mounts to deal with.

EXPANSION PORTS
FPGA cards can also be categorized by which expansion port type is used to connect daughter cards:

    • 'All-in-one' FPGA cards have one or two 26-pin expansion connectors.
    • No onboard IO FPGA cards may have
        ◦ Two (or more) 26-pin connectors, or
        ◦ Two (or more) DB25 connectors, or
        ◦ A combination of 26-pin and DB25, or
        ◦ Two (or more) 50-pin IDC connectors

The type of expansion port provided by an FPGA main card is very important to understand because while a DB25 daughter card can be adapted to a 26-pin FPGA port with a special cable, 50-pin daughter cards cannot be plugged in to DB25/26-pin connectors (and vice-versa).

Simplified, an FPGA’s expansion port(s) must be compatible with the daughter card(s) connection type.

 
Attachments:
Last edit: 08 Feb 2024 01:48 by spumco.
The following user(s) said Thank You: tommylight

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

More
06 Feb 2024 13:49 - 08 Feb 2024 01:49 #292651 by spumco
5 - DAUGHTER CARDS
Mesa daughter cards plug in to the FPGA main card and provide a variety of capabilities.  The connection port types mentioned above determine the capabilities of the daughter card to a large extent:
      
    • IDC 50-pin header (Anything I/O daughter cards)
    • DB25/IDC 26-pin header
    • Smart Serial

50-PIN CARDS
50-pin daughter cards plug in to FPGA 'main' cards and provide a variety of capabilities.  These tend to be used for high-speed functions (step & dir outputs, encoder inputs), low-speed functions (general purpose IO), as well as act as gateways for additional daughter cards.  The 50-pin connection provides a bigger 'pipeline' for signals when compared to DB25 daughter cards, thus 50-pin daughter cards tend to have more pins or features than DB25 cards.

DB25 CARDS
DB25 daughter cards also plug in to certain FPGA 'main' cards and can provide similar capabilities to 50-pin cards.  However, the DB25 cards, having fewer pins, have fewer inputs/outputs per card than the 50-pin cards.  DB25 daughter cards can also act as gateways for expansion.

SMART SERIAL CARDS
Smart Serial (sserial) daughter cards are connected to FPGA main cards and/or to 50-pin/DB25 daughter cards via an RS-422 connection port and provide general IO capabilities.  The sserial connection is somewhat slower than the other types of daughter card connections, so high-speed functions like encoder inputs or step & dir outputs are not available on sserial cards.  Sserial cards are typically used for general purpose IO, like relays, limit switches, drive in/out signals, operator console controls, etc.

The sserial RS-422 daughter cards use an RJ45 (ethernet) connector, but the serial communications protocol between the daughter card and the FPGA (or 50/DB25 daughter card) is not 'ethernet'.

The physical connection can be made using an ethernet patch cable with one RJ45 connector cut off.  The RJ45 end plugs in to the sserial card, and the conductors at the cut end are terminated at an RS-422 port on the FPGA or 50-pin/DB25 daughter card.

One sserial daughter card can be plugged in to each RS-422 port, but they can't be daisy-chained together.  Nor can a network switch be used to add more sserial daughter cards.  You must have additional RS-422 ports available on the FPGA or other daughter cards to add more sserial cards.

In addition to the one or two RS-422 ports found on most FPGA or 50P/DB25 daughter cards, there are a couple of daughter cards dedicated to acting as sserial gateways.  These provide additional sserial ports: up to eight sserial daughter cards can be plugged in to each daughter card, resulting in a rather large amount of IO capability.

For an extreme example:
    • One 7i80HDT (FPGA card) can accept three 50-pin daughter cards
    • One 7i44 50-pin daughter card can connect eight 7iA0 sserial IO card
    • One 7iA0 sserial card has 48 inputs and 24 outputs
    • Using only two of the three 50-pin connectors on the 7i80HDT
        ◦ 2/ea 7i44
        ◦ 16/ea 7iA0...
    • 768 inputs and 394 outputs (!)

 
Last edit: 08 Feb 2024 01:49 by spumco. Reason: REV2

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

More
06 Feb 2024 13:50 - 08 Feb 2024 01:50 #292652 by spumco
6 - DRIVE COMMAND SIGNAL TYPE

Typical CNC machines require some type of motor control is required to move joints/axes.  Whether they are servos or steppers (closed-loop or open), the motors need a drive to actually cause movement.

The drive will be commanded by LCNC using some type of signal.  The command signal types most frequently used for steppers & servos are:
      
    • Step & direction
    • PWM
    • Analog (+/-10v)

Retrofitting a CNC machine will, hopefully, include re-using the existing drives.  This saves money and the original motors & drives were presumably engineered properly for the machine.  These existing, perhaps older, OEM drives tend to use analog command signals, although PWM is sometimes used.

Some newer servo drives, and most stepper motor drives, use step & direction command signals.

Building a new CNC machine means the integrator (you) can select which type of drive is to be used, including the command signal type.

Infrequently, a combination of drive signal types is required for a CNC machine build.  Perhaps the user has some surplus analog drives, but also has a step & direction drive for a 4th axis.  For these cases multiple Mesa cards will likely be required.

Mesa documentation refers to ‘stepgens’, which can be translated to mean ‘step and direction signal generator.’  Each stepgen on a card can control one axis/joint motor drive.  So ‘5 stepgens’ means 5 independent drives can be controlled.

For PWM signals, the Mesa stepgens can be converted to PWM signal generators using modified firmware.  How this is done is not important for this guide, but if you need 3 stepgens and 2 PWM outputs, this can be accomplished with a 5 (or more) stepgen FPGA card.

Analog command signals cannot be created/converted from stepgens; the card hardware is different.  If your drive requires an analog signal you must use an analog-out card.

Once the required drive command signal is identified, count up the number of drives - current and future - required for all joints/axes.  Example:
    • Stepper-driven gantry router
        ◦ 4 motors/drives (X, Y1, Y2, Z) - at least 4 stepgens are required
    • 2-axis lathe with analog servos plus a spindle servo
        ◦ 3 motors/drives - at least 3 analog drive outputs are required
Last edit: 08 Feb 2024 01:50 by spumco. Reason: REV2

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

More
06 Feb 2024 13:53 - 08 Feb 2024 01:51 #292653 by spumco
7 - IO QUANTITY & TYPE

Once the command signal type is determined, the next step is to make a list of all inputs & outputs (IO) required or desired.  Include all sensors, switches, buttons, relays, etc.; all hardware which needs to signal or be triggered by LCNC should be on the list.
      
    • Inputs to LCNC
        ◦ Voltage supplied (or required) by component
        ◦ Current/amps consumed/supplied by component
        ◦ Analog inputs?  i.e. potentiometer, pressure transducer, etc.
    • Outputs from LCNC
        ◦ Does the component sink or source voltage? Or either?
        ◦ What voltage?
        ◦ Current/amps consumed/supplied by component

Are there lots of IO or just a few?  Are most of the IO for an operator control panel, or lots of relays to drive auxiliary functions (coolant pumps, lube pumps, lights, air cylinder valves, etc.)?  Do your drives require an enable signal?

Note that many newer, but not all, Mesa cards can be configured for both sinking and sourcing inputs & outputs.

Answering the questions above will help you form an idea of how many and what type of IO you need.

ADDITIONAL CONSIDERATIONS
Beyond axis drive command signals and general IO, you should consider the following questions:
    • Spindle - how do you plan to control the spindle(s)?
        ◦ On/off relays with manual speed control?
        ◦ 0-10v speed control?
        ◦ PWM?
        ◦ Analog or Step-dir servo?
    • Encoders - do you plan to add linear encoders for closed-loop feedback to LCNC?
        ◦ Do you have 'dumb' analog servo drives and LCNC will close the loop?
        ◦ Do you need/want a spindle encoder?
    • Operator console - do you plan to add/build a feature-rich (i.e. complicated) operator station with physical controls?  These can eat up IO quickly with lots of buttons, switches, and lights
    • Plasma - not specifically detailed in this guide, but the THCAD series of frequency to voltage cards are widely used for plasma arc sensing.  Additional research on which FPGA cards are most recommended for use with the THCAD would be prudent.
    • Expansion - do you think you might want any/all of the above in the future? Some Mesa FPGA cards are more expandable than others, depending on what it is you want to add in the future.

 
Last edit: 08 Feb 2024 01:51 by spumco. Reason: REV2

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

More
06 Feb 2024 13:56 - 08 Feb 2024 01:52 #292656 by spumco
8 - PUTTING IT ALL TOGETHER

To review:
    • Determine the host connection type, based on your computer
        ◦ Ethernet
        ◦ Plug-N-Go
        ◦ Direct plug-in (RPii)
    • Determine your drive input signal type and quantity
        ◦ Step-dir or PWM
        ◦ Analog
    • Determine your IO type & quantity requirements
        ◦ Digital in/out
        ◦ Analog in/out
        ◦ Sink/source (or both)
        ◦ Voltage level(s)
    • Determine additional features, immediate or future
        ◦ FPGA expansion capability
        ◦ Encoder inputs
        ◦ Spindle control & feedback
    • Determine physical mounting restrictions
        ◦ Do you have room for a 'big' board?
        ◦ Is your operator console remote from the main enclosure?

Having sorted out all of the above:
    • Required - select an FPGA card
    • Optional (depends on FPGA) - select compatible daughter card(s)
    • Optional - select sserial daughter cards
    • Recommended - double check that your intended cards will do what you want
        ◦ Count the number of drives supported, compare to your list
        ◦ Count the number & type of IO, compare to your list
        ◦ Count the expansion ports and see if you have enough ports to plug everything together

Below is a sample chart of common Mesa cards, reasonably accurate as of the thread posting date.  Double check the values in the chart and use it to narrow down your selection(s).

 
Attachments:
Last edit: 08 Feb 2024 01:52 by spumco. Reason: REV2

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

More
06 Feb 2024 14:12 - 08 Feb 2024 01:54 #292658 by spumco
9 - EXAMPLE WORK-LISTS

1. Manual lathe to CNC conversion
    • 2 axes, closed-loop stepper motors
    • 2 drive alarm signals
    • 2 home switches, no additional limits
    • 1 spindle motor driven by VFD
    • 1 spindle encoder for threading
    • Operator station
        ◦ 2 MPGs (one for each axis)
        ◦ 1 axis selector switch (2 positions)
        ◦ 1 jog increment switch (3 positions)
        ◦ 1 spindle override potentiometer
        ◦ 1 feed override potentiometer
        ◦ 1 external emergency stop
        ◦ 2 buttons (start & feed-hold)
    • Result:
        ◦ Drives - 2 S&D
        ◦ IO
            ▪ 10/ea digital in
            ▪ 2 MPG
            ▪ 2 analog in
            ▪ 1 analog out
            ▪ 2 digital out (spindle FWD/REV)
    • Mesa card suggestion:
        ◦ 7i96S + 7i73 for the operator station


2. Self-built CNC router
    • 4 axes, step-dir servo motors
    • 4 drive alarms
    • 4 drive enable
    • 4 home switches, no additional limits
    • 1 spindle motor driven by VFD
    • Operator station
        ◦ 1 MPGs
        ◦ 1 axis selector switch (2 positions)
        ◦ 1 jog increment switch (3 positions)
        ◦ 1 feed override encoder w/reset switch
        ◦ 1 external emergency stop
        ◦ 8 buttons
            ▪ jog-continous POS/NEG XYZ
            ▪ start & feed hold
    • Result:
        ◦ Drives - 4 S&D
        ◦ IO
            ▪ 8 digital in to main enclosure
            ▪ 13 digital in to operator station
            ▪ 4 MPG
            ▪ 1 analog out
            ▪ 6 digital out
    • Mesa card suggestion:
        ◦ 7i96S + 7i73 using 4x8 matrix for the operator station


Good luck, and please let me know if there are any errors.
-Spumco
Last edit: 08 Feb 2024 01:54 by spumco. Reason: REV2

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

More
06 Feb 2024 16:12 - 06 Feb 2024 17:01 #292665 by jmelson

Agreed on all counts.
Also, including Pico, i keep forgetting about them, sorry Jon :(
We can do the same for Pico in a separate topic, if Jon is OK with it.
-

 
Yes, we (Pico Systems) have parallel port connected motion interface boards that have been used with LinuxCNC since the beginning.  I do have a "getting started" entry in the Driver Boards section of the forum, called Pico Systems FAQ.  It gives a rundown on what each of our systems do and what else is required.  As for parallel ports, we do sell PCIe parallel port cards for machines that don't have it built-in.
Jon
 

Last edit: 06 Feb 2024 17:01 by jmelson.
The following user(s) said Thank You: tommylight, spumco

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

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