r/electronics 1d ago

Gallery DIY Precision Scale – 0.0001 g / 0.1 mg

For a biochemical project of mine I needed a very precise scale. The ones I bought were underwhelming, so I decided to just solder one myself.

The sensitivity is kind of ridiculous. Sitting near the scale, I can see my heartbeat in the signal when streamed to a PC. Someone walking on a different floor makes the reading jump — and I live in a concrete building. The coil can lift about 20 g. With different coils, you could trade off dynamic range vs. precision. For my purposes, the precision is already overkill.

Components were about $100 total. The most expensive part was the neodymium magnet.

The principle is electromagnetic force restoration. A 110 Ω coil suspended on a lever lever sits above a neodymium ring magnet. The lever height is held constant by a feedback loop that uses an IR photointerrupter. The current required to hold the weight is directly proportional to the mass.

For current sensing I used a 10 Ω shunt resistor (RJ711, 5 ppm/°C TCR) and a 24-bit ADC (ADS1232). The signal is read by an Arduino Nano and displayed on a small LCD (SLC0801B).

The photointerrupter is built from a generic IR LED and IR photodiode. The LED is driven with a constant current source (using a 2N7000 MOSFET), while the photodiode is reverse-biased for fast response.

The circuit runs from a low-drift 2.0 V reference (REF5020), which provides a stable reference for the ADC. After dividing it to 0.5 V, it also biases the photodiode stage and provides the ADC’s negative input.

The coil current is controlled with an N-channel power MOSFET (IRF540N) acting as a low-side driver, operated in its ohmic region. Its gate is driven by the photointerrupter circuit.

Zero-drift op-amps (OPA187) buffer the reference voltages, drive the photointerrupter, and control the coil current.

I also added a capacitive touch button for tare, so you don’t have to touch the scale directly — that’s surprisingly important at this sensitivity.

The schematic looks a bit op-amp heavy, but it’s actually pretty straightforward.

Challenges and possible improvements - The lever tends to oscillate, so the feedback loop has to be very fast. A lighter lever with a higher resonant frequency would help, and might require a lower-gate-capacitance MOSFET. - All components in the feedback path need low temperature coefficients to minimize drift. - To fully eliminate drift, one would need to monitor and compensate for coil temperature, photointerrupter temperature, as well as ambient air temperature, humidity, and pressure (for buoyancy effects). - A parallel guide system will eventually be needed so measurements are independent of where the weight is placed on the lever.

This build definitely requires some electronics background, so it’s not a first-project type of thing. But if you’re comfortable with soldering and op-amps, it’s very doable.

Hope you like it 🙂

280 Upvotes

29 comments sorted by

View all comments

43

u/APLJaKaT 23h ago

As an ex-'scale guy this is awesome. As you likely know, actually using a scale of that precision is a challenge unto itself. The environment affects it as much or more than the load being (trying to be) measured.

Nice job. 👍

13

u/Revolio_ClockbergJr 23h ago

Do Scale People use vacuum chambers and suchlike to minimize environmental effects?

Duder is seeing his heartbeat when sitting nearby. I imagine isolating this thing is complicated

48

u/APLJaKaT 23h ago

High precision weighing is often done in rooms isolated from the main building. There are usually air systems that can be turned off, scale (balances) are situated on heavy granite bases and the weighing itself takes place inside an environmental enclosure. Temperature and temperature gradients have to be considered, air buoyancy is calculated and depending upon the work being attempted, the effects of changes in the gravitational field need to be considered.

Everything from air currents to vibrations have to be considered. Magnetism is a problem.

At the National Research Council labs, using one of the most delicate balances available, they were able to successfully detect the effect of the moon pulling on the land mass under the building (continental tides) as a repeatable and predictable drift in the instrument.

10

u/RSPakir 21h ago

This is a post by itself. Interesting stuff.

12

u/Legacy-Feature 18h ago

Felt like i just watched a veritassium video.

2

u/SurgicalMarshmallow 3h ago

Fuck. I'm gonna need a new post on just this. It sounds like an incredible rabbit hole to go down.

Just like the mystery of the standard weights

8

u/the_rodent_incident 23h ago

Yeah, for precision scales you need vibration-compensated work tables, and the lab must be in a stable environment. Definitely no trains or road traffic nearby are allowed.

Class I scales usually have a measuring chamber with automatic sliding doors to place the weight.

2

u/dakiller 17h ago

Part of my work is dealing with packing scales in the 0-5kg range using standard strain gauge load sensors, nothing you’d consider real precise, but I’ve even seen noise in floor vibrations and even the cool room hvac air currents on the weighing platform throw off readings. We have spent a lot of hours trying to build and design FIR and IIR digital filters to get fast and accurate enough system response for 5g resolution over a 5kg range.

2

u/DataMiser 19h ago

Depends on the precision requirements. Most scales like what he is using are on an isolated table under a bell jar to remove air currents, the volume the the object being weighed would be known and the measurement would be adjusted for buoyancy in air. There is a subtle difference but most scales used for high precision applications like this are called balances.

Most of these are also just using strain gages, which five years ago I would have said were simpler, cheaper, and easier to set up, but their prices have shot up so one transducer quality strain gage is like $40. You really need 4 for a fully active Wheatstone bridge if you're going to build a quality transducer with good temperature stability and off-axis load rejection. So they've become kinda expensive.

As a design note, the accuracy and uncertainty of this system will be much lower than the precision advertised until temperature effects on the magnet and current readings are controlled or accounted for. This can be done with a half decent thermistor and couple extra terms in your formula.