The DAQ-ness Monster

USB-6009 (left) and Arduino (right). They are both about the size of the palm of your hand.

I spent a nice chunk of time last week playing with different combinations of hardware and software to look at Data Acquisition (DAQ) options for my Advanced Laboratory course (the name given to standalone upper-division physics laboratory courses). I will first talk about the two main hardware devices I was trying out (National Instruments USB-6009 Multifunction DAQ and an Arduino Uno microcontroller) and then look at some combinations of software and hardware that I played with, or at least wanted to play with.

In the end using one of the National Instruments USB DAQ devices with LabVIEW is probably the easiest thing to do thanks to the variety of ways that LabVIEW allows you to quickly create DAQ software on the computer side. But thanks to the huge number of software options that you have to talk to the Arduino and how cheap it is, it is very reasonable to use an Arduino as your general purpose DAQ device.

An example DAQ task

In case you are reading along at home, but not too sure what I’m talking about, I will give you an example DAQ task that uses some of the functionality that is discussed in this post. Let’s say you want to do an (admittedly boring experiment) of trying to figure out which colour of coffee cup keeps your coffee warm the longest. This is a tedious experiment because it takes a long time for the coffee to cool, you want to do multiple runs for each coffee cup and you don’t want to have to just sit there and heat the coffee up over and over again. So you build a circuit with a little heater that can be turned on and off by sending a digital signal to it. You have a thermocouple with which you will measure temperature. And you will have the computer record your data every 10 seconds and write your data sets to file.

So you hook your thermocouple up to a thermocouple amp and that output goes to one of your analog input channels. One of your digital out channels is used to turn the little heater on an off. And you will have some software that does a few different things:

  • Requests the temperature of the coffee every 10 seconds from the thermocouple (amp);
  • Once the coffee gets down to 50 degrees, it turns on the heater until the coffee is back at 90 degrees;
  • It writes all the collected data to a file.

So to run this experiment you just stick the thermocouple and heater in the coffee cup, press go and wander off for a while. You come back every once in a while to make sure everything is running smoothly and to change to a different coffee cup once you feel you have enough runs. With fairly simple software running on the computer, all the hardware/software DAQ combos I mention below will work just fine.

National Instruments USB-6009 Multifunction DAQ

This (and its cheaper cousin the USB-6008) seem like they have been the standard low-cost USB DAQ devices for a little while, and are used most often with LabVIEW. The analog inputs are 14-bit and 48k samples/second. It has 5V out and a bunch of digital Input/Output channels.

Arduino Uno Microcontroller

Arduino Uno with one hooked up analog input channel (potentiometer) and three hooked up digital out channels (three LEDs).

Arduinos are teeny computers with a bunch of analog and digital Input/Output channels. You write programs for them and send them via USB to the device.  With the appropriate program (firmware) you can have your Arduino duplicate the functionality of the USB-600x, but with much less impressive resolution and sample rate. The Arduino analog inputs are only 10-bit and my best estimate of the sample rate is roughly 100 samples per second (edit: you should be able to do better than this if you temporarily store data in Arduino’s memory and then send it to the computer in chunks). Keep in mind that the Arduinos only cost $30 compared to >$200 for the USB-600x (and in my example DAQ task I only needed 1 sample every 10 seconds). That resolution and sample rate are also more than adequate for monitoring and controlling a lot of experiments. You can also use the Arduino as a remote data logger and controller with the help of wireless/bluetooth chips, SD card readers and all sorts of other fun things.

The hardware/software DAQ combos

National Instruments USB-6009 and LabVIEW

This combination seems to be a very common DAQ solution in recent times. I think the standard is about to become LabVIEW + NI MyDAQ, where the MyDAQ is also a Multifunction USB DAQ device. It has fewer channels than a USB-6009 but has 16-bit analog channels, 200k samples/second and an output voltage of 15V as opposed to the 5V of the USB-6009. It also has some neat ready-to-go functionality as a Digital Multimeter and only costs about $200. I think that my pros and cons below for the USB-6009 + LabVIEW combination also applies equally well to the MyDAQ + LabVIEW combination.


  • LabVIEW has a lot of built-in and quick-to-get-up-and-running functionality. Graphing, writing to file, signal processing and Input/Output tasks are all quite easy to do once you learn how to do them. As I mention in the cons, you still have to get used to the visual programming environment which is a huge shift in paradigm for many.
  • LabVIEW has a DAQ assistant that helps you build DAQ software quickly. They (National Instruments) also have a program called LabVIEW SignalExpress that is meant to make DAQ (and control, like turning on the heater) tasks without having to do any actual LabVIEW programming. I have not actually tried it, but it comes bundled with a $60 suite version of the student edition of LabVIEW.


  • LabVIEW is crazy expensive, but the student edition of LabVIEW is only $20 (or $60 for the suite) so if you can get the students to buy their own copies to put on their laptops the cost becomes pretty negligible.
  • The USB devices (USB-6008/9 or MyDAQ) are quite reasonably priced ($200-$300), but not as cheap as a $30 arduino.
  • LabVIEW has a steepish learning curve. It takes a few weeks to become fluent using it and I still can’t remember how to do half the things I want to do (I am probably at the “few weeks” mark). Visual programming (in this case LabVIEW) is quite a different paradigm than text-based programming.

Arduino and free software

Let’s assume for this discussion that you want to duplicate the hardware functionality of the National Instruments multifunction DAQ devices with the Arduino instead of programming the DAQ task directly onto the Arduino. To do this you write your own Arduino sketch (the name for a program/firmware that you write to the Arduino’s memory) that can read the Arduino’s analog line-ins and send out a digital output signal when told to. There are some existing firmwares (is that the plural of firmware?) such as Firmata (which comes bundled with the Arduino software) and a firmware that comes with the Python Arduino Prototyping API. You can then use Python (for either firmware) or Processing (for Firmata) to collect data and send control signals to the Arduino.

I did not have great luck getting a DAQ task up and running using Python and Firmata, but was delightfully successful doing so using the Python Arduino Prototyping API. With a little vPython in tow I’m sure you could figure out some pretty fun stuff to do with the data coming in through the Arduino.

I don’t know too much about Processing, but it is a computer language and it seems to be quite easy to use it to make graphs based on the examples I played with that come included with the Arduino software. There are some libraries that (I understand) make it very easy to talk to an Arduino with the Firmata firmware using Processing.


  • This is the cheapest solution. Python and processing are both free and the Arduino is $30.


  • For my example DAQ task, the sample rate and resolution of the Arduino is more than adequate, but the National Instruments USB DAQ devices are really much higher performance which might be needed for experiments more exciting than watching coffee cool.


  • I didn’t do more than try to read something in and send out a signal with the Python Arduino Prototyping API so live-graphing the data (easy in LabVIEW) may be simple to get done using matplotlib or it may be quite tedious. I’m really not to sure.
  • Similarly for Processing I only graphed some data coming in and sent out some signals (to turn on LEDs), but since it is a programming language it should be very straightforward to do things like write data to file or tell the Arduino to turn on the heater once the temperature being read drops below some certain value.

Note: there are a bunch of other software interfacing options for Arduino but I just mention the ones that seemed easiest for me. Mathematica (which is not free) is discussed below.

Arduino and LabVIEW

My version of the Dancing LED example included with the LabVIEW Interface for Arduino.

Early in May this year the LabVIEW Interface for Arduino was released. I found it easy to install everything needed and the examples that I tried worked on my first try. It comes with a custom firmware that you put on the Arduino and then you can get input and output signals just like you would with the National Instruments multifunction DAQ devices.

  • Easy to install everything needed.
  • Cheap if you are using the student edition of LabVIEW.
  • There’s a nice tutorial and lots of examples.


  • You can’t build tasks for interfacing with Arduino using things like LabVIEW SignalExpress or DAQ assistant, but you can build your own VIs and the included examples can serve as a good template.

Arduino and Mathematica

For those that are already familiar with Mathematica (and perhaps not familiar with some of the software solutions above), you just need the M$ .NET framework installed and then you can chat with the Arduino via serial I/O commands from within Mathematica. I’m not sure if you can get Mathematica to play nice with a pre-existing firmware like Firmata. I haven’t used Mathematica much since early in grad school so I am very much at a novice level and can pretty much only do things that require modification of existing code. I did have some trouble getting this whole thing up and running even though Andy Rundquist basically gave me all the code I needed. This was probably mostly due to my novice skill-level using Mathematica.


  • Mathematica is very good at displaying data (and then doing fun stuff with it after).
  • For those already familiar with Mathematica, there is very little learning curve.


  • For this purpose there are much better (and cheaper) software options out there.

Other interesting stuff

  • Vernier Sensor DAQ: This thing costs about the same as a USB-6009 with similar performance, but less analog and digital I/O channels. What it does have instead is 3 analog and 1 digital connections for Vernier sensors and probes. I am interested in getting one of these to play around with.
  • LabPro toolkit for LabVIEW: Vernier probes usually connect to the computer via a LabPro which has a bunch of connections for the probes and then interfaces with the computer via USB. The computer runs Vernier LoggerPro to read the probes and record the data. The LabPro toolkit allows you to use your probes, attached to your LabPro, directly in LabVIEW. I couldn’t get all of this to work, but I didn’t really try that hard either.
  • Pasco ScienceWorkshop Probeware and LabVIEW: This seems to work with only the older ScienceWorkshop probes and not the newer Passport probes. There is an adapter, but I don’t know if that will then let the Passport probes work with LabVIEW.
  • NXT Sensor Adaptor: This lets you use Vernier analog probes with Lego Mindstorms. The first thing that comes to mind is to use a force plate as a gas pedal for a Mindstorm RC car. That would be very fun

The Science Learnification (Almost) Weekly – June 19, 2011

This is a collection of things that tickled my science education fancy in the past couple of weeks or so.

Reflections on Standards-Based Grading

Lots of end-of-year reflections from SBG implementers

  • SBG with voice revisions – Andy Rundquist only accepts (re)assessments where he can hear the student’s voice. When they hand in a problem solution, it basically has to be a screencast or pencast (livescribe pen) submission. The post is his reflections on what worked, what didn’t and what to do next time.
  • Standards-Based Feedback and SBG Reflections – Bret Benesh has two SBG-posts one after the other. I was especially fond of the one on Standards-Based Feedback where he proposes that students would not receive standards-based grades throughout the term but would instead produce a portfolio of their work which best showed their mastery for each standard. This one got my mind racing and my fingers typing.
  • A Small Tweak and a Feedback Inequality – Dan Anderson posts about providing feedback-only on the first assessment in nerd form: Feedback > Feedback + Grade > Grade. This is his take on the same issue which lead Bret Benesh to thinking about Standards-Based Feedback, when there is a grade and feedback provided, the students focus all their attention on the grade. He also has a neat system of calculating the final score for an assessments.
  • Reflections on SBG – Roger Wistar (computer science teacher) discusses his SBG journey and the good and bad of his experience so far.


Flipped classrooms and screencasting

Peer Instruction

  • Why should I use peer instruction in my class? – Peter uses  a study on student (non)learning from video by the Kansas State Physics Education Research Group to help answer this question. The short answer is “Because they give the students and you to ability to assess the current level of understanding of the concepts. Current, right now, before it’s too late and the house of cards you’re so carefully building come crashing down.”

The tale of sciencegeekgirl’s career

Getting them to do stuff they are interested in

John Burk gets busy

The Science Learnification (Almost) Weekly – May 30, 2011

This is a collection of things that tickled my science education fancy in the past couple of weeks or so

Facilitating student discussion

  • Facilitating Discussion with Peer Instruction: This was buried somewhere in my to post pile (the post is almost a month old). The always thoughtful Brian Frank discusses a couple of things that most of us end up doing that are counter-productive when trying to facilitate student discussion. Buried in the comments he adds a nice list of non-counter-productive things the facilitator can say in response to a student’s point to help continue the discussion.

Dear Mythbusters, please make your data and unused videos available for public analysis

  • An open letter to Mythbusters on how to transform science education: John Burk shares his thoughts with the Mythbusters on the good they are doing for science education and the public perception of science (and scientists) and then goes one step further and asks them to share their raw experimental data and video for all their experiments and trials, failed and successful. Worth noting is that Adam Savage is very active in the skeptical movement, a group of folks that consider science education to be a very high priority.

End of year reflections

Well it is that time of the year when classes are wrapping up and folks are reflecting on the year. Here are a couple of such posts.

  • Time for New Teaching Clothes: SBG Reflections: Terie Engelbrecht had a handful of reflection posts over the past couple of weeks. In this post she does a nice job of reminding us that for any sort of unfamiliar-to-students instructional strategy that we need to communicate to the students WHY we have chosen to use this strategy. And this communication needs to happen early (as in first day) and be re-communicated often (since the first day is a murky blur to most of them). On a personal side note I spend most of my first day of class communicating to my students that the instructional strategies I use were chosen to (the best of my abilities and knowledge) best help them learn because I care about their learning. Earlier this month I had a parent tell me that after the first day of class her daughter came home very excited about my class because of my message about my caring about her learning. I couldn’t have smiled bigger.
  • Thoughts on the culture of an inverted classroom: Robert Talbert discusses what is essentially a buy-in issue, with his end-of-term feedback showing 3/4 of his students seeing the value of his flipped/inverted classroom approach. This number is pretty consistent with my own experience, where I am judging the buy-in by the fraction of students that complete their pre-lecture assignments. He makes a nice point at the end that students used to an inverted classroom would probably be much more appalled with a regular lecture course than vice-versa.
  • “Even our brightest students…” Part II: Michael Rees writes about his own (student) perspective on Standards-Based Grading. We need more of these student perspective on education blogs, they are fantastic.

An experiment in not using points in the classroom

  • Pointslessness: An Experiment in Teenage Psychology: Shawn Cornally ran a bioethics class where their work for almost the entire year did not count toward their grade and they discussed readings and movies which were “interesting” (not sure what was used to qualify these things as interesting, but when looking through the list I’m pretty sure I would find most of those things interesting). Without the marks attached the students engaged in the discussions for the sake of engaging in the discussions and those students that usually try to glean what is going on from only the classroom discussions (instead of doing the readings themselves) would often go and do the readings after the discussions.

Effective communication of physics education research

  • Get the word out: Effective communication of physics education research: Stephanie Chasteen posts and discusses her fantastic talk from the Foundation and Frontiers of Physics Education Research – Puget Sound conference (FFPER and FFPER-PS are by far my favorite conferences btw). The talk discussed the generally poor job that physics education researchers do of communicating with the outside world and discussed some strategies to become more effective in this communication.

A few more posts of interest

  • It is just fine to give a quiz based on the homework that’s due today: Agreed! I do it too, but I use online homework that provides instant feedback so they show up in class having already received some feedback on their understanding.
  • Why Schools Should Embrace the Maker Movement: I’m hoping to develop an upper-year electronics course based on Arduino, and requiring only intro computer science and physics as prerequisites. Go Makers!
  • Probing potential PhDs: One of a grad student’s responsibilities is typically to be a teaching assistant and some folks at Stony Brook are taking this into account when interviewing potential new grad students by asking them to explain, at an undergraduate level, the answer to conceptual challenge problems. I think I want this collection of challenge problems for my own use.

The Science Learnification Weekly (March 6, 2011)

This is a collection of things that tickled my science education fancy in the past week or so. Some of these things may turn out to be seeds for future posts.

Screencasting in education

Last week I posted links to a couple of posts on screencasting as part of a collection of posts on flipped/inverted classrooms in higher education. Well this week I’m going to post some more on just screencasting.

  • I mentioned this last week, but Robert Talbert has started a series of posts on how he makes screencasts.
    • In the first post, he is kind enough to spell out exactly what a screencast is among other things.
    • In the second post, he talks about the planning phase of preparing a screencast.
  • Roger Freedman goes all meta on us and posts a screencast about using screencasts (well, it’s actually about his flipped a.k.a. inverted classroom and how he uses screencasts as part of that).
  • Andy Rundquist talks about using screencasting to grade and provide feedback. He also gets his students to submit homework problems or SBG assessments via screencast. He has a ton of other posts on how he uses screencasting in the classroom.
  • It’s unofficially official that #scast is the hashtag of choice for talking about screencasting on twitter.
  • Added March 10: Mylene from the Shifting Phases blog talks about some of the nuts and bolts of preparing her screencasts including pointing out how the improved lesson planning helps her remember to discuss all the important little points.

I taught a 3rd-year quantum mechanics course last year and encouraged the students, using a very small bonus marks bribe, to read the text before coming to class. I think that due to the dense nature of the material, their preparation time would be much more productive and enjoyable if I created screencasts for the basic concepts and then had a chance to work on derivations, examples and synthesis in class. With the reading assignments they were forced to try to deal with basic concepts, synthesis, derivations and examples on their own which was asking quite a lot for their first contact with all those new ideas. I’m pretty interested to try out screencasting and


I have been scheming for a while to bring the Arduino microprocessor (a.k.a. very small open-source computer) into my electronics courses starting with a 2nd year lab. Arduino is a favorite of home hobbyists and the greater make community.

This is a collection of things that tickled my science education fancy in the past week or so. Some of these things may turn out to be seeds for future posts.

Standards-based grading in higher education

Standards-based grading (SBG) is a pretty hot topic in the blogosphere (SBG gala #5) and on twitter (#sbar). There’s a nice short overview of standards-based grading at the chalk|dust blog.

I am very fond of the idea of basing a student’s grade on what they can do by the end of the course instead of penalizing them for what they can’t do along the way when they are still in the process of learning. I also love the huge potential to side-step test anxiety and cramming.

Folks using this grading scheme/philosophy (a.k.a. the SBG borg) are mostly found at the high-school level, but there are some folks in higher ed implementing it as well. I am strongly considering trying out SBG in one of my future upper-division courses, such as Quantum Mechanics, but there are some implementation issues that I want to resolve before I completely sell myself on trying it out. I am in the middle of writing a post about these issues and look forward to discussing them with those that are interested.

Special thanks go to Jason Buell from the Always Formative Blog for bringing most of these higher ed SBG folks to my attention. He has a great bunch of posts on SBG implementation that fork out from this main page.

SBG implementations in higher ed:

  • Andy Runquist is using collaboarative oral assessments as part of his SBG implementation. This is the only higher ed Physics implementation that I have encountered so far and I have been chatting Andy up a ton about what he is up to in his first implementation.
  • Adam Glesser from the GL(s,R) blog has tons of SBG posts: He is in his first year of a full SBG implementation in his Calculus courses. He gets bonus points for being a boardgame geek and playing Zelda with his 4-year old son.
  • Sue VanHattum talks about wading into the water as she slowly moves into SBG implementations by way of a mastery learning implementation. Search her blog for other SBG posts.
  • Bret Benesh comes up with a new grading system for his math courses with help from the SBG borg.
  • Added March 10: Mylene teaches technical school electronics courses and replaces the achievement levels for each standard with a system where the standards build on each other and are assessed using the binary yup or nope system.

That’s it for this week. Enjoy the interwebs everybody.

Robert Talbert