@@ -32,8 +32,6 @@ However, software step pulses also have some disadvantages:
3232- loads the CPU
3333
3434
35-
36-
3735[[sec:latency-tests]]
3836== Latency Tests(((Latency Tests)))
3937
@@ -55,16 +53,16 @@ and run the following command:
5553latency-test
5654----
5755
58- This will start the latency test with a base-thread period of 25uS and a
59- servo-thread period of 1mS . The period times may be specified on the command
56+ This will start the latency test with a base-thread period of 25 µs and a
57+ servo-thread period of 1 ms . The period times may be specified on the command
6058line:
6159
6260----
6361latency-test 50000 1000000
6462----
6563
6664This will start the latency test with a base-thread period of 50uS and a
67- servo-thread period of 1mS .
65+ servo-thread period of 1 ms .
6866
6967For available options, on the command line enter:
7068
@@ -93,18 +91,18 @@ You should run the test for at least several minutes; sometimes
9391the worst case latency doesn't happen very often, or only happens
9492when you do some particular action. For instance, one Intel
9593motherboard worked pretty well most of the time, but every 64
96- seconds it had a very bad 300 us latency. Fortunately that was
97- fixable, see https://wiki.linuxcnc.org/cgi-bin/wiki.pl?FixingSMIIssues
94+ seconds it had a very bad 300 µs latency. Fortunately that was
95+ fixable, see https://wiki.linuxcnc.org/cgi-bin/wiki.pl?FixingSMIIssues .
9896
9997So, what do the results mean? If your Max Jitter number is less
10098than about 15-20 microseconds (15000-20000 nanoseconds), the
101- computer should give very nice results with software stepping. If
102- the max latency is more like 30-50 microseconds, you can still
99+ computer should give very nice results with software stepping.
100+ If the max latency is more like 30-50 microseconds, you can still
103101get good results, but your maximum step rate might be a little
104102disappointing, especially if you use microstepping or have very
105- fine pitch leadscrews. If the numbers are 100 us or more (100,000
106- nanoseconds), then the PC is not a good candidate for software
107- stepping. Numbers over 1 millisecond (1,000,000 nanoseconds ) mean
103+ fine pitch leadscrews. If the numbers are 100 µs or more,
104+ i.e. >= 100,000 nanoseconds (ns ), then the PC is not a good candidate for software
105+ stepping. Numbers over 1 millisecond (1,000,000 ns ) mean
108106the PC is not a good candidate for LinuxCNC, regardless of whether you
109107use software stepping or not.
110108
@@ -117,8 +115,9 @@ LinuxCNC does not require bleeding edge hardware.
117115For more information on stepper tuning see the
118116<<cha:stepper-tuning,Stepper Tuning>> Chapter.
119117
120- *Additional command line tools are available for examining latency
121- when LinuxCNC is not running.*
118+ [TIP]
119+ Additional command line tools are available for examining latency
120+ when LinuxCNC is not running.
122121
123122=== Latency Plot
124123
@@ -134,9 +133,9 @@ Usage:
134133 latency-plot --hal [Options]
135134
136135Options:
137- --base nS (base thread interval, default: 25000)
138- --servo nS (servo thread interval, default: 1000000)
139- --time mS (report interval, default: 1000)
136+ --base ns (base thread interval in nanoseconds , default: 25000)
137+ --servo ns (servo thread interval in nanoseconds , default: 1000000)
138+ --time ms (report interval in milliseconds , default: 1000)
140139 --relative (relative clock time (default))
141140 --actual (actual clock time)
142141----
@@ -147,7 +146,7 @@ image::../config/images/latency-plot.png["latency-plot Window"]
147146
148147=== Latency Histogram
149148
150- latency-histogram displays a histogram of latency (jitter) for
149+ The application latency-histogram displays a histogram of latency (jitter) for
151150a base and servo thread.
152151
153152----
@@ -156,10 +155,10 @@ Usage:
156155 latency-histogram [Options]
157156
158157Options:
159- --base nS (base thread interval, default: 25000, min: 5000)
160- --servo nS (servo thread interval, default: 1000000, min: 25000)
161- --bbinsize nS (base bin size, default: 100
162- --sbinsize nS (servo bin size, default: 100
158+ --base ns (base thread interval in nanoseconds , default: 25000, min: 5000)
159+ --servo ns (servo thread interval in nanoseconds , default: 1000000, min: 25000)
160+ --bbinsize ns (base bin size in nanoseconds, default: 100
161+ --sbinsize ns (servo bin size in nanoseconds , default: 100
163162 --bbins n (base bins, default: 200
164163 --sbins n (servo bins, default: 200
165164 --logscale 0|1 (y axis log scale, default: 1)
@@ -170,12 +169,12 @@ Options:
170169 --nox (no gui, display elapsed,min,max,sdev for each thread)
171170
172171Notes:
173- Linuxcnc and Hal should not be running, stop with halrun -U.
174- Large number of bins and/or small binsizes will slow updates.
175- For single thread, specify --nobase (and options for servo thread).
176- Measured latencies outside of the +/- bin range are reported
177- with special end bars. Use --show to show count for
178- the off-chart [pos|neg] bin
172+ LinuxCNC and HAL should not be running, stop with halrun -U.
173+ Large number of bins and/or small binsizes will slow updates.
174+ For single thread, specify --nobase (and options for servo thread).
175+ Measured latencies outside of the +/- bin range are reported
176+ with special end bars. Use --show to show count for
177+ the off-chart [pos|neg] bin
179178----
180179
181180.`latency-histogram` Window
0 commit comments