# Gas station without pumps

## 2014 March 5

### Sixteenth day: Arduino demo

Filed under: freshman design seminar,Pressure gauge — gasstationwithoutpumps @ 20:57
Tags: , , , , , ,

Today’s class in the freshman design seminar went well. I started by returning the drafts of the design reports and giving some generic feedback. I realized on reading the reports that I had not given a good explanation of what I meant by describing the components of the system—two of the groups had given me long parts lists on the first page of their reports, something that would only really be appropriate in an appendix. I explained that what I wanted was what the main blocks in the block diagram were, and that they should use the block diagram to organize their report, writing a page for each block. I also suggested that they use the block diagram to partition the project among the group members, with each group member working on a different component, then getting back together to reconcile any discrepancies. Note that this is much more like real engineering group work than the usual K–12 group project, which is usually done most efficiently by turning the whole project over to the most competent member of the group.

After the feedback on design reports, I offered the students a chance to get a demo of building an Arduino program with sensing and motor control. This was a completely extemporaneous demo—I had gathered a number of possibly useful components, but had not tested anything ahead of time nor even figured out what order to do the demo in.  I asked the students if they wanted me to start with sensing or control—they asked for the motor control first.

I started by pulling a motor out of box of motors I had gotten when the elementary school my wife works at cleaned out their closets.  I told the students that I had no idea what the spec of the motor were, but since it came from an elementary school, it probably ran on 3v batteries.  I tested the motor by hooking it up first to the 3.3v, then to the 5v power on my Arduino Uno.  It spun just fine on 3.3v, but squealed a bit on 5v, so we decided to run it on 3.3v.

I then pulled out the Sainsmart 4-relay board that I had bought some time ago but never used.  I explained how a relay worked, what single-pole double-throw meant, and normally open (NO) and normally closed (NC) contacts. I used the board unpowered with the NC contacts to spin the motor, then moved the wire over to the NO contacts to turn the motor off.  I then hooked up power to the board and tried connecting input IN1 to power to activate the relay.  Nothing happened. I then tried connecting IN1 to ground, and the relay clicked and the motor spun.  The inputs to the Sainsmart board are active low, which I explained to the students (though I did not use the terminology “active low”—perhaps I should have).  I did make a point of establishing that the relay provides very good isolation between the control logic and the circuitry being controlled—you can hook up AC power from the walls to the relay contacts without interfering with the logic circuitry.

Having established that the relay worked, the next step was to get the class (as a group) to write an Arduino program to control the motor using the relay. With me taking notes on the whiteboard, they quickly came up with the pinMode command for the setup, the digitalWrite and delay for the loop, and with only a tiny bit of prompting with a second digitalWrite and delay to turn the motor back off.  They even realized the need to have different delays for the on and off, so we could tell whether we had the polarity right on the control.  Here is the program we came up with:

#define RELAY_PIN (3)

void setup()
{   pinMode(RELAY_PIN, OUTPUT);
}

void loop()
{
digitalWrite(RELAY_PIN,LOW); // turn motor ON via relay (or off via transistor)
delay(1000);  // on for 1 second
digitalWrite(RELAY_PIN,HIGH); // turn motor OFF via relay (or on via transistor)
delay(3000); // off for 3 seconds
}


I typed the code in and downloaded it to the Arduino Uno, and it worked as expected.  (It would be nice if the Arduino IDE would allow me to increase the font size, like almost every other program I use, so that students could have read the projection of what I was typing better.)

I then offered the students a choice of going on to sensing or looking at pulse-width modulation for proportional control.  They wanted PWM. I explained why PWM is not really doable with relays (the relays are too slow, and chattering them would wear them out after a while.  I did not have the specs on the relay handy, but I just looked up the specs for the SRD-05VDC-SL-C relays on the board: They have a mechanical life of 10,000,000 cycles, but an electrical life of only 100,000 cycles.  The relay takes about 7msec to make a contact and about 3msec to break a contact, so they can’t be operated much faster than about 60 times a second, which could wear them out in as little as half an hour.

So instead of a relay, I suggested an nFET (Field-Effect Transistor). I gave them a circuit with one side of the motor connected to 3.3V, the other to the drain of an nFET, with the source connected to ground.  I explained that the voltage between the gate and the source (VGS) controlled whether the transistor was on or off, and that putting 5v on the gate would turn it on fairly well. I then got out an AOI518 nFET and stuck it in my breadboard, explaining the orientation to allow using the other holes to connect to the source, gate, and drain.

I mentioned that different FETs have the order of the pins different, so one has to look up the pinout on data sheet. I pulled up the AOI518 data sheet, which has on the first page “RDS(ON) (at VGS = 4.5V) < 11.9mΩ”. I explained that if we were putting a whole amp through the FET (we’re not doing anywhere near that much current), the voltage drop would be 11.9mV, so the power dissipated in the transistor would be only 11.9mW, not enough to get it warm. I mentioned that more current would result in more power being dissipated (I2R), and that the FETs could get quite warm. I passed around my other breadboard which has six melted holes from FETs getting quite hot when I was trying to debug the class-D amplifier design. The students were surprised that the FETs still worked after getting that hot (I must admit that I was also).

I hooked up the AOI518 nFET using double-headed male header pins and female jumper cables, and the motor alternated on for 3 seconds, off for one second. We now had the transistor controlling the motor, so it was time to switch to PWM. I went to the Arduino reference page and looked around for PWM, finding it on analogWrite(). I clicked that link and we looked at the page, seeing that analog Write was like digitalWrite, except that we could put in a value from 0 to 255 that controlled what fraction of the time the pin was high.

I edited the code, changing the first digitalWrite() to analogWrite(nFET_GATE_PIN, 255), and commenting out the rest of the loop. We downloaded that, and it turned the motor on, as expected. I then tried writing 128, which still turned the motor on, but perhaps not as strongly (hard to tell with no load). Writing 50 resulted in the motor not starting. Writing 100 let the motor run if I started it by hand, but wouldn’t start the motor from a dead stop. I used this opportunity to point out that controlling the motor was not linear—1/5th didn’t run at 1/5th speed, but wouldn’t run the motor at all.

Next we switched over to doing sensors (with only 10 minutes left in the class). I got out the pressure sensor and instrumentation amp from the circuits course and hooked it up. The screwdriver I had packed in the box had too large a blade for the 0.1″ screw terminals, but luckily the tiny screwdriver on my Swiss Army knife (tucked away in the corkscrew) was small enough. After hooking up the pressure sensor to A0, I downloaded the Arduino Data Logger to the Uno, and started it from a terminal window. I set the triggering to every 100msec (which probably should be the default for the data logger), the input to A0, and convert to volts. I then demoed the pressure sensor by blowing into or sucking on the plastic tube hooked up to the sensor. With the low-gain output from the amplifier, the output swung about 0.5 v either way from the 2.5v center. Moving the A0 wire over to the high-gain output of the amplifier gave a more visible signal. I also turned off the “convert to volts” to show the students the values actually read by the Arduino (511 and 512, the middle of the range from 0 to 1023).

Because the class was over at that point, I offered to stay for another 10 minutes to show them how to use the pressure sensor to control the motor. One or two students had other classes to run to, but most stayed. I then wrote a program that would normally have the motor off, but would turn it full on if I got the pressure reading up to 512+255 and would turn it on partway (using PWM) between 512 and 512+255. I made several typos when entering the program (including messing up the braces and putting in an extraneous semicolon), but on the third compilation it downloaded successfully and controlled the motor as expected.

One student asked why the motor was off when I wasn’t blowing into the tube, so I explained about 512 being the pressure reading when nothing was happening (neither blowing into the tube nor sucking on it). I changed the zero point for the motor to a pressure reading of 300, so that the motor was normally most of the way on, but could be turned off by sucking on the tube. Here is the program we ended up with

#define nFET_GATE_PIN (3)

void setup()
{   pinMode(nFET_GATE_PIN, OUTPUT);
pinMode(A0, INPUT);
}

void loop()
{ int pressure;
if (pressure < 300)
{    digitalWrite(nFET_GATE_PIN,LOW);  // turn motor off
}
else
{   if (pressure>300+255)
{ digitalWrite(nFET_GATE_PIN,HIGH);  // turn motor on full
}
else
{    analogWrite(nFET_GATE_PIN,pressure-300); // turn motor partway on
}
}
}


Note: this code is not an example of brilliant programming style. I can see several things that I would have done differently if I had had time to think about the code, but for this blog it is more useful to show the actual artifact that was developed in the demo, even if it makes me cringe a little.

Overall, I thought that the demo went well, despite being completely extemporaneous. Running over by 10 minutes might have been avoidable, but only by omitting something useful (like the feedback on the design reports). The demo itself lasted about 70 minutes, making the whole class run 80 minutes instead of 70. I think I compressed the demo about as much as was feasible for the level the students were at.

Based on how the students developed the first motor-control program quickly in class, I think that some of them are beginning to get some of the main ideas of programming: explicit instructions and sequential ordering. Because we were out of time by the point I got to using conditionals, I did not get a chance to probe their understanding there.

## 2014 February 22

### Diode-connected nFET characterisitics

Filed under: Circuits course,Data acquisition — gasstationwithoutpumps @ 19:20
Tags: , , , ,

Test circuit for determining I-vs-V curves for a diode-connected nFET. The shunt resistor R2 was chosen from 0.5Ω to 680kΩ, and R3 was selected to keep E23 above 0 (0.5Ω to 150Ω).

In More mess in the the FET modeling lab, I showed I-vs-V plots for NTD5867NL nFETs, both with a fixed power supply and load resistor, and diode connected (Vgs=Vds).  But this year, the NTD5867NL FETs were not available from Digikey, so we are getting AOI518 nFETs instead.  I decided to try characterizing these with the KL25Z board.  If I power the test off the KL25Z board’s 3.3v supply, I can take fairly high currents, as the board uses a NCP1117ST33T3G LDO regulator, which can the spec sheet claims can deliver up to 1A (800mA, if we limit the dropout to 1.2v). I’m only limited by the USB current limit (500mA), to keep the laptop from shutting off the USB port.

I used essentially the same circuit for testing a diode-connected AOI518 nFET as I used for testing the Schottky diodes, but I did not put a capacitor across the FET.  (Well, initially I left the 4.7µF capacitor there, but I was noticing changing values that looked like RC charging when I was testing at small currents, so I removed the capacitor.)

Because the 3.3v supply droops if too much current is taken from it, I used the internal 1V bandgap reference to determine the scaling of the analog-to-digital converter on each reading.  The voltage VDS is (E20-E21)/(BANDGAP), and the current IDS is (E22-E23)/(R2*BANDGAP).

Voltage vs current for diode-connected nFET. The model that fits the data (above 1µA) is that of subthreshold conduction, even when the current is over 100mA. (click to embiggen)

I get a very good fit to the data (above 1µA) with the subthreshold conduction model (essentially the same as a junction diode, but using n VT instead of VT, where n is determined by the size and shape of the FET).  The value of n for this FET seems to be around 830mV/26mV = 32. The circuit models I’ve seen on the web seem to claim that I should be using a saturation-current model for a diode-connected FET, but that model doesn’t fit the data at all.

There is a very clear thermal shift in the curve for the high-current tests.  As the transistor warms up the current increases for a given voltage.  This is equivalent to the threshold voltage Vthr dropping with temperature.  This is consistent with the data sheet, which shows a lower threshold voltage but higher on-resistance (at 10A) at 125° C than at 25° C.

I’m not seeing any evidence of the weird negative resistance that I saw on the NTD5867NL nFETs. (I tried checking the NTD5867NL nFET with the same testing setup as for the AOI518, and it definitely still shows weird behavior between 10 and 30 mA.)

Because large nFETs are often used to switch inductive loads (motors, loudspeakers, inductors in switching regulators, …), they incorporate a “flyback” diode in the FET.  Normally, this diode is back-biased and does not conduct, but if an inductive load needs a current and there are no transistors that are on to provide the current, the diode conducts and keeps the output voltage from going too far below ground.

nMOS and pMOS transistors with flyback diodes. If both transistors are off, but the inductor L1 still wants current, it has to come through one of the flyback diodes D1 or D2. They keep the output voltage from going too far outside the rails.

I characterized the flyback diode on the AOI518 nFET the same way as before, now connecting the gate and the source to the higher voltage, and the drain to the lower voltage.

Below about 0.66 V, the flyback diode has a fairly normal exponential current with voltage, but above that it seems to have a linear relationship between current and voltage, with a dynamic resistance of about 180mΩ.
click to embiggen

The red points with the 0.5Ω shunt go up to an amp, which warms the FET enough to change its characteristics—the lower set of points are the warmer set.

I can also use the measurements of the flyback diode with the ½Ω shunt to characterize the LDO voltage regulator on the Freedom KL25Z board:

For currents up to 400mA, the LDO voltage regulator behaves like a 3.332 V source in series with a 55mΩ resistor.
click to embiggen

The data sheet claims that there should only be a 10mV drop in voltage for an 800mA current, and I’m seeing a 290mV drop.  The extra drop is not from the LDO misbehaving, but from the USB voltage dropping—one is only supposed to take up to 500mA from a USB supply and the MacBook Pro apparently has a soft knee at 500mA, rather than an abrupt shutoff.  I suspect that if I took the full amp for very long, the laptop would shut down the USB port, as it does if the USB 5V is accidentally shorted.

## 2013 March 2

### Rethinking the power-amp lab yet again

Filed under: Circuits course — gasstationwithoutpumps @ 14:05
Tags: , ,

In Rethinking the power-amp lab again, I described the failure of my class-D power amp on Thursday afternoon, and the dilemma I faced in whether to revise the lab or cut it from the course.  Some of the students favored cutting it (they’re hitting end-of-quarter crunch time), but I know that they would not learn any of the material that lab is intended to help them understand without actually doing the lab.  Also, if I had one less lab report to evaluate them on, I’d probably have to add a final exam, which I don’t think they would like any better.

So Thursday night I woke up around 3 a.m. and thought about ways to salvage the power-amp lab.  First, I had to figure out what differences there were between the circuit I had working at home, and the same board, with slightly different power-supply options in the lab on campus.  The only real difference was the voltages for the power-amp stage (the comparator and power FETs).  At home, I was using a 6.6V power supply—the same one I was using for the pre-amp stage, so that the FET sources were at 0V and 6.6V (and the loudspeaker had a DC bias that is undesirable).  On campus, the preamp had a +6V supply, and the comparator and FET sources were at ±4V, but I wanted to be able to go to ±7V or even ±9v.

I came up with some ideas for potential solutions.

1. The first was a fairly trivial one: just have them use a single 6V power-supply the way I had, and not worry about the DC offset to the loudspeaker. I don’t like this solution very much, because it doesn’t provide much power to the speaker (about 0.5W), and has that DC bias.
2. A minor variant of the first idea is to add a large series capacitor to the loudspeaker.  Our big electrolytics are 470µF, and we’d have high-pass filtering with a corner frequency of about 66Hz, which is ok for the small speakers (whose resonant frequency is around 155Hz.  The 16V limit for the electrolytic capacitor is no problem, since the pre-amp using an MCP6004 chip shouldn’t really be run with more than 6V.
3. Another minor variant eliminates the series capacitor by using a ±3V supply, with the preamp powered from -3V and +3v.  This has the advantage of eliminating the need for a virtual ground in the pre-amp, as well as powering the loudspeaker cleanly.  But we are still limited to 0.5W.
4. The second major solution was to change the output stage from having a simple cMOS inverter (with the pFET and nFET gates connected together) to using a separate comparator to drive each of the FET gates.  By changing the pull-up resistors on the open-collector outputs of the comparators, I could adjust the rise and fall rates.  By using a very small pull-up, the voltage would rise rapidly, fall slowly, and not get very low.  By using a larger pull-up, the voltage would fall rapidly, rise slowly, and get quite low.  Since I don’t want the nFET and pFET on at the same time, I want to turn the FETs off quickly, but on slower, so that one is off before the other turns one.  That lead me to a design with a large pull-up resistor for the nFET gate and a small one for the pFET gate.  (“Large” and “small” are relative terms here—mine were within a factor of 10 of each other, since they are constrained by how much current the comparator can sink and by how fast we want the gate voltages to change.

On Friday morning, I went into the lab and tried out potential solutions 1, 3, and 4.  (Since we have a dual supply handy there is no reason not to use it.)

Since solution 1 is essentially identical to what I had debugged at home (but with a 6V supply instead of a 6.6V supply) it worked fine.  Splitting the supply into a +3V and a -3V supply with the loudspeaker connected to the middle eliminated the DC bias on the speaker without changing anything  else, so it worked fine also.

It took me a while to debug the design with the separated comparators, mainly because I had forgotten to allow for one very important constraint: the inputs to the comparators have to be between the power rails of the comparator.  With the preamp powered from 0V and 6V, and the comparators powered at ±3V, that constraint was violated.  I upped the voltage for the power stage to ±6V and the comparators worked ok.  I did have to fuss around a bit with pull-up resistor for the nFET, since we need to make sure that the comparator will have an output low voltage < 1V above the bottom power rail.  That means that the size of the pull-up for the nFET needs to be based on the power-supply voltage and the current sunk by the comparator (which we should assume is around 5–6mA if the output voltage is below 1 v, up to 7.5mA if we can tolerate a larger output voltage from the comparator).  The pull-up for the pFET can be much smaller (so that the pFET turns off quickly), but that means that the pFET gate does not go close to the lower power rail.  Still, the pFET works fine as long as the gate is at least 3V below the upper power rail, so if we can get away with a fairly small resistor.  I probably should play around with the resistors some more on Monday, so that I can give the students better guidance on how to design them based on experience, and not just theory.

The separate-comparators option is the closest to a real power-amp design, and is the one I think I’ll write up a lab-handout addendum for this weekend.  I’ll try to get that done and an EKG lab handout, and make a final decision about whether to drop the power-amp lab (adding a final instead) or keep it.

I’ve definitely rejected the idea of a bipolar current gain before the FET gates (too complex for a 1-week lab) and pretty much rejected the idea of class-A amplifier (both the DC offset and the heating of the FET are problematic).  I will think about switching to teaching a bipolar class-AB power amp next year, though, instead of a class-D.

## 2013 February 28

### Rethinking the power-amp lab again

Filed under: Circuits course — gasstationwithoutpumps @ 22:30
Tags: , ,

I took the breadboard that had been working for me at home for the class-D power amp to the lab today, and tried getting it to work in the way that I expected the students to do it, with 3 power supplies.

It failed miserably.

Even after tinkering with the circuit a bit, the FETs kept getting hot (indicating that I was not successfully having only one on at a time).  I’ve already released the handout for the power amp lab,  but the students will not be able to get the amplifier working from those instructions.  I have several choices facing me:

• Get rid of the power-amp lab entirely, and take 2 weeks for the EKG lab.  Originally, I had planned 2 weeks for the EKG lab, as it is slightly more difficult than the pressure sensor lab, but the difference in difficulty is not 2-to-1.
• Modify the class-D lab to use a single power supply, as I’ve been doing at home.  I think that the problem I was facing was that the larger voltages of the dual supply made the overlap range where both FETs were on much larger, and the simple cMOS-inverter output stage could not be driven fast enough to pass rapidly through the range.  It may be enough to use two 3-v supplies, with everything except the loudspeaker running from +3V to -3V, and the other end of the loudspeaker at 0V.  I’d be limited to the voltage range of the MCP6004 chip, which is 6V (the absolute max is 7V, and I’ve been running them at 6.6V at home without much trouble, though I’ve probably shortened their lifetime a lot).  That would limit the power to the loudspeaker to around 0.6W, which is still a lot more than the op amps can deliver.  Dual 3V supplies (and no extra 6v supply) would be a simpler design that what I have in the handout, but it should be very close to what I debugged at home.  I should probably try it out in the lab tomorrow.
• Use bipolar transistors to drive the FET gates with more current so that they switch faster.  We haven’t talked about bipolar transistors (except very,very cursorily in the context of the phototransistor, and the lab reports indicated that only one or two people had followed through to understand how the phototransistor works).
• Give up on class-D and do a simpler class-A amplifier with the loudspeaker as the load resistance.  This is not the right way to use the loudspeaker, since it will have a large DC bias (pushing the cone out or pulling it in, rather than having it rest in the middle), but is a very simple circuit, and can use negative feedback from the loudspeaker to correct for any nonlinearity in the the circuit.  It is also horribly inefficient, and whatever FET we use is almost sure to get warm. We could solder a heat sink onto the transistors, if needed, but that adds a different sort of complexity to the lab.
• Do a class-A amplifier with a power bipolar transistor.

I don’t really like any of these solutions, but I’ll have to pick one this weekend and write it up for the students.  If we start the EKG lab a week earlier than planned, I’ll have to try building an EKG amplifier on the protoboard this weekend, to make sure that it works well enough, and get the handout for it written. Doing a lower-voltage class-D amplifier would require the least modification to the handout.  Bipolar transistors would require not only acquiring the transistors, but debugging the lab with bipolars (and I might want to switch back to a class-AB amplifier if I use bipolars).

## 2013 February 16

### Teaching students to build and use models

Filed under: Uncategorized — gasstationwithoutpumps @ 11:45
Tags: , , , , , ,

In a comment on her post Student Thinking About Abstracting, Mylène says

What frustrates me and disorients my students is that those justifications are never discussed, and even the fact that this is a model is omitted. To further “simplify” (obscure) the situation, most discussions of the matter don’t distinguish between two ideas: “the model has a change in behavior at 0.7V,” vs. “they physical system has a change in behavior at 0.7V.” Finally, the chapter starts with the most abstracted model (1st diode approximation) and ends with the less abstracted (3rd diode approximation).

On getting students to understand models:  I agree that this is a huge problem.  I’ve been trying various techniques and can’t claim to have found a silver bullet.

One thing I tried in class yesterday (disguised as a gnuplot tutorial) was to build up a model a little at a time to match measured data.  I was trying to build an equivalent-circuit model for a loudspeaker, so I started by gathering data (rms voltage measurements across the loudspeaker and across a series resistor at different frequencies) and plotting magnitude of impedance vs. frequency from the data, then building the model a component at a time.  Before doing the modeling, we had spent some time looking at the behavior of building-block circuits (R+C, R||C, R+L, R||L, C||L, C||L||R) using gnuplot, so I could ask them things like “how can we model the impedance increasing with frequency above about 1kHz?”  We could then immediately modify the model and plot the results.  Once things were close, we could use gnuplot’s “fit” command to tweak the parameters.

We didn’t start with “loudspeakers are …”, though we did start with one of the specs—that this was an 8Ω loudspeaker—for our first model. I didn’t even point out to the students that the frequency of main resonance peak is given as a spec on the data sheet. The data sheet gives it at 191Hz, while our measured data show 148Hz (more than 22% off, while factory tolerances for the resonant frequency are usually ±15%). They also give the voice coil inductance as 0.44mH, while our model gets 35µH, a factor of 12.6 difference! And they give the Qes of the resonance peak as 3.52, while our model of the R||L||C for the peak has $Q_{es}=R\sqrt{C/L} = 5.71$.

Maybe the inductance difference can be explained by the standard measurement for the voice-coil inductance being made at 1kHz for the Theile-Small parameters, while I fitted for a wider frequency range and added an extra 112µH inductor in parallel with a 32Ω resistor to bump up the impedance around 10kHz. Or maybe my fitting is a really bogus way to get the inductance, since I’m only looking at the amplitude and not the phase of the signal, and non-linear resistance could throw things off. Or maybe the Parts-Express people mis-measured or had a typo—I have no idea what measurements they made to get the parameters they report, or maybe these loudspeakers were so cheap because they didn’t meet the specs, though they are certainly good enough for our lab.

I think that one could do the same sort of model-building with diodes (the part whose models Mylène’s students were confusing with reality): start by measuring the I-vs-V characteristics. The setup I used to get a lot of data points with the Arduino for characterizing the FET in an electret mic might be a good one for them to use, though the unipolar ADC in the Arduino might be more challenging for characterizing diodes.  Then try fitting different curve families to the data.  Forget about physics for explaining how the diodes work, but concentrate on finding simple models that fit the data. For example, the FET models we used for the mic are not quite the standard ones, since there is a clear slope in the saturation region, and it doesn’t match the channel-length modulation model—but it can be fit with some simple curves.

Of course, I gave up on some modeling before even having the students collect data themselves—the power FETs they are using are incredibly messy, having threshold voltages that shift a lot as the transistors warm up and having an undocumented negative dynamic resistance region when diode-connected.

So it is important that their attempts to build models be of phenomena that are relatively easy to model, but they should build and fit the models (with some guidance) rather than just be handed them. I made the mistake of handing them models to fit for the electret mic lab and for the electrode lab.  They not only didn’t understand the models, but they didn’t understand how to do the fitting.

I’m planning next year to do the model-building/gnuplot tutorial much earlier in the quarter, before they do the electrode labs, so that they can build the electrode models with some understanding. I’ll need to rearrange some other material, to do inductors much sooner, if I plan to use the loudspeaker data again.  I may want to rearrange the labs a lot next year, since all of my first three labs involved model fitting, and the students weren’t ready for it.  It may be better to move the sampling lab (which is currently lab 6) into the beginning, so that students can learn to use the Arduino in a simpler lab.  As currently written, though, that lab calls for designing a high-pass filter for DC level shifting and a low-pass filter for removing aliasing, neither of which are suitable for a first-week lab in circuits.

Scheduling the labs and the classes is difficult. Fitting in all the topics they need before each lab is a tricky jigsaw problem, particularly when I discover them having problems with topics that I assumed they knew or could pick up quickly. Sigh, some stuff in the first week or two of lab is probably going to have to be “magic” as they’ve learned so little in physics classes that I can’t count on them having any useful lab or modeling skills when they come into the class.  I just have to decide which things I’m willing to give them, rather than having them do for themselves.

Currently, I’m leaning toward having every lab have a design component, and to have them build models for important concepts, but I’m willing to give them a model for thermistor behavior that they just have to fit the parameters for.  The design in the first two labs this year is very light (selecting a resistor value), but the measuring and model fitting is pretty heavy.  The electrode lab has no design currently, but a lot of measuring and model fitting.   I think I underestimated the relative difficulty of model fitting and design for these students, and may need to move the model fitting later in the quarter.  I don’t think I can start with RC filters in the first week though, as they need voltage dividers, complex numbers, sinusoids, and complex impedance—probably at least 4 classes worth of material.  Maybe by week three, though.

Next Page »