Topic outline

  • In virtual instrumentation, hardware measurement devices are combined with customizeable software to create sophisticated measurement systems. Virtual instrumentation is commonly used in, e.g., automated testing and measurement facilities, to relieve the user from operating each piece of equipment separately.


    The purpose of the course is to teach the student the basics of virtual instrumentation. After the course, the student knows how to build computer-based measurement systems, and how to interface with hardware instruments using different types of interfaces.

    Virtual instruments are commonly operated by users other than the original programmer. When the measurement systems are modified and expanded, the virtual instruments need modifications as well. Therefore, special emphasis is given to good programming practices, such as code documentation and commenting and the use of appropriate design patterns.

    The programming language of the course is National Instruments Labview which is a visual progamming language that is widely used for virtual instrumentation in measurement and testing facilities. (Please contact the responsible teacher if you want to use another virtual instrumentation environment in your project.)


    WebOodi registration for the course is not required. Contact the responsible teacher (details below) with your project idea.

    Passing the course

    At the moment, the course is held as a self-study course. The student learns the basics of Labview using the self-study material posted in the Materials section of the course webpage. After this, the student designs and programs a virtual instrument. The project is then documented and presented to the responsible teacher.

    Project work

    The student can choose the subject of the project work freely. It is preferable that project is based on equipment the student has easy access to through, e.g., personal life, hobbies, studies, or work. Labview allows easy interfacing with audio instruments, web cameras, microcontrollers, and most other instruments that provide some form of instrument-to-computer interface. For more information about the project work, see the Project work section of this webpage.

    Before starting to work on the the project, please contact the responsible teacher and outline your project idea to him.


    While the main emphasis of the course is on the project itself, documentation of the code is an important part of the programming process. Therefore, the student is required to write documentation of the project which should describe the operating principle of the program, as well as give instructions on how to use the program. While the document should give a good overview of the program, every block needs not to be explained in detail, and the student can focus on more interesting and exotic pieces of the implementation. In addition to the written report, the student needs to comment the code itself.


    When the program and documentation are ready, the student sends both the code and the report to the responsible teacher. The teacher goes through the code and the report, and suggests revisions if necessary. The student and the teacher arrange a meeting where the student presents the program and answers the teacher's questions about the program, the writing process, Labview, and the course in general. If possible, a demonstration of the virtual instrument is given using the actual measurement hardware, but it is not mandatory for passing the course.


    The main emphasis of the course is on the project work. Grading is based on the quality and scope of the project work, and the documentation of the code. The student should make use of the advanced features of Labview (e.g. subVIs, data clusters, ready-made VIs, and advanced design patterns) whenever justified in order to make the code efficient, readable, and easy to modify and expand. The student has to be able to justify his/her design decisions (e.g. the selected design pattern) to the teacher during the presentation at the end of the project.

    The student has a chance to revise the code and the documentation based on the feedback from the teacher.


    The course can be started at any time and there is no strict time limit for completion. However, completion of the project work should not be prolonged needlessly. Please contact the responsible teacher about your intention to start the course.

    Responsible teacher:

    Janne Askola (at

  • National Instruments Labview is available on some Aalto workstations. Aalto University staff and students can download LabVIEW for home use directly from National Instrument. For instructions on registering the Aalto licence, go to:

    Resources for Aalto users

    Access to some of the material requires a free National Instruments registration. Use your Aalto email when registering to ensure that your academic connection is recognized.


    Virtual instrumentation

    Introduction to Labview

    Self-study material

    Interactive Getting Started Guide

    Learn Labview

    3-hour Labview course material

    (Can be completed using the sound card of the computer)

    Labview Core 1 - 3 Training

    (Go through Core 3 before you start working on the project)

    Design Patterns

    Read this material carefully before you start the project work

    Application Design Patterns: Master/Slave

    Application Design Patterns: Producer/Consumer

    Application Design Patterns: State Machines

         Using a State Machine (Event Driven) Architecture

    Event Driven Programming in Labview

    (The teacher will most likely ask you about these during the demonstration)

    Other resources

    NI Tutorials

    NI Example Programs

    NI White Papers

    If you come across good tutorial resources for Labview, please contact the responsible teacher, so that this list can be expanded.

  • Before starting the project work

    Go through the basics of Labview using the resources listed in the Materials section of this webpage.

    Before you start planning and implementing your project, make sure that you are familiar with following concepts: SubVI, Shift Register, Cluster, Event Structure, Producer/Consumer Model, Master/Slave Model, State Machine, Queue. Finish Labview Core 3 Training before you start working on the project (See Materials page)!

    Some of these features and concepts will not be applicable to your project, and therefore you should not try to forcibly utilize them. Still, you should be aware of these concepts and take advantage of them whenever applicable. For example, independent sections of code that are used in multiple parts of the program, should always be turned into subVIs, unless there is a strong reason not to.

    Subject of the project work

    You can choose the subject of the project work freely. Due to the restricted access to laboratory spaces and the availability of equipment, it is difficult for course organizers to provide access to their measurement instruments. Therefore, it is preferable that project is based on equipment you have easy access to through, e.g., personal life, hobbies, studies, or work.

    Labview allows easy interfacing with audio instruments, web cameras, microcontrollers, and most other instruments that provide some form of instrument-to-computer interface. If you can't think of a suitable subject for your project right away, you can browse the various Labview examples in the internet for ideas. (The implementation has to be your own, though.)

    It is also possible for the project to include little or no actual hardware instrumentation, as long as the project follows principles of virtual instrumentation and the capability to interface with measurement hardware is demonstrated in one way or another.

    Contacting the teacher

    When you are ready to start working on the project, contact the responsible teacher and explain your project idea to him. The plan does not have to be fully formed at this stage. You should contact the teacher even if you are unsure whether the project idea is suitable for this course - the teacher will most likely be able to answer that.

    If you ran into into any problems during the project, do not hesitate to contact the teacher.

    Scope of the project work

    The course is worth 5 credits which (nominally) corresponds to about 133 hours of work. This includes the time it takes to familiarize oneself with Labview as well as the actual project work and documentation. The emphasis of the course is in the project work and documentation. Therefore, the project should to be relatively extensive.

    If you are unsure whether the completed project is extensive enough, contact the responsible teacher. He will be able to tell you if the program should be expanded to meet the requirements of the course and might be able to give you suggestions for additional functionality. If the project work feels too short but cannot be expanded upon in a non-artificial way, it is also possible to a make separate small program to complement the main program.

    Responsible teacher:

    Janne Askola (at