My son and I went to the lab at 11 this morning, to see if he could get PteroDAQ to work on the Windows machines. He fairly quickly got things working with Python3, and he eventually even found the problem in Python2 and so it should work with either now on Windows 7 machines. On the Macs, the alpha version of PteroDAQ works on Python3, but still seems to hang with Python2.
There are still a lot of features unimplemented in PteroDAQ, but he is planning to do the alpha release tonight. The most obvious missing features is that the digital channels don’t record yet (you can select them, but the communications protocol for digital channels is not implemented yet). Another obvious missing feature is sampling on interrupts instead of a timer—again, the GUI provides the options but the implementation isn’t there yet. I expect that these two features will be in place by some time next week—luckily they are not needed for the class this quarter. There are a number of other features that are planned, but they are not visible in the GUI, so no one will miss them.
Incidentally, I came up with a really stupid slogan for the package: “PteroDAQ: the P is Psilent”, because my son gets annoyed with me for always pronouncing the “P”—I pronounce the “P” in “pterodactyl” also.
While my son was working on PteroDAQ, I was checking out the soldering irons that had been left for the lab to use—of the 5 old irons left there, two were usable (though both had broken strain reliefs on the cords to the irons). I complained to the lab support staff, since I’d been told that a full complement of 12 good digital Weller irons had been purchased for the lab in the Fall. It turns out that all the good irons had been reassigned to senior design projects. The staff managed to round up 3 of them, so we had 5 working soldering stations in time for the class. There are 3 weeks during the quarter when students need to solder—weeks 1, 3, 9, and 10—and I hope we can get the irons at each of those times (or they buy some more).
After a quick lunch at the taco truck (Ray’s Catering), we continued setting up the lab. My son got Python3.4 installed on all the Windows machines (with PySerial) and put the version that worked with Python3 on those machines. His getting it working with Python2.7 came later, and that version is only on his flash drive and the machine he worked on. While he did that, I set up the soldering stations, the secondary containment tubs and coffee cups, and the water sources: a coffee urn full of hot water (about 80–85°C), a large thermos of ice water, and a couple of pitchers of water from the tap.
When class started, the lab staff showed up with the kitted parts to issue to the students. One student was late, because it was her first class in Baskin Engineering, and finding the lab is a bit difficult if you don’t know that most of the electronics labs are clustered around “Jack’s Lounge”—the study area surrounding the West Mechanical Chase. Everyone got their kits, though, before the lab support person had to leave.
Our first order of business was to unpack the parts and check off whether everyone had everything. There were certain parts that I knew would be missing, because the lab staff had forgotten to put in part of the order to ITEADstudio when they ordered the custom PC boards. Those parts were ordered late and were shipped from Hong Kong yesterday. I hope we get them by next week—we need the capacitors for the Thursday lab next week. One student was missing his electret microphone, which he’ll need by next week—he’ll have to talk to the lab staff about his missing part. They do have spares, since I had overestimated how many students would be taking the class this Spring. I had expected 20–40 and ended up with only 9.
The resistor assortment that was ordered for them this year is 20 each of 64 different values (from 1Ω to 10MΩ) rather than 10 each of 112 values like I ordered last year. (This was my choice, not a staff change of order—it saves about $5 on the resistors, which were the most expensive thing in the parts kit.) That means they’ll get a little less precision moving from calculated values to what is actually available, but they’ll have more of their favorite values.
Another minor problem in the packaging is that the EKG electrodes had not been sealed into ziploc bags. I’m afraid that they’ll dry out completely by the end of the quarter and urged the students to get them into sealed ziploc bags right away. We’ll find out at the end of the quarter whether the electrodes are still working. (Maybe I’d better stock up on some myself, so that I can provide the students with them if theirs have dried up. The electrodes cost 22¢ each in quantity, so I don’t want to just give them away to students who were careless with theirs, though.)
The lab also had no 22 gauge wire—just a couple of almost empty spools of 24 gauge in red and black. The lab staff has ordered a small quantity of 22 gauge wire for the lab, which I’ll have to hide to keep the other class in the lab from stealing—they unspool 10s of feet of wire, use it once and throw it away. I don’t know who is supervising them (not their professor), but they seem to have no notion that wire costs money.
A bigger problem was that the students had no thermometers, and today and Thursday were the two labs that needed the thermometers! Luckily I spotted the lab manager wandering by and complained to him about the missing thermometers. He knew about the problem, but hadn’t told me, because the thermometers were supposed to come in today. Luckily, he came up with a work-around, finding some cheap digital thermometers that are used in another lab (not as cheap as the alcohol thermometers in the student kits, but more precise and easier to use) and loaning them to us.
After checking all the parts, we proceeded to soldering headers onto the Freedom boards. Only one or two of the nine students had soldered before, and the 64 solder points on the board is a lot for a newbie, particularly when they wanted me to inspect their solder joints after every one or two. A couple of students got solder bridges that were easily removed by reheating the solder, and a lot had cold solder joints, which were also fixed by reheating the joint. We did not finish the soldering, because I wanted them to get to the temperature measurements as soon as the digital thermometers arrived.
I found that I had forgotten to get tape to attach the thermistors and the thermometers so that their tips were together, so while I ran over to the faculty services office to get tape, my son explained how to use the multimeters as ohmmeters. The students then proceeded to measure resistance and temperature in their coffee cups (kept always within the secondary containment tubs—I don’t want any spills in the lab!). I had to run to the drinking fountain a couple of times to refill the room temperature pitchers, and to the lab upstairs once to get more ice.
The goal was to get at least 10 resistance measurements at widely spaced temperature ranges over as wide a range as possible. Many of the students got over 20 readings, with a range from about 3°C to about 80°C. Some students had trouble getting the low and high ends of the range—finally it was explained to them that you had to prechill or preheat the ceramic cup, or it would change the temperature of the water it contained. The notion of thermal mass (which they supposedly had in high school chemistry) does not seem to have worked its way into their model of the world yet.
So despite the delays in getting PteroDAQ written (I expected the alpha release at the beginning of January) and the screwups and delays in ordering parts and tools for the lab, almost everything that was supposed to get done in the first lab got done, and we’ll have time in the second lab session on Thursday to catch up and get everything done. We’ll finish up the soldering then and go over the multimeters more carefully, before they try measuring voltages from their thermistor+resistor voltage dividers, both with multimeters and with their Freedom KL25Z boards.
It took me 45 minutes after the students left to clean up the lab and dump all the water in the bathroom sinks, so I was in the lab (except for a short lunch break) from 11 to 5:45. Maybe it is a good thing that I don’t have so many students that I need two lab sections!
Tomorrow we’ll analyze the data together, and the students will learn how to use Gnuplot to plot data, to plot models, and to fit models to data. I’m hoping that this year’s design reports will have better graphs than last year’s—it took the students a long time to get the message that I cared about things like correct axis labeling and a long time for them to learn how to change the gnuplot scripts themselves. This year I’m planning to walk them through analyzing their own data in-class, rather than expecting them to figure things out from provided examples.