Mooshimeter – a bluetooth multimeter

I just received my Mooshimeter from a kickstarter that I backed a while ago.

2015-01-28 11.42.182015-01-28 11.43.262015-01-28 11.43.35

The Mooshimeter is a small battery powered multimeter that talks to your smartphone or iPad over Bluetooth LE. Not all devices have BLE so you should check before jumping to buy this.

The bluetooth IC is the CC2540 which is an integrated MCU + bluetooth system. The analog front-end is the ADS1292 dual 24-bit delta-sigma converter. As far as delta-sigma goes, it seems to be a very nice part with a maximum sample rate of 8kHz.

I wanted to try out my new Mooshimeter so I clamped a beam-type load cell to my workbench:

2015-01-28 11.34.52

The load cell is a super inexpensive (cheap) beam cell that I bought on Amazon for about $25. A load cell uses a resistive bridge strain gauge to measure the small amount of deflection in a calibrated beam. The deflection follows the strain linearly. Using this relationship you can use a load cell to measure force such as gravity.

2015-01-28 11.35.24

Load cells are rated in (volts full scale) per (volt input)

This means if the input is 10 volts (typical maximum) the output of this particular load cell will be 20 millivolts when a force of 5kg (49 Newtons) is applied. This is a difficult value to measure with a multimeter. The Mooshimeter claims 24 bit resolution which should give us plenty of bits even with this small maximum scale of 20 mV.

I hooked up the strain gauge and measured 1.43 mV. This value is a combination of the gravity pulling on the load cell (aka the weight of the load cell) and mismatch in the strain gauge. I didn’t pay much for this load cell so I suppose I can’t expect great performance.

2015-01-28 16.32.21

I put a roll of solder on the load cell and measured 2.65 volts. In case you’re unsure: the polarity of the voltage is relative to whether you are pushing or pulling on the load cell. Many are bidirectional (but not all.)

2015-01-28 16.32.12

If we subtract the values, the solder weighs 1.22 millivolts. Previously we calculated that the full scale of 5 kg (49 Newtons) is 20 millivolts. So according to my load cell and Mooshimeter, my roll of solder weighs 1.22mV/20mV * 49 N = 2.99 N. This is 0.67 pounds. That sounds pretty good to me. My cheap OXO food scale says 0.675 pounds which corresponds surprisingly well!

The Mooshimeter app will show a graph vs. time of voltage (and current) I made a short video of me pushing on the load cell with my finger to demonstrate this.

2015-01-28 12.11.58I haven’t had a lot of time to play with the Mooshimeter but I think it will definitely show it’s usefulness as time goes by. Of particular interest to me will be long-term data logging which at the time of this writing is a feature that has not been finished.


Temperature compensated MOSFET biasing

A class AB MOSFET amplifier circuit is shown below:


The MOSFET, in class-AB operation has a positive DC bias provided by voltage source V1. The purpose of the bias is to bring the transistor into it’s linear operating region, as shown by a datasheet graph of drain current vs. gate voltage:

IRF540 forward transconductance

The graph here begins at about 4 volts. The threshold voltage of the IRF540 (which I’m just using as an example) is somewhere around 4 volts.

Once you get beyond 4 volts, you can see that the drain current increases in a nice sweeping (exponential) arc.

Now imagine you are building a high power class-AB amplifier with V2 = 48v and quiescent current = 60mA. The power dissipated by the transistor is 2.88 Watts.

2.88 Watts will heat the transistor up a bit, depending on how nice your heatsink is. The transistor gate threshold voltage temperature coefficient is between -2 and -4 mV / C (millivolts per degree celsius)

So if the transistor heats up by 10C, the threshold voltage drops by about 30 mV. This could have a significant effect on the quiescent current, causing the transistor to get even hotter!

One way of dealing with this issue is to use a temperature compensated bias circuit:

rf_amp TL431 ckt
MOSFET bias temperature compensation circuit. The output voltage is on the cathode of U4 (pin 1) and for these values results in about 3.7 volts at room temperature.

The device I built this for is an RF power amplifier that uses the MRF6V2010 N channel MOSFET. The threshold voltage is around 2.3v for this device.

The output of the above circuit is fed to a potentiometer that sets the gate bias voltage:

MOSFET AB bias control

The TL431 is a dirt cheap ($0.14 US) shunt voltage regulator that has a built-in voltage reference, error amplifier, and pass transistor. I used an NTC (negative temperature coefficient) resistor, R38, which increases the feedback voltage on the TL431 as the temperature increases. This causes the output voltage to decrease, following a similar temperature coefficient as the MOSFET threshold.

Because the MOSFET gate passes no current the gate bias voltage supply is only capable of around a milliamp of DC current. The bias voltage leaves the potentiometer (R18, above) where it passes through a few RC networks to filter out RF energy that would add noise to the amplifier (or radiate power.)


I’ve made a few calculations to show how this works in a real design. The threshold voltage of a MOSFET varies by -2 to -4 mV/C as I mentioned above. This depends on the doping level of the device.

Let’s say we’re using this circuit for generating MOSFET bias (click for larger view):



[I lost this image. It is basically the same as the above schematic with TL431, however, the part designators have changed]


Specifically I’m looking at the three resistors on the feedback of the TL431 (R1, R2, R3)

The voltage reference of the TL431 is 2.50v. This fixes the cathode voltage of the TL431 to be:

Vout = 2.5 * (R1+R2+R3)/R3

Looking at the datasheet for a common NTC thermistor with B=~3900 we see a chart of the resistance change vs. temperature. Of course another method would be to use the actual mathematical model in our calculation. The chart is fine for me though. I’m going to be making an estimate which will end up being near the ideal value.

NTC thermistor chart

Thermistors are commonly rated by their 25C value. If you buy a 1K NTC thermistor, it should measure about 1K ohms at 25 celsius. This chart shows that for a thermistor with a B value of about 4000, the resistance at 40C for example will be close to 80% of what it is at 25C.

So we can use this knowledge to figure out the temperature coefficient of our bias circuit:

Tempco(PPM) = (V1 – V0) / (T1 – T0) * 10^6

T1 is the higher temperature (pick a value)

T0 is the lower value (use 25C)

V1 = 2.5 * (R1+R2+R3)/R3
Where R2 is the thermistor value at T1

V0 = 2.5 * (R1+R2+R3)/R3
Where R2 is the thermistor value at T0


As an example

T1 = 40c

T0 = 25c

R1 = 3.3k

R2 = 1k NTC thermistor, varies with temperature (40C = ~ 800 ohms, 25C = ~ 1000 ohms)

R3 = 10k

V0 = 2.5 * (3.3k + 1k + 10k)/(10k) = 3.575v

V1 = 2.5 * (3.3k + 800 + 10k)/(10k) = 3.525v

Tempco(PPM) = (3.575 – 3.525)/(40 – 25) *10^6 = -3333

The value -3333 means that for each degree celsius, the voltage will go down by 3.3 mV. This is near the middle of the range defined by the physics of the MOSFET (-2 to -4 mV / K)

How good does it need to be?

One item I’ve neglected so far is the temperature coefficient of the internal TL431 voltage reference. According to the datasheet for the Fairchild TL431, the temperature coefficient is 4.5 mV over 110 degrees C (the temperature range of the device.) This is a tempco of +41 PPM

Using -4mV/K as an upper limit of our MOSFET threshold voltage and using -3.3mV/K from the last example, adding 41 PPM gives us (close enough to) -3.2mV/K. We subtract these together to get the resulting rate of 0.8mV/K.

We can figure out the bias current change between two temperatures given the transconductance of the MOSFET. The IRF510 has a transconductance of about 1.2 Siemens (amps per volt.)

Using the same example temperatures of 25C and 40C, we can see that the gate bias voltage will change by:

Vdelta = 0.8mV/K * (40C-25C) = 12 mV

The bias will change by about:

12mV * 1.2 A/V = 14mA

That’s not necessarily bad but it’s not great. One way to make this adjustable would be to add a potentiometer in parallel with R2. Decreasing the value of the pot will decrease the bias circuit tempco, increasing the pot value will increase the bias circuit tempco. This is exactly what I did in the above tempco schematic. Pot R37 changes the tempco adjustment slope. Experiments show excellent slope control capability.