Course Info
Physics 318: Data Acquisition using LabVIEW
Course Syllabus - Course requirements and policies.
Instructor - Professor Doug Harper.
Grading Rubric - Guidelines for grading of exercises.
Course Calendar - Daily list of topics and reading...
About PHYS 318
Fall 2026 Welcome Message
Welcome to the Fall 2026 PHYS 318 Data Acquisition Using LabVIEW course. If you are enrolled in the course for the upcoming semester please watch the video message below for some guidance in getting your hardware and...
Syllabus
Staff Information
Professor Doug Harper, Instructor
Electronic Mail: doug.harper at wku.edu
Homepage: physics.wku.edu/harper/
Office Hours: Use calendly.com to schedule an appointment .
Course Description
A study of computer-assisted...
Instructor
Dr. Doug Harper
Professor Emeritus
Office Hours
Rather than having a limited number of fixed office hours, I have several hours per day that I am available to meet with students. Zoom or in-person meetings can be scheduled,...
Grading Rubric
Grading Rubric
This document describes the criteria that are used to evaluate all LabVIEW programming projects in WKU PHYS 318. These guidelines are loosely modeled upon the National Instruments Certified LabVIEW Developer (CLD) Exam Evaluation...
Calendar
*Key for NI Online Training Courses
Core 1 = LabVIEW Core 1
Core 2 = LabVIEW Core 2
MF = Data Acquisition Using NI-DAQmx and LabVIEW: Measurement Fundamentals
DAQmx = Data Acquisition Using NI-DAQmx and LabVIEW: NI-DAQmx...
LabVIEW Core 1
LabVIEW Core 1 gives you the chance to explore the LabVIEW environment, dataflow programming, and common LabVIEW development techniques in a hands-on format. Learn to develop data acquisition, instrument control, data-logging, and measurement analysis...
LabVIEW Core 2
The LabVIEW Core 2 course is an extension of LabVIEW Core 1 and teaches you to use common design patterns to successfully implement and distribute LabVIEW applications for research, engineering, and testing environments. Topics covered include programmatic...
Using NI-DAQmx and LabVIEW
Explore the fundamentals of data acquisition using sensors, NI data acquisition hardware, and LabVIEW. Learn the basics of hardware selection, including resolution and sample rate, and the foundation of sensor connectivity, including grounding and wiring...
1 - The Basics
:footer:
Day 03: Working with subVIs
Debugging, Creating subVIs, Documenting Code
2 - Using DAQmx
:footer:
Day 06: Making Decisions
:footer:
Day 07: All About Signals
:footer:
Day 08: Writing Text Files
:footer:
3 - Design Patterns
:footer:
Day 09: Action Engines
:footer:
Day 10: Process Control, Clusters
:footer:
Day 11: State Machines
:footer:
Day 12: Hardware-Timed DAQ
:footer:
Day 13: Using Event Structures
:footer:
Day 14: Configuration Files
:footer:
Day 15: Sampling and Nyquist
:footer:
Day 16: Signal Generation
:footer:
Midterm Exam Study Guide
Objectives for Midterm Exam
Understand the fundamentals of operation of the following actuators and sensors:
Light Emitting Diode
ADXL335 – Accelerometer
NTCLE100E3 – Precision NTC Thermistor
TMP3x – Temperature Sensor
...
Winter 2022 Midterm Exam
Create a LabVIEW VI that will estimate the value of using the Monte Carlo technique described below.
You will use a combination of geometry and random numbers to estimate . Within a while loop that will run until you press a STOP button,...
4 - Advanced Topics
:footer:
Day 17: VI Server
:footer:
Day 19: Streaming to Files
:footer:
Day 20: Stress and Strain
:footer:
Day 21: Sound and Vibration
:footer:
Day 22: Encoders
:footer:
Day 23: Pulse Width Modulation
:footer:
Day 24: Error Handling
:footer:
Day 25: Building Applications
:footer:
5 - Final Assessments
:footer:
Day 26: Project Reviews
:footer:
Day 27: Project Presentations
:footer:
Day 28: Project Presentations
:footer:
Final Exam
:footer:
Projects
Tentative Project Timeline
P01 - Project Selection [due: Week 3]
P02 - Project Specification Document [due: Week 6]
P03 - Project Presentations [due: Week 10]
P04 - Project Code Reviews [due: Week 12]
P05 - Project Demonstrations...
Fall 2024 Projects
Universal Joint Demonstrator
For the Fall 2024 semester all students in the course will work collaboratively to develop a high quality user-interface to control and monitor a universal-joint demonstrator system that was developed by the WKU Mechanical...
2014 Spring Projects
Spring 2014 Projects
Project Name: SPS Room Access
Team Members: Luke Lim, Jon Lindsey
Faculty Contacts: Dr. Steven Gibson, Dr. Doug Harper
Synopsis
Create a system that will allow students in the Society of Physics Students to gain...
2014 Fall Projects
Fall 2014 Projects
2016 Spring Projects
The following is a list of projects that will be performed during the Spring 2016 semester of PHYS 318. The name(s) of a faculty member who will serve as the project sponsor are identified first in square brackets followed by student team members.
...
2017 Spring Projects
The following is a list of projects that will be performed during the Spring 2017 semester of PHYS 318. The name(s) of a faculty member who will serve as the project sponsor are identified first in square brackets followed by student team members.
...
Audio Tuner
Project Synopsis
The team will create a LabVIEW application that will use the built-in microphone of a laptop or an audio input channel on a DAQmx device to tune a musical instrument such as a guitar. The application should have a nice, easy to understand...
HC-SR04 Sonic Ranger
Project Synopsis
The team will create a LabVIEW application that use an HC-SR04 sonic ranger device to measure the position of an object as a function of time. There should be a mechanism to calibrate the system so that it returns accurate position...
Thermal System
Project Synopsis
The team will create a LabVIEW application that will allow an operator to measure the temperature at a large number of locations using a set of thermocouples. In addition, ...
Team Members
Jessica Anderson
Ben Hennion
...
2018 Spring Projects
The following is a list of projects that will be performed during the Spring 2018 semester of PHYS 318. Expand the project of interest to view the name(s) of a faculty member who will serve as the project sponsor, the project team members, and the project...
2019 Spring Projects
The following projects will be performed during the Spring 2019 semester of PHYS 318.
Chaotic Pendulum
Data Acquisition: Jacob Boaz and Joseph Redmon
Data Analysis: Brendan Evans and William Poteet
Dynamometer
Tom Everson...
Chaotic Pendulum
Project Synopsis
An oscillator consisting of an aluminum disk connected to 2 springs, with a point mass on the edge of the aluminum disk to make the oscillator nonlinear, will be driven at a constant angular velocity using a motor. Changing the...
Dynamometer
Project Synopsis
A LabVIEW-based system will be created for use in the WKU Energy Systems Laboratory that will control a dynamometer for the purposes of characterizing the operating parameters of a motor.
Team Members
Tom Everson...
iOLab Wireless Lab System
Project Synopsis
A LabVIEW Library (.lvlib) will be developed that will allow one to interface with the sensors on the iOLab Wireless Lab System . The library will include routines to establish communication between the iOLab hardware and a virtual...
Radio Telescope
Project Synopsis
The WKU Department of Physics and Astronomy is developing a small-scale radio telescope to be used for student research projects in radio astronomy. The telescope is being built using a 10-foot home satellite receiving dish that...
2020 Spring Projects
Radio Telescope - Data
Project Mentors: Drs. Steven Gibson and Doug Harper
Jared Parker and Sam Everson
Students will build upon existing code from previous projects that uses a myRIO and an RTL-SDR to acquire data from the WKU...
2020 Fall Projects
Each student in PHYS 318 will participate in a team project that will involve using LabVIEW to solve a real-world problem. A summary of each project is described briefly below. In addition, the address of the SVN repository for the project...
2021 Fall Projects
Each student in PHYS 318 will participate in a team project that will involve using LabVIEW to solve a real-world problem. A summary of each project is described briefly below. In addition, the address of the SVN repository for the project...
2022 Fall Projects
Each student in PHYS 318 will participate in a team project that will involve using LabVIEW to solve a real-world problem. A summary of each project is described briefly below. Each of these projects can be written in using the dual-loop...
What is the difference between software and hardware timing?
You can use software timing or hardware timing to control when a signal is generated or when a measurement is made. With hardware timing, a digital signal, such as a clock on your device, controls the rate of generation or acquisition. With software...
How do I use a history probe on an enum?
LabVIEW has built-in "history" probes for many of its standard data types such as strings, numerics, and booleans. These probes will show you a historical record of the values in a wire. However, when you want to use a history probe on an...
How do I set default values for front panel controls?
When a VI is loaded from disk the values present initially in the controls are the default values. Normally, these values are the default value for that particular data type. That is, numerics default to a zero, strings default to an empty string, etc....
What is a type definition and how do I create one?
A type definition or a strict type definition is a custom control or indicator linked to a saved file (with extension *.ctl). When you save a custom control or indicator as a type definition, any data type changes you make to the type definition affect...
What is the mechanical action of a boolean?
This answer is taken from the LabVIEW Wiki , a great resource for LabVIEW information.
Boolean controls have mechanical actions, which control how activation with the mouse affects the value of the control. A mechanical action allows the control to...
What is a VI Snippet?
VI Snippets are a easy way to store, share and reuse small portions of simple LabVIEW code that do not contain any external subVIs. VI Snippets are actually PNG (portable network graphics) image files that have the code for the block diagram embedded...
What is the difference between a waveform chart and a waveform graph?
A Waveform Chart is used to plot and remember data points which are added usually one at a time. A Waveform Graph is used to plot an entire array of data (or a waveform) all at once.
More info from NI...
What is the difference between charts...
How do I plot multiple signals on a waveform chart?
To plot multiple signals on a single waveform chart you will need to bundle the points for the given signals into a cluster as is shown below in the help window for a waveform chart.
How do i fix the small fonts in the MAX sidebar?
On some systems with high-resolution monitors the tree control in the sidebar on MAX may display in a very small, unreadable font size as shown below.
The NI support document linked below describes how to fix this issue.
NI MAX Font...
How do I fix Windows Explorer SVN file overlays?
In some cases you may find that the TortiseSVN icon overlays that identify the status of files within the source code control system do not show up in Windows Explorer. This is usually due to the fact that Windows only has a limited number of slots available...
How do I fix SVN overlays in file dialogs?
On 64-bit versions of Windows, you might find that icon overlays don't show for 32-bit applications (such as LabVIEW) in their file-open/save dialogs until you install the 2015 C-runtime for x86 . This only applies to 32-bit applications on x64 OS. The...
Why do I need to separate compiled code from the VI file?
Selecting the setting "Separate compiled code from new files" in the Environment section of the LabVIEW Options is useful when you are using source code control during code development. To understand why, we first need to understand the information...
Can I open a file from the SVN Repo Browser?
With SVN, as you may have noticed, you can double-click on a file when viewing the repo-browser, and it may run. That will work fine if the file is able to stand on its own. For example, if it is a plain text file, a MS word file, a PDF,...
How to use LabVIEW on WKU campus computers?
LabVIEW is installed on some WKU-owned computers including some, but not all, computers in the Department of Physics and Astronomy and the Department of Engineering. If you see a dialog similar to the one shown below after launching LabVIEW from...
What is Quick Drop and how to I use it?
Quick Drop Basics
Quick Drop is a tool that allows you to quickly add nodes to your front panel or block diagram without having to navigate the LabVIEW palettes. This is done by activating the Quick Drop window using the Ctrl-Space shortcut from your...
What are Quick Drop Control-Key Shortcuts?
This discussion taken from a blog post by Steven Moore at Moore Good Ideas .
Quick Drop also has some shortcut macros that can help simplify everyday coding tasks. You use them by:
Selecting the item(s) you’re working on (if required),
Pressing C...
Subversion and TortoiseSVN
Source Code Control (SCC), sometimes called Version Control, allows a software developer to maintain a complete history of his/her software development on a project. For projects that require significant collaboration between team members it is crucial...
Create SVN Working Directories
To start the semester we will establish three separate working directories on your computer associated with directories in the class source-code repository. One of these directories will be used by the instructor for posting example code for the...
LabVIEW Foundations
:footer:
Creating a Project
:footer:
LabVIEW Help System
:footer:
Timing VIs in LabVIEW
Controlling the time between loop iterations and being able to measure the time between events are both very important tasks in any data acquisition activity. LabVIEW has a number of built-in timing functions that can help with these tasks. ...
Data Types
:footer:
Enumerated Data Type
:footer:
Measuring Resistance
:footer:
Using a Thermistor
:footer:
Signals Basics
:footer:
Signal Conditioning
:footer:
Measurement Systems
Ground
When we say we measure voltage we are actually measuring a voltage difference between two points. We often pick one point and assign the voltage of this point to be 0V and call it ground.
The voltage output of sensors may be relative to...
Software Timed DAQ
:footer:
PID Control Theory
:footer:
Using PID in LabVIEW
:footer:
Finding PID Parameters
:footer:
Triggering
:footer:
Hardware Timing
:footer:
Event Structure
:footer:
Sequencer
A Sequencer is a design pattern used for executing LabVIEW code sequentially.
This particular implementation was made possible in LabVIEW 2017 SP1 when a new malleable VI named Enum to Array of Enums.vim was created.
A malleable...
Event-Handling Loop
:footer:
Tools
:footer:
VI Analyzer Toolkit
Using the VI Analyzer Toolkit will make you a better LabVIEW programmer and will improve your scores on assignments in this class. Here is what the NI marketing team has to say about the VI Analyzer.
As you start learning to use the VI Analyzer...
VI Server
:footer:
Software
Follow the detailed instructions in the links below to install LabVIEW, all of its drivers, and TortiseSVN on your personal computer. It is very important that you follow these directions carefully so that your installation of LabVIEW and TortiseSVN will...
Create NI Account
You will need to have an account on National Instruments at www.ni.com . This account will be required for:
activation of your LabVIEW software,
accessing online training material as you learn LabVIEW,
accessing the badges and certification...
Download and Install LabVIEW
For the Fall 2026 semester we will use LabVIEW 2025 Q3. You will be provided with a student-license for LabVIEW covered by your course fee. This license will be active until May 31, 2027.
Download Web-Based Installer for NI Software
First, download...
Install NI-ELVISmx
An additional component that we will require that is not included in the previous installer is the ELVISmx drivers for LabVIEW. Now that the NI Package Manager has been installed it can be used to add and remove any NI software. Start the...
Configure LabVIEW
There are numerous settings in the LabVIEW environment can be customized on a per-user basis. The video below gives a quick summary of some of the changes that are recommended to the configuration of the LabVIEW environment to promote best practices...
Install TortoiseSVN
About TortoiseSVN
We will use a windows client called TortoiseSVN to make it easier to interact with the code repository for the class. TortoiseSVN is a really easy to use SCC client for Windows. It is based on Apache™ Subversion (SVN)® and it pr...
Configure TortiseSVN
Configure TortiseSVN for use with LabVIEW
When you create a LabVIEW project it is saved in a file with an extension *.lvproj . LabVIEW also creates two additional files with the same root name but with extensions *.aliases and *.lvlps . ...
VI Package Manager
The LabVIEW Tools Network
An application called VI Package Manager (often called VIPM) is normally installed during the LabVIEW installation process.
Once installed, you can locate VI Package Manager in your start menu. It can also be...
OpenG Toolkit
The OpenG Libraries are a collection of hundreds of open source VIs created by the OpenG community and shared under the BSD-3-Clause license. The OpenG Toolkit bundles several of the most useful OpenG Libraries into a single installation.
This...
VIBox - Probes by SAPHIR
LabVIEW has a number of built-in probes that allow the programmer to see value of data in a wire as a VI is executing. It also allows users to create their own custom probes that add special features.
One set of user-created probes...
Hardware
The following pages describe the data acquisition hardware and sensors that we will use in the course.
Sensors
Sensors are devices that convert physical phenomena into measurable electrical signals.
Sensors we will use in PHYS 318
ADXL335 - Accelerometer
The ADXL335 is a complete 3-axis acceleration measurement system. The ADXL335 has a measurement range of ±3 g minimum. The output signals are analog voltages that are proportional to acceleration. The accelerometer can measure the static acceleration ...
NTCLE100E3 – Precision NTC Thermistor
A thermistor is a component whose resistance varies with temperature. Two different thermistors are shown in the pictures above on the left.
To use a system that measures voltage with a thermistor usually requires that we place...
Breadboard
We will connect various electronic components to our myDAQ using a prototyping breadboard like the one shown below. We have attached a standard small breadboard to a signal breakout board that will plug into the myDAQ 20-pin Mini System Port (MSP) connector. ...
Resistors
There are a number of resistors in your component kit. Use the chart below or the Online Resistor Color Code Calculator from Digi-Key to help identify the resistance of a specific resistor using its color bands.
...
Jumper Wire Kit
Your component kit includes a set of jumper wires that can be used to build circuits on the breadboard and to connect the circuits to your myDAQ.
Certification
Certification is a proven way to boost career potential. Certification helps inspire confidence in technical skills, leading to promotions, new opportunities, and higher pay. For organizations, certification is a strategic investment that pays off in...
NI Badge Program
Students in this class will have opportunity to use the National Instruments Badge Program to gain recognition for their mastery of the topics including LabVIEW programming and the fundamentals of data acquisition. The following ten (10) Learning...
CLAD Exam Preparation
In the summer of 2017 NI changed the Certified LabVIEW Associate Developer [CLAD] exam to have a large focus on basic data acquisition measurements using DAQmx functions. NI no longer provides sample exams for the CLAD, but does provide a rather...
Old CLAD Questions
The NI Certified LabVIEW Associate Developer (CLAD) is the first step in the three-part NI LabVIEW certification process. It indicates a broad working knowledge of the LabVIEW environment, a basic understanding of coding and documentation best practices,...
Diagramming Tools
yEd - Graph Editor by yWorks
yED is a powerful desktop application that can be used to quickly and effectively generate high-quality diagrams. It is well suited for creating functional block diagrams of project hardware as well as state diagrams...
LabVIEW Resources
Online LabVIEW Training
LabVIEW 101 - Video instruction for students.
Free online LabVIEW training for educators and students , 3 hour webcast.
Self-paced online training , requires NI SSP service agreement , contact Doug Harper for details....
DAQ Resources
Project Essentials Guide
The NI myRIO Project Essentials Guide , written by Ed Doering of Rose Hulman Institute of Technology, provides a multimedia learning resource for students who are completing projects at all levels. This resource was designed...
myDAQ Resources
myDAQ - Portable Data Acquisition
Literature
NI MyDAQ Quick Start Guide
NI MyDAQ Product Manual
We will use the myDAQ for many of our programming exercises and projects in the course. It provides a number of built-in...
myRIO Resources
NI myRIO Hardware Overview
NI myRIO is a revolutionary hardware/software platform that gives students the ability to “do engineering” and design real systems more quickly than ever before. Complete with the latest Zynq integrated system-on-a-chip (So...
cRIO Resources
NI Compact RIO
The CompactRIO is a rugged, reconfigurable monitoring and control system that consists of a real-time controller, an FPGA backplane, and hot-swappable input/output modules.
Learn RIO: Self-Paced Video Training for Students...
WKU Campus License
Academic Site License for National Instruments Software
WKU faculty and researchers in the Ogden College of Science and Engineering have access to LabVIEW and related software tools from National Instruments via a college-wide teaching and research...
NI Software on WKU Computers
The following instructions describe how to use NI software (LabVIEW, MultiSim, or UltiBoard) on WKU-owned computers. Each user will need to perform this activation activity only once the first time connecting to the WKU license server.
Launch...
Product Datasheets
Analog Devices
ADXL335 - Triple Axis Analog Accelerometer
TMP3x - Low Voltage Temperature Sensor
CUI Devices
ACZ16NBR1E-15FD1-24C - 24 PPR Encoder
Cytron Technologies
HC-SR04 - Ultrasonic Sensor...


