Best PC Hardware (Q4 2016) for a new build

More
13 Dec 2016 02:38 #84010 by FDP
I am new to LinuxCNC builds and RTLinux, but not Linux, system building, or CNC (have built 3x Mach3 boxes in the past for other projects and many Linux boxes for engineering jobs).

I'd like to try to purchase hardware for a LinuxCNC build before the end of the year, I am are looking to use the box for testing custom controller routines on a machine, so being able to execute lots of python code on the side is important. I am looking for information about the following:

  • What CPU class/feasures are the best to target for RTLinux/LinuxCNC?
  • I couldn't get a quick answer on whether raw CPU speed is the main criteria for a fast RTLinux box. Does anyone know if I should be targeting multiprocessor, multicore, or clock speed? User emcPT recommended the
G3460 which is a Haswell chip that is reasonably low power - I noticed it only has two cores, but a relatively high clock speed.
Does the Haswell power architecture pose any issues for RTLinux/LinuxCNC?
Is there any advantage to Xeon over the Core line for RTLinux/LinuxCNC? I noticed that many RTLinux test builds seem to use Xeon, but this is possibly just a side effect of researchers going to Xeon because they don't know better/have the budget.

  • What motherboards/chipsets are good bets?
  • This H97M-E35H97M-E35 came recommended from user emcPT here . This is a Broadwell H97H97 based board, so it lags by one generation, which isn't always a bad thing. As far as I can tell there is no way to take advantage of OpenCL or other computer architectures using RTLinux, so the H series chipsets make much more sense than the Z series since GPUs are irrelevant (overclocking also seems like adding unnecessary complexity for LinuxCNC).

    User taloot mentionedmentioned some things to look out for when optimizing latency, and seemed to suggest that memory performance was very important here, so perhaps the X series would be better than the H, offering faster memory performance (DDR4 vs 3) and a better CPU selection, however.


  • I/O
  • It looks like USB is generally ignored on LinuxCNC (Can I not attach a mach pendant like the iMach )? Tormach uses USB to talk to their el-cheapo little height gauge in PathPilot, so I am assuming there is some workaround here, is HIDCOMP the right place to be looking?

    I want to do realtime communication with other systems (microcontrollers, displays, pendants, etc). Does anyone have recommendations for I/O cards and pipelines for this kind of work, or should I just be trying to use something like a MESA controller to do this? Off the top of my head I could do a serial line to a microcontroller to talk in realtime with sensors va i2c or SPI.

    I'd also like to have ethernet links with other pieces of hardware. Is this a problem in LinuxCNC? E.g. I'd like to mirror the current machine parameters to a server. I found this , any other resources?

  • Controllers
  • I am looking at talking to the ClearPath motors initially via step and direct. The big difference between LinuxCNC and Mach3/4 seems to be that I can throw out my smoothstepper/Gecko, am I getting this right? So basically I could roll something via a microcontroller, buy a MESA board, or even control motors directly from the PC? Any recommendations? I'm looking for as many blocks per second as possible first, then budget second.

  • Are there any hardware/manufacturers to avoid?
  • Personally I prefer MSI, Gigabyte, Asus or Intel reference, Are any of these a bad fit for LinuxCNC? I have not used AMD products since the late 1990's. With Mach controllers I knew to avoid the USB smoothsteppers, as the ethernet ones were far superior. Not applicable here, but the kind of info I'm looking for!

    The following user(s) said Thank You: tivoi

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

    More
    13 Dec 2016 13:49 #84034 by Todd Zuercher
    CPU
    No there is generally not any advantage in a Xeon vs Core. In fact Atoms and Celerons can perform quite respectably, stressing the fact that latency is usually more important that raw horsepower.
    If you want to use use an ethernet connection for your machine interface, a more powerful cpu is usually a better choice for the required Preempt-RT kernel, but for software stepping latency is key and the RTAI is usually the better choice.

    USB is actually fine for ui stuff, (keyboard, mouse, pendant), just not good for controlling motors or other time critical machine functions. It can also be used for controlling a spindle VFD.

    All of the manufacturers you mention make good boards that are very usable. But that doesn't mean that they don't have duds that should be avoided. Really the only machines I've had trouble with were some low end mass produced computers from large name PC manufacturers that had very basic bios options and could not disable all of the power saving stuff, to get good latency.
    The following user(s) said Thank You: tivoi, FDP

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

    More
    13 Dec 2016 13:59 #84036 by andypugh

    What CPU class/feasures are the best to target for RTLinux/LinuxCNC?

    My choices for the systems I have built recently have been based on different criteria to yours. I have been looking for low-profile, fanless and 12V powered.

    LinuxCNC itself has really very modest requirements. The accuracy of the realtime thread timing does not seem to map particularly well to any other processor features.

    It looks like USB is generally ignored on LinuxCNC (Can I not attach a mach pendant like the iMach )?

    You can probably use that. Though it might take some work to get the LCD to work.
    There is good support for the XHC USB pendants that eBay is awash with, and any HID device can be integrated to HAL with hal_input.
    LinuxCNC does not attempt to do real-time motion control with USB, but it does support USB keyboards, mice, touchscreens and more specialised input devices.

    That said, if you can interface the pendant to the realtime layer the results are likely to be better.

    I want to do realtime communication with other systems (microcontrollers, displays, pendants, etc). Does anyone have recommendations for I/O cards and pipelines for this kind of work, or should I just be trying to use something like a MESA controller to do this? Off the top of my head I could do a serial line to a microcontroller to talk in realtime with sensors va i2c or SPI.

    The options here are possibly too numerous to go in to without more details.
    I did once set up a realtime serial link between an Arduino and the UART module on a Mesa card. There is, somewhere out there, a bitbanged SPI interface, or again there is a Mesa module for SPI.
    Writing HAL drivers for low-level hardware is not all that hard. I have managed to do a couple of them without examples of the actual hardware.

    I'd also like to have ethernet links with other pieces of hardware. Is this a problem in LinuxCNC?

    No, that is fine. If doing it in realtime then you might be limited to the PREEMPT-RT kernels, unless you want to integrate RT-Net into RTAI and the LinuxCNC RTAPI

    [

    I am looking at talking to the ClearPath motors initially via step and direct. The big difference between LinuxCNC and Mach3/4 seems to be that I can throw out my smoothstepper/Gecko, am I getting this right?

    You may well still need something to replace the Gecko drives, but I think that the power elctronics are in the motors with Clearpaths?

    I'm looking for as many blocks per second as possible first, then budget second.

    If you mean G-code blocks per second then I doubt if this will ever be an issue regardless of the PC.
    The following user(s) said Thank You: FDP

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

    More
    14 Dec 2016 05:20 - 14 Dec 2016 05:20 #84073 by FDP
    Thanks for the feedback. Based on this I am looking at the following configuration:

    Skylake i3-6300T 35W 3.3GHz $162USD (has 4MB L3)
    ASUS Z170 Pro Gaming/AURA Motherboard (ATX) $165USD
    Either 1-2x Crucial MTA8ATF51264AZ-2G1A1 (4G SS MICRON 4QA77D9RCQ 13-13-13-33 1.2V DDR4 @ 2133) $60-$120USD
    or 1x Kingston HX421C14FB/8 (8G DS N/A Heat-Sink Package 14-14-14-35 1.2V DDR4 @ 2133) $130USD

    Motherboard is definitely overkill, but I didn't see anything as cost effective in the Z100 series.
    Last edit: 14 Dec 2016 05:20 by FDP.

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

    More
    14 Dec 2016 07:03 #84076 by ArcEye

    Motherboard is definitely overkill, but I didn't see anything as cost effective in the Z100 series.


    If money is no object, then do whatever pleases you, but Linuxcnc won't run any better.

    All you need is something like a J1900 board with integrated processor (£75) and 4GB standard RAM (£35)

    You may well have problems using a 6th gen Skylake, my i7 laptop had to be massaged quite a lot to run happily with linux, including the fact that the NIC was not supported until kernel 4.4 and even then was problematic.
    The distro is way older than that.

    It is common in the windoze world to throw processing power and memory at it to try to get the awful bloatware to run half decently, but you really don't need to do that here.

    regards

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

    More
    14 Dec 2016 07:39 - 14 Dec 2016 07:49 #84077 by FDP
    I'm more leaning on my experience. I have limited experience in the embedded realm and many builds around commodity hardware and server hardware, the latter of which is very expensive.

    I can target a Haswell part, the main reason I favored Skylake was that the parts might be available longer since it is a current gen. product. The CPU I listed in my original post, for example, is mostly available used now. It looks like from a memory standpoint there isn't really an advantage to Skylake, and my main concern with a brand new chipset/processor was kernel support. I'm also interested in having PCIe ports to play with, and most of the J1900 boards seem to only have a single available slot.

    I get your point, LinuxCNC is lean and I don't need to sweat hardware too much. Never liked Celeron though I can't argue the pricepoint, under $400 for base system seems acceptable for my budget. I guess I can get down to 1/3 of that if I go J1900 though.
    Last edit: 14 Dec 2016 07:49 by FDP. Reason: Expanded logic of embedded boards vs. consumer

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

    More
    14 Dec 2016 08:43 - 14 Dec 2016 08:44 #84079 by ArcEye
    If you search the forum for J1900, you will find the precise board that PCW tested and recommends, think it might be Gigabyte.

    Make sure you choose one with a parallel port, or spend the extra cash you have on a Mesa 5i25 and 7i76 combo and latency becomes irrelevant.

    There are lots of low cost alternatives out there.
    My most up to date workshop machine is a GA-H81M-DS2 motherboard with dual core Pentium, which cost under £150 with a case and SSD.
    It runs rt-preempt, with a 5i25/7i76 combo which cost a lot more than the computer B)

    regards
    Last edit: 14 Dec 2016 08:44 by ArcEye.
    The following user(s) said Thank You: FDP

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

    More
    14 Dec 2016 12:33 #84085 by rodw
    After scouring the forum and the Linux world, I've just built a system using a J1900 gigabyte Brix attached via ethernet to a Mesa 7i76e. The real problem I faced was lack of graphics driver support in Wheezy so I've moved to Mint 17.3 and patched the kernel with the Peemptive core and compiled LCNC from scratch. You need a 64 bit PC to use the preemptive kernel for the mesa ethernet card.

    As PCW states I found latency is terrible with the built in wifi card ( > 300000) so remove it and use a USB wifi dongle to talk to the world. PCW also had good results with a Zotac with similar specs. Latency is not an issue with the Mesa card and somewhere PCW said the Zotac was up around 120 usec which he was comfortable with. My Brix is around 60000.

    I think the USFF PCs are a good solution if you are happy to use Mesa. My NEMA23 steppers are running faster and accellerating quicker than I ever expectedso I am very happy.
    The following user(s) said Thank You: FDP

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

    More
    15 Dec 2016 02:09 - 15 Dec 2016 02:33 #84135 by FDP
    Thanks @rodq and @ArcEye,
    I'll weigh either a Celeron, Pentium Haswell, or Core Skylate solution. I'm not convinced of the benefit of going with very old hardware for cost reasons. I do think the TDP of the J1900 is very appealing, and that would be my primary consideration looking there vs. the other two options. Skylake seems like a bit of a crapshoot, but then again the hardware could be recycled for some other use if it didn't work for LinuxCNC. One problem I am seeing with the J1900 solutions is they seem to be going out of stock/EOL, for example the GA-J1900N-D2H, which is the most appealing board that I could easily find.

    On the control solution side, Teknic just officially announced their ClearPath SC motors. I knew they were coming, but didn't know how exactly they would be controlled. They will take direct software control over RS232 (www.teknic.com/accessories-guide-sc/#sc_hub). This will likely require some work, but this promises to drastically reduce cost/complexity for this type of setup. A 4 axis controller board is $50, and up to four boards can be daisy-chained from a single RS232 port.

    The question is how difficult it will be to plug the Teknic libraries into Linux CNC.
    Last edit: 15 Dec 2016 02:33 by FDP. Reason: More specific with J1900 issues MOBO availability.

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

    More
    15 Dec 2016 02:34 #84137 by tommylight
    Just checked the Teknic whatever, and i see no reason for going back in time and using RS232.
    Then again that card will simplify things ONLY if using their drives.
    Back to Linuxcnc, it can do things through rs232, but i doubt it will do actual real time control over it.

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

    Time to create page: 0.164 seconds
    Powered by Kunena Forum