LinuxCNC Hardware 2024: Which PCs can be used?

LinuxCNC Logo

Even if LinuxCNC has pretty low system requirements, not every PC is suitable for controlling a machine. This article explains what else needs to be considered apart from the processor speed and which PCs are not suitable.

System requirements

The fairly low system requirements are as follows according to the Wiki:

  • 700 MHz x86 processor (1.2 GHz x86 processor recommended) or Raspberry Pi 4 or 5.
  • At least 512 MB RAM, for more complex GUIs at least 4 GB is recommended
  • 8 GB free hard disk space
  • Graphics card with at least 1024x768 possible resolution or onboard graphics driver
  • Internet connection (not absolutely required but highly recommended)

Processing speed - latency & jitter

If you look at forum posts about suitable PCs, the two terms latency and jitter are often mentioned.

Latency

In order for the system to run reliable, recurring tasks must be performed, for example the generation of steps for the motor driver. These tasks are time-critical because if, for example, the step generation stops for too long, the motor driver no longer receives any signals and the machine does not move as desired. This can lead to errors and even cause the machine to crash.

To ensure that these tasks are executed regularly, LinuxCNC has two main functions, also known as threads.

The servo-thread, which usually runs every millisecond, is mainly responsible for generating steps for motor controllers, the base-thread takes over all other less time-critical tasks. The base thread is usually only started every 25 milliseconds.

As a CPU core can only execute one task at a time, another process often has to be interrupted to start the threads, which costs time. This means that threads are sometimes started later than planned. This delay is called latency.

If one thread is started too late and the following one is started on schedule, the period between the threads is shorter than expected. The latency can therefore also become negative.

The latency is calculated as

Latency=TimebetweenthreadsScheduledtimebetweenthreadsLatency=Time between threads - Scheduled time between threads

Jitter

Inconsistent delays are even more critical than long delay times. This means that the thread might sometimes be started on schedule and sometimes with a long delay.

The maximum deviation from the planned period duration is called jitter. It therefore corresponds to the absolute value of the maximum delays that have occurred.

Example: a PC has a measured latency of min=20msmin=-20ms and max=15msmax=15ms, then the jitter corresponds to 20ms.

How much jitter is acceptable for LinuxCNC?

How much jitter a machine can still run reliably depends on the technology used. In the past, many motor drivers were controlled directly via the parallel port and the steps were generated with LinuxCNC. This method is called soft stepping.

Nowadays, there are many interface cards that generate the steps using an FPGA. These include the frequently used Mesa-Cards. In addition, motor drivers can sometimes be controlled directly via a bus system such as EtherCat. In this case, no step generation is necessary.

If soft stepping is used, consistent execution is of great importance. In order to generate steps reliably, the jitter should be below 30-50ms. The lower the value, the better.

If soft stepping is not used, the system is significantly less time-critical. The jitter should be less than 100ms for the system to function properly.

How can the jitter be tested?

To test the jitter on a PC, the "Latency Test Tool" can be used, which is automatically installed with LinuxCNC.

The tool is started with the following command via the command line:

latency-test <servo_period_us> <base_period_us>

Where instead of <servo_period_us> and <base_period_us> the desired times are specified in microseconds. These parameters can also be omitted, in which case the tool starts with the standard times of 1ms for the servo-thread and 25ms for the base-thread.

Latency Test Tool

The tool should then run for a few minutes or hours. To get the best results, the PC should be under load, i.e. you should open various windows, watch videos, etc. LinuxCNC should not be opened during the test however.

How can the jitter be improved?

If the test delivers unsatisfactory results, there are several options that can be tried out.

  • BIOS settings: In the BIOS of the PC, all energy-saving options should be deactivated, as well as unused hardware or other settings that affect the performance of the system
  • Graphics card: If an internal graphics chip is used, a graphics card might help
  • Different Linux distribution: Different kernels and distributions deliver different results. A change may solve the problem.

List of tested PCs

As PC manufacturers obviously do not test their products for LinuxCNC, the tests of other users must be used. These can be found in the LinuxCNC forum and are listed here in tabular form.

Reference is the number of the post with the test, so you can reach it with the URL

https://forum.linuxcnc.org/18-computer/39371-results-of-latency-test-list-of-computers-tested-for-use-with-linuxcnc#REFERENCE

directly if you replace REFERENCE with the corresponding number.

ReferenceSystemServo Max [uS]Servo Min [uS]Servo Jitter [uS]Base Max [uS]Base Min [uS]Base Jitter [uS]OSCPU | coresGPU
252004ThinkCentre M910Q-48,34548,30Debian GNU/Linux bookworm/sidCore(TM) i5-6500T | 4 cHD Graphics 530
207941Acer , Aspire 5740 {laptop}-44,444,344,40Linux Mi 19.3Core(TM) i3 CPU M 330 | 2cPark [Mobility Radeon HD 5430/5450/5470]
191209ASRock, To Be Filled By O.E.M.-21,821,821,8-2525,625,6Debian GNU/Linux 10 (buster)Iel(R) Celeron(R) CPU J3355UD {probably chipset gpu?}
248143ASRock, To Be Filled By O.E.M.-5,45,45,4-66,66,6Debian GNU/Linux 10 (buster)Iel(R) Celeron(R) CPU J3355 | 2 c
172788ASUS AT5MNI-93,7121121-57,259,659,6Debian GNU/Linux 10 (buster)Atom(TM) CPU D510 | 2cAtom Processor D4xx/D5xx/N4xx/N5xx
236824ASUSTeK COMPUTER INC., All Series-30,430,330,40Debian GNU/Linux 10 (buster)Core(TM) i7-4790K CPU | 4 cXeon E3-1200 v3/4th Gen
238144ASUSTeK Computer INC., Maximus Extreme-6,16,26,20Debian GNU/Linux 10 (buster)Core(TM)2 Quad CPU Q9550 | 4 cRV710 [Radeon HD 4350/4550]
287524ASUSTeK COMPUTER INC., PRIME J4005I-C-88,892920Debian GNU/Linux 12 (bookworm)Celeron(R) J4005 | 2 cGeminiLake [UHD Graphics 600]
240319ASUSTeK Computer INC., System Product Name-13,413,613,6-18,118,718,7Debian GNU/Linux 10 (buster)Quad-Core AMD Opteron(tm) Processor 1354RS780C [Radeon 3100]
272535AWOW, PC BOX-986,5915,1986,50Debian GNU/Linux 12 (bookworm)Celeron(R) CPU J3455 | 4cHD Graphics 500
240334BIOSTAR Group, A870U3-555-5,45,95,9Debian GNU/Linux 10 (buster)AMD Phenom(tm) II X6 1035T 6cRV710 [Radeon HD 4350/4550]
197489Dell Inc., OptiPlex 701018,620,220,20Debian GNU/Linux 10 (buster)Core(TM) i5-3470 | 1c {multicore disabled in bios}Xeon E3-1200 v2/3rd Gen
212460Dell Inc., OptiPlex 790-7183,683,60Debian GNU/Linux 10 (buster)Core(TM) i5-24002nd Generation Core Processor Family Iegrated Graphics Coroller
193389Dell Inc., OptiPlex 9010-75,774,375,70Debian GNU/Linux 10 (buster)Core(TM) i5-3570 | 4cXeon E3-1200 v2/3rd Gen
193787Dell Inc., OptiPlex 9020-38,243,543,50Debian GNU/Linux 10 (buster)Core(TM) i5-4670 | 4cXeon E3-1200 v3/4th Gen
193787Dell Inc., OptiPlex 9020-45,249,349,30Debian GNU/Linux 10 (buster)Core(TM) i5-4670 | 4cOland [Radeon HD 8570 / R7 240/340 OEM]
211211Dell Inc., OptiPlex 9020M {micro}-44,54244,50Linux Mi 19.3Core(TM) i5-4590T | 4cXeon E3-1200 v3/4th Gen
211401Dell Inc., OptiPlex 980-6,96,96,9-9,49,39,4Debian GNU/Linux 10 (buster)Core(TM) i5 CPU 650Core Processor Iegrated Graphics Coroller
236739Dell Inc., OptiPlex 980-10,110,210,2-14,621,821,8Debian GNU/Linux 10 (buster)Core(TM) i5 CPU 650 | 2 cCore Processor Iegrated Graphics Coroller
180536Dell Inc., Precision WorkStation T3500-21,120,721,1-2020,320,3Linux Mi 20Xeon(R) CPU W3565GF106GL [Quadro 2000]
179989ECS, BAT-I-57,764,364,30Linux Mi 20Celeron(R) CPU J1800Atom Processor Z36xxx/Z37xxx
184089ECS, BAT-I-64,282,882,80Linux Mi 20Celeron(R) CPU J1800 | 2cAtom Processor Z36xxx/Z37xxx
172802FUJITSU, ESPRIMO Q920-34,737,337,30Debian GNU/Linux 10 (buster)i7-4765T | 4cXeon E3-1200 v3/4th Gen
180684FUJITSU, ESPRIMO_D956-450,8448,6450,80Debian GNU/Linux 10 (buster)I7-6700 | 1c {?????}HD Graphics 530
222359FUJITSU, FUTRO S720-178,4214,4214,40Debian GNU/Linux 10 (buster)AMD GX-217GA SOC with Radeon(tm) HD GraphicsKabini [Radeon HD 8280E]
186419Gigabyte Technology Co., Ltd., B460MD3H-10,612,512,50Debian GNU/Linux 10 (buster)Peium(R) Gold G6400Advanced Micro Devices, Inc. [AMD/ATI]
172496Gigabyte Technology Co., Ltd., P35-DS4-23,623,323,6-24,6104104Debian GNU/Linux 9 (stretch)Core(TM)2 Quad | 4cCypress PRO [Radeon HD 5850]
190567Gigabyte Technology Co., Ltd., X570 AORUS ELITE-17,615,917,60Linux Mi 20Ryzen 5 3500X 6-CoreEllesmere [Radeon RX 470/480/570/570X/580/580X/590]
274288HARDKERNEL, ODROID-H2-89,589,989,90Debian GNU/Linux 12 (bookworm)Celeron(R) CPU J3455 | 4cGeminiLake [UHD Graphics 600]
186230Hewlett-Packard, HP Elite x2 1011 G1 Tablet-235,2260,9260,90Linux Mi 19.3Core(TM) M-5Y10cHD Graphics 5300
172695HP Compaq Elite 8300 SFF-1818,718,7-47,24949Debian GNU/Linux 10 (buster)I5-3570 | 4cXeon E3-1200 v2/3rd
179589HP Compaq Elite 8300 USDT-93,1105,7105,70Linux Mi 20i5-3470S | 4cXeon E3-1200 v2/3rd Gen
193142HP Compaq Pro 6300 SFF-37,324,537,30Linux Mi 20Core(TM) i7-3770 CPU @ 3.40GHz | 1c {?}Xeon E3-1200 v2/3rd Gen
206998HP t610 WW Thin Clie-34,334,834,80Linux Mi 19.3AMD G-T56N Processor | 2cWrestler [Radeon HD 6320]
233799Iel Corporation, NUC7i5BNH-83,786,486,40Debian GNU/Linux 10 (buster)Core(TM) i5-7260U | 1 cIel Corporation
179602Itautec S.A., Infoway-39,852,152,1-24,974,674,6Linux Mi 19.3Core(TM)2 Duo CPU E7500 | 1c?
179847Itautec S.A., Infoway-24,851,751,7-22,322,822,8Linux Mi 19.3Core(TM)2 Duo CPU E7500 | 1c?
224630ITX-ASRock880GXH-15,616,216,2-23,524,324,3Linux Mi 20.2Celeron(R) J4005 | 2 cUHD Graphics 605
181151K4-I5-4200U Aliexpress-60,368,468,40Debian GNU/Linux 10 (buster)i5-4200UHaswell-ULT
184367Lenovo 20EGS01900 Thinkpad W541-5654,5560Debian GNU/Linux 10 (buster)i7-4810MQ | 4cGK106GLM [Quadro K2100M] 4th Gen Core Processor Iegrated Graphics
180798LENOVO, 0674GEG {z61p}-878,5878,8878,80Linux Mi 19.3Core(TM)2 CPU T7200?
172205LENOVO, 10A8S1BX0N-7485850Linux Mi 19.3I5-4570 | 4cXeon E3-1200 v3/4th Gen
198736LENOVO, 10AAS3VA00 M93p-45,747,647,60Debian GNU/Linux 10 (buster)Core(TM) i5-4590T | 4cXeon E3-1200 v3/4th Gen
248552LENOVO, 10MQS36600 {M710q}-113,9106113,90Debian GNU/Linux 11 (bullseye)Core(TM) i5-6400T | 4 cHD Graphics 530
233326LENOVO, 10MR00xxxx {Thinkcere M710q Tiny i3-7100T}-117,3116,9117,30Debian GNU/Linux 11 (bullseye)Core(TM) i3-7100T | 2cHD Graphics 630
185724LENOVO, 20AV006BMZ {L540 laptop}-65,461,565,4-45,246,146,1Debian GNU/Linux 10 (buster)i5-4210M | 2c4th Gen Core Processor Iegrated Graphics
183735LENOVO, 2241BM7 {T500 laptop}-431,1428,8431,10Debian GNU/Linux 10 (buster)Core(TM)2 Duo CPU P8600 | 2cMobile 4 Series Chipset Iegrated Graphics Coroller
185849LENOVO, 2758MKG {W700DS Laptop}-408408,5408,50Debian GNU/Linux 10 (buster)Core(TM)2 Quad CPU Q9000G92GLM [Quadro FX 3700M]
185688LENOVO, 2774AP3 {x301 laptop}-523518,15230Debian GNU/Linux 10 (buster)Core(TM)2 Duo CPU U9400 | 2cMobile 4 Series Chipset Iegrated Graphics Coroller
185033LENOVO, 3254CTO {Edge 340 Laptop}-55,455,155,40Debian GNU/Linux 10 (buster)i5-3210M | 1c {Multi core off?}3rd Gen Core processor Graphics Coroller
184117LENOVO, 4157CTO {T530 laptop}-11,913,613,60Linux Mi 19.2Xeon(R) CPU W3550 | 4cGF106GL [Quadro 2000]
189570LENOVO, H215, Idea ceer-66,167670Debian GNU/Linux 10 (buster)AMD Athlon(tm) II X2 250RS780L [Radeon 3000]
187851OptiPlex 7010-82,969,682,90Debian GNU/Linux 10 (buster)I5-3570 | 4cXeon E3-1200 v2/3rd Gen
190397OptiPlex 7010 USFF-41,341,541,50Linux Mi 20i5-3470S | 4cXeon E3-1200 v2/3rd Gen
191033OptiPlex 780-37,835,537,8-31,832,832,8Linux Mi 19.3Core(TM)2 Duo CPU E8400 | 1c4 Series Chipset Iegrated Graphics Coroller
172308OptiPlex 980-19,317,819,3-19,917,619,9Debian GNU/Linux 10 (buster)i5 CPU 650 | 2cIerated
182603OptiPlex 980-11,914,214,2-18,419,419,4Debian GNU/Linux 10 (buster)I5 750 | 4cRV710 [Radeon HD 4550]
184500OptiPlex 980-11,911,711,9-16,11616,1Debian GNU/Linux 10 (buster)i7 CPU 870 | 4cRV710 [Radeon HD 4550]
184283OptiPlex FX160-396,4400,8400,80Debian GNU/Linux 10 (buster)Atom(TM) CPU 330771/671 PCIE VGA
184048RPi4 4GB-126,9146,9146,90Raspbian GNU/Linux 10 (buster)ARMv7 Processor rev 3
236754SAMSUNG ELECTRONICS CO., LTD., QX310/QX410/QX510/SF310/SF410/SF510-23,22424-24,65656Linux Mi 18.1Core(TM) i5 CPU M 480 | 2 cGT218M [GeForce 310M] | Core Processor Iegrated Graphics Coroller
185271Supermicro, Super Server-80,282,682,60Debian GNU/Linux 10 (buster)Peium(R) Gold G5420Intel Corporation