Gas station without pumps

2017 April 29

Santa Cruz Mini Maker Faire 2017

Today I spent about 10 hours on the 2017 Santa Cruz Mini Maker Faire.  The hours for the Faire were 10–5, but I spent some time setting up and tearing down afterwards, so I left the house around 8:30 a.m. and had the bike trailer unpacked and everything back in the house by about 6:30 p.m.  I figure that I spent only about 10 hours earlier on setup for this Faire: applying for the Faire, setting out all the displays and testing them at home, preparing new blurbs for my book and blog, making table signs telling people how to use the interactive parts of the display, blogging about the Faire, and doing load-in last night.  That is a lot less than last year, as I was able to reuse a lot of the design from last year.

Here is the table display I ended up with:

The bare corner at the front left was reserved for the students in my freshman design course who were coming to display their muscle-controlled robot arm, but they decided to set up in back (you can see one of the lead students in the background).

I had four interactive displays (from left to right):

  • A pair of function generators and an oscilloscope showing Lissajous figures.  I changed this from last year, as I did not use the FG085 function generator this year, but one of the function generators from the Analog Discovery 2.  I still used the Elenco FG500, despite the very low quality of its waveforms, because it has a knob that is easy for kids to turn, and is easy to reset if they mess it up (unlike the jamming buttons on the FG085).  I did not use the second function generator on the Analog Discovery 2, as I did not want kids playing with just a software interface (and a rather complicated one at that).  It might even be worthwhile for me to build a simple audio sine-wave oscillator with a single big knob over the summer, so that I can have something for kids to play with that is fairly robust and that can’t be easily set into a weird state.  I could even do two, just for Lissajous figures, though having one fixed oscillator worked well this time.  I had the Analog Discovery 2 oscilloscope showing on the laptop next to the old Kikusui CRT oscilloscope, showing both the waveforms and the XY plot, so that I could explain to adults what was happening with the Lissajous figures and about the differences between classic oscilloscopes and modern USB-based ones.
    A lot of people asked me about the Analog Discovery 2, which I was very enthusiastic about—Digilent should be giving me a commission! (They aren’t, although I’m sure I’m responsible for at least half a dozen sales for them, and a lot more if we go ahead with our plan to use them in place of bench equipment in my class next year.)
  • In front of the laptop showing the Lissajous figures, I had a standalone optical pulse monitor using the log-transimpedance amplifier and the TFT LCD display.  Using the log-transimpedance amplifier worked well, as did using a lego brick to block light to the sides and back of the phototransistor.  A lot of people have trouble holding their hands still enough to get good readings (particularly children), so it would be good to have some sort of clip instead of resting a finger over the phototransistor.  I’ve tried making clips in the past, but I’m not good at mechanical design, and I’ve always ended up with either a clamp that is too tight (cutting off circulation and getting no reading) or too loose (falling off).  Ideally, I’d want a pressure between systolic and diastolic pressure, so about 12kPa (90mmHg).  People did like the use of Lego as a support, though—it provided a familiar element in the strange world of electronics.
  • To the right of the pulse monitor was a pressure sensor.  I had a mechanical gauge and the electronic sensor both connected to a piece of soft silicone tubing taped to the table top.  Kids pressed on the tubing to get an increase in pressure, visible on the gauge (about 20–60 mmHg) and on graph PteroDAQ was running on the little laptop (which we refer to as the “Barbie” laptop, because of its color and small size).  I explained to kids that the tubing was like the tubing stretched across roads sometimes to count cars, with a pressure sensor that recorded each pulse as wheels compressed the tubing.  (For some of the old-timers, I reminded them of when gas stations used to use a similar system.)
    PteroDAQ worked well for this setup, running all day at 20 samples per second without a glitch.  The only problem was occasional display sleep from the laptop, fixable by touching the touch pad.
  • At the far right end of the table, I had a phototransistor which kids could shadow with their hands, with the result visible on another channel on PteroDAQ.  This was a last-minute change, as I was getting very unreliable results from the capacitive touch sensor when I tested it out last night.  The capacitive touch sensor worked fine at my house, but in the kindergarten room at Gateway I has a different electrical environment, and it would not work unless I grounded myself. Rather than fuss with the touch sensor, I made a new table sign and put in a light sensor instead.
    I might want to experiment this summer with different ways of making touch plates—trying to get one that doesn’t rely on the toucher being grounded.  My initial thought is that if I have two conductors that are not too close together, but which would both be close to a finger if the touch plate is touched, then I may be able to get more reliable sensing.  I could try some wire-and-tape prototypes and maybe make PC boards with different conductor layouts.  (OSH Park‘s pricing scheme would be good for such tiny boards).

I also had my laptop displaying my book; some quarter-page blurbs with URLs for my book, PteroDAQ, and this blog; my 20-LED strobe; my desk lamp; and a PanaVise displaying one of the amplifier prototyping boards.

I’d like to think of a more exciting project for kids to play with next year—perhaps something I could build over the summer.  Readers, any suggestions?

In addition to my display, some of the freshmen from my freshman design seminar class demonstrated their EMG-controlled robot arm (which uses the MeArm kit):

The students built a MeArm from a kit, then programmed a Teensy board to respond to muscle signals amplified by amplifiers designed by other students in the class. The combined project had two channels: one for controlling the forward-backward position of the arm (using the biceps), the other for controlling the gripper (using muscles in the forearm). With practice, people could pick up a light object with the robot arm.

The scheduling of the Mini Maker Faire was not ideal this year, as it conflicted with the Tech Challenge, Santa Cruz County Math contest, the California Invention Convention, and the Gem and Mineral Show, all of which draw from the same audience as the Mini Maker Faire.

The Faire seemed to be reasonably well attended (rather slow for the first hour and half, but picking up considerably in the afternoon).  There was plenty of room for more exhibitors, so I think that organizers need to do a bit more outreach to encourage people to apply.  It would probably help if they were quicker responding to applicants (it took them over three months to respond to my application, and then only after I nudged them).

Some obvious holes in the lineup: The Museum of Art and History did not have a display, but I saw Nina Simons there, and she said that MAH definitely plans to do it next year, but the Abbott Square renovation is taking up all their time this year.   The fashionTEENS fashion show was April 21, just over a week ago, so it would have been good to get some of them to show their fashions again: either on mannequins or as a mini-show on the stage.  It might be good to get some of Santa Cruz’s luthiers or fine woodworkers to show—we have a lot of top-notch ones, and many do show stuff at Open Studios. The only displays from UCSC were mine and the Formula Slug electric race car team.

Of the local fab labs, Cabrillo College Fab Lab and Idea Fab Labs were present, but The Fábrica and the Bike Church were not.  I thought that Cabrillo did a great job of exhibiting, but Idea Fab Labs was a little too static—only the sand table was interactive.

It might be good to have Zun Zun present their Basura Batucada show (entirely on instruments made from recycled materials) and have a booth on making such instruments.  It might be hard to get Zun Zun to volunteer, but they used to be very cheap to hire (I hired them to give a show at my son’s kindergarten class 15 years ago—they were very cheap then, but I don’t know what their prices are now).

One problem my wife noted was the lack of signs on the outside of classrooms, so that people would know what was inside.  The tiny signs that the Faire provided (I think—I didn’t get one) were too small to be of any use.  It may be enough to tell makers to bring a poster-sized sign to mount.  I had my cloth banner behind my table, but a lot of the displays were hard to identify.  Instructions or information mounted on tables would also have been good—again these would have to be provided by the makers.  I did not see people carrying maps this year—they can also be helpful in getting people to find things that were tucked away in odd corners.  Not many people made it back to the second kindergarten room where FabMo and the Lace Museum activities were.

Update 2017 May 1: It turns out that there were some things I missed at the Faire.  The principal of Gateway sent me email:

… we did have 4 of the Fashion Teens exhibit their creations on the stage at 11:30—might be cool to have them put those on mannequins and have a booth next year. Also we had two more UCSC projects—Jim Whitehead and the Generative Art Studio, and Project AWEsome from the School of Engineering. We would LOVE to have more UCSC-related projects …

 

2016 June 25

Pulse monitor with log-transimpedance amplifier

Filed under: Uncategorized — gasstationwithoutpumps @ 02:04
Tags: , , , ,

I’ve been planning since the Santa Cruz Mini Maker Faire to wire up an optical pulse monitor with a log-transimpedance amplifier as the first stage, so that I could use the pulse monitor in full sun or in a dimly lit room, with a dim green LED or with a bright infrared LED. The idea is to make the output of the first stage proportional to the log of the photocurrent, rather than to the photocurrent, then use a band-pass filter to get rid of the DC component and any 60Hz fluctuation, leaving only the fluctuation due to the pulse.

This pulse signal should be independent of the overall light level but on the absorbance of the finger, because
\log(I) = c + \log(\mbox{transmitted}) = c+ \log(\mbox{illumination}) + \log(\mbox{transmitted}/\mbox{illumination}, for some constant c. If the illumination is constant or has only high-frequency components, then the bandpass filter will eliminate both c and \log(\mbox{illumination}), leaving only the absorbance \log(\mbox{transmitted}/\mbox{illumination}).

I deliberately did not start working on it until I had finished my grading for the quarter, so only got it built last week, just before going to Montreal for a family reunion of my wife’s family. So I’m only now getting around to blogging about it.

To make the log-transimpedance amplifier, I need a component where the voltage is proportional to the log of the current.  For this I used a diode-connected PNP transistor:

The base-to-emitter diode has a current that is exponential in the voltage, and the collector-to-emitter current is proportional to the base-to-emitter current, at least until the transistor approaches saturation (which starts around 10mA).

The base-to-emitter diode has a current that is exponential in the voltage, and the collector-to-emitter current is proportional to the base-to-emitter current, at least until the transistor approaches saturation (which starts around 10mA).

The A1015 PNP transistor has a voltage proportional to the log of current, with about 60mV/decade. I did not use a unity-gain buffer when measuring the voltage and current, connecting the Teensy ADC channels A10 and A11 directly to the emitter and base+collector of the transistor. Measurements at less than 5µA were difficult, because the high impedance of the sense resistor made the ADC measurements inaccurate.

I tried a pulse monitor using the A1015 PNP transistor as the log-impedance element, and it worked ok, but I can do better, I think, using an IR LED as the log-impedance element:

The WP710A10F3C IR LED has a low forward voltage, and can be used from 100nA to 30mA, given that we don't need high accuracy on the log function. We get about 105mV/decade, so it is more sensitive than the A1015 transistor.

The WP710A10F3C IR LED has a low forward voltage, and can be used from 100nA to 30mA, given that we don’t need high accuracy on the log function. We get about 105mV/decade, so it is more sensitive than the A1015 transistor. Note: I did use a unity-gain butter for these measurements, which allowed me to get down to about 50nA—still much higher than the photocurrents I observed in very low light.

The IR LED has a wide range over which the voltage is the logarithm of the current, or \frac{dV}{dI} \approx 241mV/I. For 10nA, the equivalent gain is about 24MΩ, and for 1µA, the gain is about 240kΩ. For 10pA (about the smallest current I’ve observed for operating the pulse monitor in very dim light), the equivalent gain is 24GΩ.

This amplifier uses only 3 op amps: a log-transimpedance stage with an IR LED as the impedance, and two bandpass inverting amplifiers.

This amplifier uses only 3 op amps: a log-transimpedance stage with an IR LED as the impedance and two bandpass inverting amplifiers.

The 330pF capacitor in parallel with the log-impedance is very important—without it I get very short glitches which the next two stages lengthen into long glitches in the passband of the filters.  Making the capacitor larger reduces the glitches, but makes the corner frequency of the effective low-pass filter too low when light levels are very low, and the signal is attenuated.  Any smaller, and the glitches don’t get adequately removed.

I have tested the pulse monitor over a wide range of light levels, with a DC output of the first stage from 234mV to 1.033V, corresponding to photocurrents of 11pA to 463µA, a range of 42 million (7.6 decades). At very low light levels, the signal tends to be buried in 60Hz interference, but if I ground myself, it is still usable.

In very low light, the capacitive coupling of 60Hz noise buries the signal, but the bandpass filters help recover it.

In very low light, the capacitive coupling of 60Hz noise buries the signal, but the bandpass filters help recover it.

At high light levels, it is easy to get clean signals, as the 60Hz interference is swamped out by the large photocurrent.

At high light levels, it is easy to get clean signals, as the 60Hz interference is swamped out by the large photocurrent.

Note that the voltage swing is almost independent of the overall light level, as it depends only on the percentage fluctuation in opacity of the finger, which depends mainly on how much pressure is applied. If you get the pressure on the finger close to the mean arterial pressure (so that the finger throbs), you can get quite a large change in opacity—I’ve computed changes of 17% in opacity.

2016 May 11

Don’t put pulse monitor first

Filed under: Circuits course — gasstationwithoutpumps @ 21:25
Tags: , , ,

In Revised microphone pre-amp lab too long I said,

I think that the soldering lab should not be the first op-amp lab, but I still like the idea of the students having to solder up their microphone preamps. So I’ll have to do a major reorganization of the book this summer, to move a different lab into the first position.

Currently, I’m thinking that the transimpedance amplifier and pulse monitor lab would be a good choice as the first op-amp lab.

After a rather rough start in the first half of the transimpedance-amplifier lab yesterday, I no longer think that is a good idea. The instrumentation-amp lab went much smoother, so may be a better first choice.  Among other advantages, the instrumentation-amp lab with the pressure sensors has no analog filtering and simpler sensor sensitivity calculations.  One disadvantage of moving away from the mic preamp is that the microphone and loudspeaker characterization in the first half of the class would be separated from the audio amplifier design in the second half—not a problem in a single quarter class, but potentially a bigger problem in a two-quarter sequence.

I’m not sure why the transimpedance amplifier lab went poorly yesterday, and I’m hoping the second half will go smoother tomorrow.  It may be that prelab was not a good match for the lab this time.  Or it may be that over a third of the class didn’t do the prelab this time.  (I’ve threatened the class with a quiz worth as much as a design report if they don’t shape up by next week—I’m carrying around enough redone reports to grade that I really don’t want to do more grading, but I’ll follow through on the threat if so many students continue slacking.)

It turns out that I had several errors in the draft of the book that the students were using for the prelab exercises for the optical pulse monitor.  I’d decided in the summer or fall to switch to a new 700nm LED, but I’d only updated about half the scaffolding for the sensor sensitivity, so there were still a number of things that were only accurate for a 623nm LED.  Also, I’d been using a datasheet for the WP3DP3BT that I’d gotten when I first started using the part, but Kingbright has improved their datasheet a lot between V3 (which I had) and V5 (the current one), so there is now a spectral sensitivity curve on the datasheet, and the spectral sensitivity is quite different from what I was expecting.

I’ve started editing the book to correct the errors, but even after I fixed everything, the estimates for the current from the phototransistor were about 5% of what students were measuring in the lab. The model I had created, which worked fairly well for the previous LEDs, does not seem to work for the longer wavelength of the new LED.

I’m considering simplifying the model by eliminating the modeling of scattering, to see how well that works.  I should check the model with at least 3 different LEDs: the current 700nm one, the shorter wavelength ones I used to use, and an IR emitter.  If I can get the estimates to be within a factor of 10 of measured values for all the LEDs I have, then the model is good enough to include in the book.

I might also want to consider switching phototransistors to one with a wider spectral sensitivity, so that the estimation is not thrown off as much by the filter that blocks so much of visible light.  That would allow me to try a green LED as well.

I’m still thinking about doing a log-transimpedance amplifier as the first stage (not for the class, just for a demo unit) so that the pulse monitor can work in varying light levels up to full sunlight.  The fluctuation in light from the pulse seems to be about 1%, which should be a variation of about 850µV out of the logarithmic amplifier (based on the 9.8mV/dB I measured in Logarithmic amplifier again).  That’s a somewhat smaller signal than I’ve been getting with well-chosen gain resistors, but it may be worth it to get greater independence from the overall light level.

2016 January 26

Phototransistor I-vs-V plots

Filed under: Data acquisition,freshman design seminar — gasstationwithoutpumps @ 15:47
Tags: , ,

I realized this week that I had never plotted I-vs-V curves for phototransistors, and the data sheets don’t usually include them, so I measured some today.

I put an LTR-4206 phototransistor in series with a 1kΩ resistor (so that voltage across the resistor was current in mA), and drove the pair with a slow triangle wave (3.2Vpp with 1.6V offset) from my FG085 function generator, using a 470µF capacitor in parallel with the function generator to smooth out the steps.

I illuminated the phototransistor with a narrow-beam 591nm LED (33-2UYC/H3/S400-A6) from about 0.5″ away.  The LED has a 68Ω current-limiting resistor to 3.3V, resulting in an IR voltage drop of 1.248V, for about 18.35mA.

I recorded the voltage across the 1kΩ resistor and across the resistor plus phototransistor using PteroDAQ on a TeensyLC.

I interposed a Brand 1.5ml cuvette full of water or a piece of white paper to get different light levels:

On the log current plot, one can see that it is important to have sufficient collector-emitter voltage to get into the saturation region of the curve—we need about 0.5V. I'd need to add a dark box for a colorimeter, as the ambient light in a dimly lit room is about 0.5% of the light through the cuvette, and would throw the measurements off.

On the log current plot, one can see that it is important to have sufficient collector-emitter voltage to get into the saturation region of the curve—we need about 0.5V.
I’d need to add a dark box for a colorimeter, as the ambient light in a dimly lit room is about 0.5% of the light through the cuvette, and would throw the measurements off.

On the linear plot of current, one can see that the saturation current is not really constant, but increases with voltage. A simple resistor to convert current to voltage would result in non-linear response, as the collector-emitter voltage would not be constant.

On the linear plot of current, one can see that the saturation current is not really constant, but increases with voltage. A simple resistor to convert current to voltage would result in non-linear response, as the collector-emitter voltage would not be constant.

Making a colorimeter with a phototransistor to get good linearity probably requires a transimpedance amplifier, rather than a simple resistor, but it looks like a 2.5mA current range for the amplifier would be adequate. With a 3.3V supply, the VCE could be set to 0.7V and the gain to 1kΩ, with the output in the range 0.7V–3.2V.

Interposing a piece of paper in the light path is good for aligning the LED and the phototransistor, as the beam pattern becomes quite clear. One of the biggest challenges in making a homemade colorimeter is ensuring that the LED and phototransistor don’t get jostled as the cuvettes are added or removed.

2015 July 5

Pullup vs. transimpedance amplifier

Filed under: Circuits course — gasstationwithoutpumps @ 16:08
Tags: , , ,

I have used both pull-up resistors and transimpedance amplifiers to read light signals from phototransistors and photodiodes (see Colorimeter design—weird behavior and Optical pulse monitor with little electronics, for example, though any of the posts tagged phototransistor or transimpedance amplifier may be relevant), so I decided to do a post about what the difference is in terms of performance.

Test setup for comparing pullup resistor and transimpedance amplifier.  The Arduino board outputs a pulse train with two different pulse widths (approx 65µs and 125µs).

Test setup for comparing pullup resistor and transimpedance amplifier. The Arduino board outputs a pulse train with two different pulse widths (approx 65µs and 125µs).

Obviously, a pull-up resistor is simpler and cheaper—it is hard to get much simpler or cheaper than a single resistor—so why ever use a transimpedance amplifier with a phototransistor?

I believe that the answer comes down to speed.

With a pullup resistor, you have a common-emitter amplifier—the photocurrent generated at the base-collector junction becomes the base-emitter current, which controls the collector-emitter current, and the voltage swing at the output is the change in the collector current times the resistance of the load resistor. As you increase the load resistor, you get more voltage swing. But there is a fly in the ointment—the Miller capacitance between the base and the collector, which serves as a negative feedback loop limiting the slew rate of the output.  I’ve looked at that feedback loop before in More on nFET Miller plateau, for example, but the analysis here is slightly different.

Phototransistor with pullup resistor, showing the Miller capacitance (collector-base capacitance) that provides a negative feedback loop.

Phototransistor with pullup resistor, showing the Miller capacitance (collector-base capacitance) that provides a negative feedback loop.

The current through the capacitor from the collector to the base is C \frac{dV_{C}}{dt}, assuming that the base voltage is roughly constant.   We end up with a differential equation:

I_{CE} = \beta I_{BE} = \beta \left( I_{photo} + C \frac{dV_{C}}{dt} \right)

V_{C} = V_{cc} - R I_{CE} = V_{cc} - \beta R I_{photo} - \beta RC \frac{dV_{C}}{dt}

In response to a step change in  the photocurrent, the voltage does an exponential decay towards the endpoint  V_{cc} -\beta R I_{photo} with a time constant of \beta RC.  If we choose a large R to get a large voltage swing, then we end up with a slow rise and fall time.  At high frequencies, we end up with a considerable loss of signal—we have a low-pass filter with corner frequency \frac{1}{2 \pi \beta R C}.

We can speed up the transitions by using a  transimpedance amplifier, which eliminates the change in voltage of the collector, holding it at the same voltage as the positive reference input. The photocurrent still has to charge and discharge the base-collector capacitor C, but there is no longer the pesky multiplication by \beta, the current gain of the transistor, so our bandwidth is  theoretically \beta times higher than with the pullup resistor.

Of course, the slew rate of the output of the transimpedance amplifier is  also limited by the amplifier characteristics. Using an MCP6004 op amp (which has a 600mV/µs slew rate, and 1MHz gain-bandwidth product) and  feedback resistor of 3kΩ to get the same low-frequency gain as with a 3kΩ pull-up resistor, we get much faster rise and fall times than with the pullup resistor:

The top, green trace is using the transimpedance amplifier, while the bottom, yellow trace is from the pullup resistor.  Both are at 100mV/division and 50µs/division, but the DC offsets are different.

The top, green trace is using the transimpedance amplifier, while the bottom, yellow trace is from the pullup resistor. Both are at 100mV/division and 50µs/division, but the DC offsets are different.

I see about 5 times faster edges with the transimpedance amplifier, but I expected a bigger improvement than that—the current gain on NPN transistors is usually in the hundreds. I have a fairly large VCE (2.5V for the transimpedance amplifier and 4.5V—4.7V for the pullup), so the transistor should be well into the saturation region.

If I have a stronger input signal (by lining up the LED and phototransistor better), I get much sharper edges from the transimpedance amplifier:

Again with 3kΩ pullup or transimpedance amplifier, but with a stronger light input.  The vertical scale is now 1V/div, but the horizontal is still 50µS/div.

Again with 3kΩ pullup or transimpedance amplifier, but with a stronger light input. The vertical scale is now 1V/div, but the horizontal is still 50µS/div.

The fast edges for the large signal may be an illusion—the op amp output is hitting the 5V rail and clipping. That saturation also explains why the low-going pulses are shorter than they should be. So maybe the rise and fall for the larger pulses is still slow. I changed the resistors to 1kΩ, which should speed up the rise and fall and avoid clipping for the strong signals:

With 1kΩ pull-up and transimpedance resistors and a strong input signal, the ratio of the transition times looks about how I expected with a 1V/div, 50µs/div trace.

With 1kΩ pull-up and transimpedance resistors and a strong input signal, the ratio of the transition times looks about how I expected with a 1V/div, 50µs/div trace.

I think that the ringing on the rising edge is due to the slew rate of op amp not being fast enough to keep up with the phototransistor and the negative input of the op amp dropping a bit below the positive one.  There is such a triangular blip, about 50mV and lasting about 10µs.  There is a similar upward blip on the downward transitions of the op-amp output, but those don’t seem to cause any any overshoot.

So I think I understand most of what is going on here, but why is the rise/fall time so slow for small inputs?

Next Page »

Create a free website or blog at WordPress.com.

%d bloggers like this: