Which Mesa Card Should I Buy?

More
2 years 8 months ago - 2 years 8 months ago #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: 2 years 8 months ago by spumco. Reason: REV3
The following user(s) said Thank You: tommylight, nwallace, behai, trooper

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

More
2 years 8 months ago - 2 years 8 months ago #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: 2 years 8 months ago by spumco. Reason: REV2
The following user(s) said Thank You: tommylight, behai, MariusSorteberg

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

More
2 years 8 months ago - 2 years 8 months ago #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:

 
Last edit: 2 years 8 months ago by spumco. Reason: REV2
The following user(s) said Thank You: tommylight, behai

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

More
2 years 8 months ago - 2 years 8 months ago #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.

 
Last edit: 2 years 8 months ago by spumco.
The following user(s) said Thank You: tommylight, FlorianMueller, behai

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

More
2 years 8 months ago - 2 years 8 months ago #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: 2 years 8 months ago by spumco. Reason: REV2
The following user(s) said Thank You: behai, trooper

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

More
2 years 8 months ago - 2 years 8 months ago #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: 2 years 8 months ago by spumco. Reason: REV2
The following user(s) said Thank You: behai

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

Moderators: PCW, jmelson
Time to create page: 0.207 seconds
Powered by Kunena Forum