ARL-TN-0779 ● SEP 2016

US Army Research Laboratory

Electronic Warfare Closed Loop Laboratory 

(EWCLL) Antenna Motor Software and 

Hardware Development

by Neal Tesny

Approved for public release; distribution is unlimited.
NOTICES

Disclaimers

The findings in this report are not to be construed as an official Department of the 

Army position unless so designated by other authorized documents.

Citation of manufacturer’s or trade names does not constitute an official 

endorsement or approval of the use thereof.

Destroy this report when it is no longer needed. Do not return it to the originator.
ARL-TN-0779 ● SEP 2016

US Army Research Laboratory

Electronic Warfare Closed Loop Laboratory 

(EWCLL) Antenna Motor Software and 

Hardware Development

by Neal Tesny

Sensors and Electron Devices Directorate, ARL

Approved for public release; distribution is unlimited.
ii

REPORT DOCUMENTATION PAGE Form Approved

OMB No. 0704-0188

Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the 

data needed, and completing and reviewing the collection information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing the 

burden, to Department of Defense, Washington Headquarters Services, Directorate for Information Operations and Reports (0704-0188), 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302. 

Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to any penalty for failing to comply with a collection of information if it does not display a currently valid 

OMB control number.

PLEASE DO NOT RETURN YOUR FORM TO THE ABOVE ADDRESS.

1. REPORT DATE (DD-MM-YYYY)

September 2016

2. REPORT TYPE

Technical Note

3. DATES COVERED (From - To)

12/2014 to 04/2016

4. TITLE AND SUBTITLE

Electronic Warfare Closed Loop Laboratory (EWCLL) Antenna Motor 

Software and Hardware Development

5a. CONTRACT NUMBER

5b. GRANT NUMBER

5c. PROGRAM ELEMENT NUMBER

6. AUTHOR(S)

Neal Tesny

5d. PROJECT NUMBER

5e. TASK NUMBER

5f. WORK UNIT NUMBER

7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES)

US Army Research Laboratory

ATTN: RDRL-SER-M

2800 Powder Mill Road

Adelphi, MD 20783-1138

8. PERFORMING ORGANIZATION REPORT NUMBER

ARL-TN-0779

9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSOR/MONITOR'S ACRONYM(S)

11. SPONSOR/MONITOR'S REPORT NUMBER(S)

12. DISTRIBUTION/AVAILABILITY STATEMENT

Approved for public release; distribution is unlimited.

13. SUPPLEMENTARY NOTES

14. ABSTRACT

Software and hardware were developed to control the rotation of the 6 double-ridged waveguide horn antennas that are used in

the Electronic Warfare Closed Loop Laboratory (EWCLL) test chamber. The software and hardware are described and a 

“user’s guide” is provided. The software is written in LabVIEW.

15. SUBJECT TERMS

Closed Loop Laboratory (CLL), motor control, antenna positioning, users guide, software control

16. SECURITY CLASSIFICATION OF:

17. LIMITATION

 OF

 ABSTRACT

UU

18. NUMBER

 OF 

 PAGES

30

19a. NAME OF RESPONSIBLE PERSON

Neal Tesny

a. REPORT

Unclassified

b. ABSTRACT

Unclassified

c. THIS PAGE

Unclassified

19b. TELEPHONE NUMBER (Include area code)

301-394-5559

Standard Form 298 (Rev. 8/98)

Prescribed by ANSI Std. Z39.18
Approved for public release; distribution is unlimited.

iii

Contents

List of Figures v

List of Tables v

1. Introduction 1

2. Quick-Start Guide 1

2.1 Starting the Program 1

2.2 Zeroing Routine 1

2.3 Rotating Antennas 2

3. Software Description 2

3.1 Start of the Day Calibration 4

3.2 Normal Operations Tab 4

3.2.1 Rotating Antennas 4

3.2.2 Zeroing the Motors or Verifying the Motor Angles 5

3.2.3 Emergency Stop 5

3.3 Zero Setup Tab 5

3.4 Status Tab 6

3.5 Advanced Setup Functions Tab 6

3.5.1 Zeroing Method 6

3.5.2 Other Settings 6

4. Hardware Setup 7

4.1 Motor Accuracy 7

4.2 Numbering of the Motors 7

4.3 Angle and Alignment of the Motors 7

4.4 Motor Power 8

4.5 Motor Interfaces 8

5. Conclusion 10
Approved for public release; distribution is unlimited.

iv

Appendix A. Software Modules 11

A-1 Listing of Modules Used 12

A-2 Basic Motor VI and Functions 13

A-3 Other Major VI Modules 14

Appendix B. Location of the Software 15

Appendix C. Motor Specifications 17

C-1 Motor Description 18

C-2 Inertial Adjustments to the Motors 18

List of Symbols, Abbreviations, and Acronyms 20

Distribution List 21
Approved for public release; distribution is unlimited.

v

List of Figures

Fig. 1 Normal operation panel..........................................................................2

Fig. 2 Zero Setup panel ....................................................................................3

Fig. 3 Advanced Setup panel............................................................................3

Fig. 4 Status panel ............................................................................................4

Fig. 5 Antenna positioning motors mounted on CL test cell ...........................7

Fig. 6 Power supply with 6 feeds, on top of PXi chassis with 6 serial port 

output .....................................................................................................8

Fig. 7 Block diagram of motor connections.....................................................9

Fig. 8 The front panel of the vi cllMotorBasic.................................................9

Fig. A-1 Front panel of the vi cllMotorBasic.....................................................13

List of Tables

Table C-1 Motor specifications.............................................................................18
Approved for public release; distribution is unlimited.

vi

INTENTIONALLY LEFT BLANK.
Approved for public release; distribution is unlimited.

1

1. Introduction

Software and hardware were developed to control the rotation of the 6 

double-ridged waveguide horn antennas that are used in the Electronic Warfare 

Closed Loop Laboratory (EWCLL) test chamber. The software is written in 

LabVIEW. This report describes the EWCLL antenna motor software and hardware 

that control the stepper motors that rotate the 6 horn antennas in the US Army 

Research Laboratory’s closed loop (CL) chamber.

2. Quick-Start Guide

The following is given as a guide to let a user start using the software as rapidly as 

possible. For more detailed information about the software and hardware, see the 

appropriate sections.

2.1 Starting the Program

To start the program, start the LabVIEW shell program. Then open and run the 

program “zDashboard6motorsV1b.vi”. (A list of software virtual instrument [vi]

programs are provided in Appendix A.) This starts the main dashboard of the 

software. The location of the software is given in Appendix B.

2.2 Zeroing Routine

When the motors or software are first powered up, each motor is labeled as being 

not zeroed by the light and text message “Motor angle not verified.” The antennas 

should not be used in this state, because it signifies the motor angles may be off 

from the angle displayed for each antenna. The user must zero all of the motor 

angles to ensure the motor angles are verified.

The motors can be zeroed either individually or all at once. To zero an individual 

motor, first navigate to the panel labeled “Normal operation” by pressing the 

corresponding tab on the dashboard. Then press the button labeled “verify motor 

position” that corresponds to the number of the motor of interest. Alternatively, the 

motors can also be zeroed by pressing the button labeled “Zero all”. This will zero 

all the motors sequentially starting with Motor 1.

The motor specifications are provided in Appendix C. 
Approved for public release; distribution is unlimited.

2

2.3 Rotating Antennas

To rotate an antenna, first navigate to the panel labeled “Normal operation”. Then 

enter the desired angle in the box labeled “Desired angle” for the antenna to be 

rotated. Then press the button labeled “Go”. This causes the antenna to rotate to the 

desired angle and update the angle in the box labeled “Current angle”.

3. Software Description

The dashboard is divided into 4 panels, which are accessed by the tabs. These 

panels are as follows:

1) Normal operation. This panel is used for normal functions such as rotating 

the antennas and zeroing the motors.

2) Zero Setup

3) Advanced Setup

4) Status

These panels are shown in Figs. 1 through 4.

Fig. 1 Normal operation panel
Approved for public release; distribution is unlimited.

3

Fig. 2 Zero Setup panel

Fig. 3 Advanced Setup panel
Approved for public release; distribution is unlimited.

4

Fig. 4 Status panel

3.1 Start of the Day Calibration

The software will perform zeroing of the motors. This sets all of the motor angles 

to an angle of absolute zero. This zero reference can be adjusted if needed.

This step performs zeroing by using 2 absolute references: one inside the motor 

itself and the other by means of an external contact switch mounted on the motor 

axle.

3.2 Normal Operations Tab

3.2.1 Rotating Antennas

To rotate an antenna, enter the desired angle in the box labeled “Desired angle” for 

the antenna to be rotated. Then press the button labeled “Go”. This causes the 

antenna to rotate to the desired angle and updates the angle in the box labeled 

“Current angle”.

The antenna angle is stored whenever the antenna is rotated using the rotate 

functions on the “Normal Operations” front panel. This stored setting is used in 

verifying the antenna angle whenever a zeroing operation is performed. The 

software compares the current antenna angle with the stored angle during the 

zeroing operation.
Approved for public release; distribution is unlimited.

5

3.2.2 Zeroing the Motors or Verifying the Motor Angles

When the motors or software are first powered up, each motor is labeled as being 

not zeroed by the light and text message “Motor angle not verified.” The antennas 

should not be used in this state, because it signifies the motor angles may be off 

from the angle displayed for each antenna. The user must zero all of the motor 

angles to ensure the motor angles are verified.

The motors can be zeroed either individually or all at once. To zero an individual 

motor, first navigate to the panel labeled “Normal operation” by pressing the 

corresponding tab on the dashboard. Then press the button labeled “verify motor 

position” that corresponds to the number of the motor of interest. Alternatively, the 

motors can also be zeroed by pressing the button labeled “Zero all”. This zeroes all

of the motors sequentially starting with Motor 1.

The zeroing routine will correct for any changes in the antenna angles that may 

have occurred since the time of the last zeroing routine. This includes any minute 

changes such as a few hundredths of a degree or large changes such as someone 

intentionally turning the motor shaft to a different angle.

3.2.3 Emergency Stop

Pressing this button on the front panel sends a hard stop command to all of the 

motors causing them to immediately stop motion. A software restart will likely be 

needed after this, because this action interrupts all other motion commands.

3.3 Zero Setup Tab

Position the antenna to the desired angle that is to be set to the origin (0°), using the 

rotation functions on the “Normal operation” panel.

Click on the tab labeled “Zero Setup” to select the Zero Setup panel.

For the desired antenna, press the corresponding button labeled “Set” to reset the 

origin of the antenna.

The software will verify the angle by turning the motor to find the external switch 

and then will return the antenna to the zero angle.

Information related to the zeroed angle will be stored in a saved file. This 

information includes angle from external switch, angle from internal motor index, 

and time of last zero. The entire history of saved zero set data is saved, in case an 

accidental resetting of the zero position occurs and earlier zero data are desired.
Approved for public release; distribution is unlimited.

6

3.4 Status Tab

This gives the connection status of the motors when the toggle switch is set to 

“Yes”. It is used primarily for troubleshooting and setup.

Keeping the toggle switch set to the “off” position will save time during startup.

3.5 Advanced Setup Functions Tab

3.5.1 Zeroing Method

This lets the user select what method to use for verifying the position of the motors

(i.e., zeroing them). The 2 choices for this option are the following:

1) Quick zero—Verifies the last position with the motor index. Find the 

external switch only if the position is not verified. This choice lets the 

software verify the motor angle by comparing it to the motor index. It does 

this by first rotating to find the index if it is not already detected, and then 

comparing it to the current angle and the last stored angle. If they are in 

agreement, then the motor angle is verified. If there is any discrepancy, then 

the software proceeds to locate the external switch and turn the motor to the 

last saved angle. This will correct for any incidental shifts in motor angle 

that may have occurred since the last zeroing routine. This option saves time 

during the zeroing process and is probably good enough for zeroing. Since 

there are 4,000 encoder steps in each motor, the odds of there being a gross 

error in the angle of the antenna is 1 in 4,000, and that is only if the antenna 

shaft was inadvertently rotated an exact angle of 36.00°!

2) Complete zero—Always find the external position switch. This option 

forces the software to always find the external switch during the zeroing 

process. This option adds more time to the zeroing process, especially the 

time to zero all 6 motors simultaneously.

The antenna angle is stored whenever the antenna is rotated using the rotate 

functions on the “Normal Operations” front panel.

3.5.2 Other Settings

On this panel, the current path shows where the stored files are located on the 

controller’s file system.

Program auto-shutoff can also be set here. The program typically runs continuously,

waiting for a button to be pressed or until directly stopped by the user. This setting 
Approved for public release; distribution is unlimited.

7

will stop the program after a set time. The default value is 600 min, which will stop 

it at the end of the day if it is still running.

4. Hardware Setup

4.1 Motor Accuracy

The motors have 4,000 steps per revolution, which makes them accurate to an angle 

of 0.09° with no gear transmission. However, all of the CL motors have a gearbox 

with a 10:1 gear ratio. This makes the antenna positioning accurate to an angle of 

0.009°.

4.2 Numbering of the Motors

The motors are numbered 1 through 6. Motors 1 through 3 are located on the 

“Source” side of the CL chamber, and motors 4 through 6 are on the “Receive” 

side. They are numbered starting with the topmost antenna running 

counterclockwise when viewing them from the back of the motors. With this 

numbering, opposite motor pairs are as follows: motors 1 and 4 are the topmost 

motors; motors 2 and 6 are opposite each other; and motors 3 and 5 are opposite 

each other. Three of the motors mounted on the CL chamber are shown in Fig. 5.

Fig. 5 Antenna positioning motors mounted on CL test cell

4.3 Angle and Alignment of the Motors

A positive angle will produce a counterclockwise turn viewing the antenna from 

the back of the motor. This rule applies to all of the antennas. Hence to rotate 
Approved for public release; distribution is unlimited.

8

antennas on opposite sides of the cell so that they are coaligned, the user must enter 

opposite angles for antennas on each side of the cell.

For example, if motor 1 is rotated +30°, to align motor 4 to it, the user would rotate 

it to an angle of –30°.

4.4 Motor Power

The motors are powered from a single power supply that has 6 output feeds on it. 

The motors will operate on voltages from 20 to 48 V. Since we are running them at 

very slow speeds with essentially no load, a voltage at the lower end of this range 

is adequate.

4.5 Motor Interfaces

The motors are connected via RS232 (aka “serial” format) cables. These are 

interfaced through the PCI Extension for Instrumentation (PXi) chassis, which is 

connected to the PC controller. A standalone PXI controller can also be used to run 

the motor control software. The power supply and PXI chassis are shown in Fig. 6. 

A block diagram of the motor connections is shown in Fig. 7. Figure 8 shows the 

front panel of the vi cllMotorBasic.

Fig. 6 Power supply with 6 feeds, on top of PXi chassis with 6 serial port output
Approved for public release; distribution is unlimited.

9

Fig. 7 Block diagram of motor connections

Fig. 8 The front panel of the vi cllMotorBasic
Approved for public release; distribution is unlimited.

10

5. Conclusion

Precision control of the 6 wideband horn antennas in the EWCLL test chamber has 

been implemented. To achieve this, a software suite has been developed to provide 

precision control and zeroing necessary for EWCLL operations. The hardware 

configuration and software suite have been described. A quick-start guide has also 

been given.
Approved for public release; distribution is unlimited.

11

Appendix A. Software Modules
Approved for public release; distribution is unlimited.

12

A-1 Listing of Modules Used

A list of virtual instrument (vi) programs that the software uses to perform its 

functions is given below. A short description of major modules follows.

zDashboard6motorsV1b.vi

cllMotorMoveClassFour1b.vi

cllMotorBasic1a.vi

cllMotorProj.lvproj

cllMotorProj.lvlps

cllMotorMoveClassFive1e.vi

readRootPath2.vi

cllPathname.txt

zeroSave1.vi

writeRootPath.vi

stopCallback1.vi

stepstoDeg.vi

parseStringArray.vi

numLinesInString.vi

moveAntenna1.vi

motorVisaResourceNum.vi

motorStatus2.vi

maxTurnForSeekSwitch.vi

findSwitch3b.vi

findIndex2b.vi

fileWriteZeroSave.vi

fileReadLastPostion.vi

fileLastPostion.vi

emergencyStop.vi

calcNewPos2.vi

calcIndex.vi

buttonPress.vi

motorStartup1g.vi

resetZero.vi

cllMotor2ndLevel.vi

findSwitchLev2.vi

digIOc.vi

readSwitch2ndLev.vi

readMotorSwitchFile.vi

findIndex1testcase.vi

degtoSteps.vi

switchSetup1.vi
Approved for public release; distribution is unlimited.

13

A-2 Basic Motor VI and Functions

The basic vi that controls the motor is called cllMotorBasic. This module can be 

used separately if one is developing other software that needs to control the motors. 

The front panel of this vi is shown in Fig. A-1.

Fig. A-1 Front panel of the vi cllMotorBasic.

The commands it performs are as follows:

• 0 – Move to inputted absolute position (default)

• 1 – Read actual position in steps

• 2 – Read trajectory in progress bit

• 3 – Read index found bit and report index position in output

• 4 – Emergency stop (S)

• 5 – Gradual stop (X)

• 6 – Read version and report in output

• 7 – Set current position to origin

• 8 – Total motor reset

• 9 – Move to inputted relative position

• 10 – Ports 1 and 2 status (bits 1 and 2 of output)

• 11 – Read index report status without reading index
Approved for public release; distribution is unlimited.

14

A-3 Other Major VI Modules

digIOc.vi communicates with the digital input/output (I/O) ports of the motor. The 

external switch is detected through these I/O ports.

fileWriteZeroSave.vi saves zeroing data to a file on the controller hard disk.

findIndex.vi locates the motor index and returns its value. This involves turning the 

motor if the index has not been detected yet. The motor index is an angle marker 

that is internal to the motor. It acts like a fixed position contact switch that identifies 

an absolute angle that is fixed within the motor. The position of the index never 

changes. However, the readout of the index is based on the startup angle of the 

motor. Upon startup, the motor must transverse past the index in order to locate it. 

findSwitch3b.vi locates where the external contact switch is in relation to the 

current motor angle. This involves rotating the motors.

motorStartup1g.vi progresses through the zeroing routines for a motor. This 

involves finding the motor index and if needed the external switches. 

motorStatus2.vi returns the status of the motors. This includes the firmware version 

and connection status.

moveAntenna1.vi turns the motors to a desired angle.

zDashboard6motorsV1b.vi runs the overall dashboard and program.
Approved for public release; distribution is unlimited.

15

Appendix B. Location of the Software
Approved for public release; distribution is unlimited.

16

The software is saved on the network drive of the Antennas & RF Technology 

Integration Branch, office symbol RDRL-SER-M, saved on L: drive under the 

following directory folder:

• L:\Tesny\ewcll\backup-latest labview-v14\Wall
Approved for public release; distribution is unlimited.

17

Appendix C. Motor Specifications
Approved for public release; distribution is unlimited.

18

C-1 Motor Description

The 6 motors are manufactured by Animatics. Motors 1 through 3 are model 

2316D-PLS2 and motors 4 through 6 are model 23165D. These are the same motor 

physically but they have different firmware versions. The 2316Ds have the Series 

4 firmware, while the 23165Ds have the newer Class 5 firmware. The software was 

painstakingly written to detect which versions of firmware the motors have and 

apply the right command set to communicate with each version. Table C-1 lists the 

specifications. 

Table C-1 Motor specifications

Continuous torque in-lb 2.5

oz-in 40

N-m 0.28

Peak torque in-lb 4

oz-in 64

N-m 0.45

Nominal continuous power W 181

No load speed rpm 900

Continuous current at nominal power A 5

Voltage constant V/krpm 5

Winding resistance ohm 1

Encoder resolution Counts/rev 0

Rotor inertia oz-in-s2 0.00099

10-5 kg-m2 0.699

Weight lb 1

 kg 0.45

Shaft diameter in 0.25

mm 6.35

Shaft radial load lb 7

kg 3.18

Shaft axial thrust load lb 3

kg 1.36

C-2 Inertial Adjustments to the Motors

Adjustments were made to the inertial settings of the motors in order for them to 

have adequate settling times when seeking a position. The settings with their default 

values are as follows:

• KP=3,000, proportional gain
Approved for public release; distribution is unlimited.

19

• KI=240, integral gain

• KD=10,000, derivative gain

• KA=0, acceleration feed forward

• KV=1,500, velocity feed forward

These were changed to the following:

• KP=6,000, proportional gain

• KI=500, integral gain

• KD=20,000, derivative gain

• KA=3,000, acceleration feed forward

• KV=3,000, velocity feed forward
Approved for public release; distribution is unlimited.

20

List of Symbols, Abbreviations, and Acronyms

CL closed loop

EWCLL Electronic Warfare Closed Loop Laboratory

I/O input/output

PC personal computer

PXi PCI Extension for Instrumentation

vi virtual instrument
Approved for public release; distribution is unlimited.

21

1 DEFENSE TECHNICAL

(PDF) INFORMATION CTR

DTIC OCA

2 DIRECTOR

(PDF) US ARMY RESEARCH LAB

RDRL CIO L

IMAL HRA MAIL & RECORDS

MGMT

1 GOVT PRINTG OFC

(PDF) A MALHOTRA

10 DIRECTOR

(PDF) US ARMY RESEARCH LAB

RDRL SER M

C DIETLEIN

A WITCHER

M BERRY

J SILVIOUS

N TESNY

J CLARK

E ADLER

 R CUTITTA

 B NELSON

 RDRL SER U

 M HIGGINS
Approved for public release; distribution is unlimited.

22

INTENTIONALLY LEFT BLANK.