How to Use ADC Data to Verify the Weight Function of a Body Composition Module

Technical Articles

How to Use ADC Data to Verify the Weight Function of a Body Composition Module

A debugging guide for BMH05104-2 / BMH05108 / BMH05109 weight functions, covering why each unit must be calibrated and why calibration uses weights near full scale, how to collect and prepare ADC data, judge stability and linearity, and troubleshoot sensor wiring, half-bridge/full-bridge structures, and reversed ADC changes.

Engineering Debugging Published June 12, 2026

Key Takeaways

Start here if you want the shortest version of this article.

  • Check the repeat stability of each weight point before the linear fit. When stability is abnormal, an R2 close to 1 does not prove that linearity is actually fine.
  • Prepare wide-coverage weight points such as 0 / 20 / 50 / 100 / 150kg, let the scale settle for 5-10 seconds, then read at least 3 ADC samples per weight.
  • Calibration signal is judged against the recommended 0 / 50 / 100 / 150kg points - each adjacent 50kg segment needs an ADC delta of 20,000 for BMH05104-2 and 32,000 for BMH05108/BMH05109.

During the development of a body composition scale, the weight function often shows a few familiar symptoms: jumpy readings, growing errors at higher weights, or values that move in the wrong direction when weight is added. The final kg value alone rarely tells you why - sensor, mechanical loading, wiring direction, and calibration signal problems are all mixed into the converted result. A more effective approach is to go back to the raw weight ADC data: read multiple samples at zero load and at a few known weights. This article explains how to collect and organize that data, how to judge whether it is normal, and how to troubleshoot the common abnormalities.

Scope

This article and the companion analysis tool are a debugging reference for the weight ADC function of the BMH05104-2, BMH05108, and BMH05109 body composition modules. They do not replace the full product calibration procedure, metrology certification, or final sensor selection decisions - those still follow the module specification, project requirements, and complete-product validation.

Open the Body Composition Weight Analysis Tool

First, why calibration is required and cannot be skipped

The weight module does output a weight value out of the box — but it uses a factory default calibration. That default cannot match your specific scale (sensor, structure, and mounting all differ), so the weight is inaccurate until you calibrate it. Calibration sets the module’s zero and span to match this scale. BMH05104-2 / BMH05108 / BMH05109 use the industry-common 0 / 50 / 100 / 150kg multi-point calibration: a zero (the reading at no load) plus several span points that fix both the slope (ADC per kg) and the linearity across the whole range.

(This article uses the raw ADC for diagnosis because, before it is converted to weight, the ADC separates hardware and structural problems from the calibration math, making the cause easier to find.)

Why can’t the module be calibrated at the factory? Because the ADC-to-kg ratio is set by your complete assembly, not by the module:

  • the sensor model, rated capacity and sensitivity you choose (the same 50kg produces very different ADC on different sensors);
  • the number of sensors and how the bridge is combined (four corner half-bridges vs a single full bridge);
  • the excitation voltage, scale structure, load path, mounting, load distribution, travel limits, and enclosure.

The module maker does not have your mechanical assembly, so it physically cannot know “1kg = how many ADC” for this scale. The zero is the same: the no-load ADC depends on your platform’s dead weight and assembly, and differs from unit to unit. This is why every electronic scale — whatever module it uses — is calibrated per unit after final assembly.

Can calibration be skipped? No. The module shows a weight out of the box, but that value comes from the default calibration and is simply wrong for your scale. Even within one design, sensor sensitivity spread, assembly tolerance, and structural stress make every unit slightly different, so each must be calibrated for accuracy and consistency.

Calibration does not replace troubleshooting. It only builds the mapping; if the signal is unstable, S+/S- are reversed, or the structure interferes, calibration will either fail or produce an unreliable result. So the correct order is: first use the ADC diagnostics in this article to get wiring, structure, and signal size right (stable data, correct direction, sufficient signal), then calibrate.

Why calibration uses weights near full scale, not a small one

Calibration weights should cover your actual working range and reach near full scale (body-composition scales commonly use 0 / 50 / 100 / 150kg), for three reasons:

  1. Extrapolating from a small weight magnifies error. Calibration uses the zero and span points to fix the slope. Calibrating with only 5kg and then weighing 150kg extrapolates the 5kg result about 30×. At 5kg the ADC increment is small, so zero drift, noise, creep, and nonlinearity make up a large share — and those errors scale up with the extrapolation, making high-weight error severe. The closer the span point is to full scale, the more accurate the slope.
  2. Structural problems only appear under large load. 5kg barely stresses the platform. Structural deflection, travel-limit contact, uneven four-corner loading, and insufficient sensor linearity are invisible at light load and only show up near the real weighing range.
  3. Signal size must be judged across the working range. The “ADC increment per adjacent 50kg segment” requirement here (BMH05104-2 ≥ 20,000; BMH05108/BMH05109 ≥ 32,000) is defined over the working range; 5kg gives too little signal to judge it.

As for “large weights being hard to apply” — production lines usually have automatic loading / weight machines, so applying 50 / 100 / 150kg per unit adds no manual burden; there is no need to trade accuracy for convenience. These modules use 0 / 50 / 100 / 150kg multi-point calibration as standard (industry-common practice); the extra points fix both the slope and the nonlinearity across the whole range.

When to start from the ADC data

If you run into any of the following, organize the raw ADC data first before moving on to full calibration or final quality judgment:

  • The weight value or ADC jumps noticeably when re-reading the same weight.
  • The low-weight range looks fine, but errors grow in the high-weight range.
  • The ADC does not change in the expected direction after adding weight.
  • Module calibration fails, or calibration cannot proceed to the next stage.
  • You need to organize test data so BestHealth technical support can diagnose faster.

Order of judgment

Check the repeat stability of each weight point first, then the linearity across weight points. If the ADC within one weight point is clearly scattered, an R2 close to 1 still does not mean the real linearity is fine.

How to collect the ADC data

Depending on your project stage, there are two common ways to read the ADC:

  • Using a BestHealth evaluation board and host tool: connect the module with the sensors attached, then read and log the weight ADC directly from the host tool. If you do not have the host tool yet, contact BestHealth technical support.
  • Already integrated with your own MCU: follow the module specification and communication protocol to periodically read the weight ADC register/data frame over the communication interface, and log the values in decimal.

Either way, the values entered into the analysis tool must be decimal ADC values. The specification and communication protocol documents are available on each module’s product page: BMH05104-2, BMH05108, BMH05109.

What test data to prepare

Prepare at least zero load plus 3 or more loaded weight points. If possible, prioritize:

  • 0kg: zero-load baseline.
  • 20kg: low-weight reference.
  • 50kg: recommended calibration segment reference.
  • 100kg: mid-to-high weight reference.
  • 150kg: high-weight reference.

For each weight point, let the scale settle for 5-10 seconds after loading, then read at least 3 ADC samples; 10 samples make stability much easier to see. Organize the data like:

Actual weight kg, ADC1, ADC2, ADC3...
0, -4, 2, -1, 1
20, 13998, 14005, 14001, 13999
50, 35002, 34996, 35005, 35000
100, 70003, 69997, 70006, 70000
150, 105004, 104996, 105008, 105000

How to read this data set

Once you have data like the above, go through it in this order:

  1. Check the range within each row (max minus min). For example the 0kg row sits between -4 and 2, a range of only a few ADC counts; small ranges at every weight point mean good repeat stability.
  2. Estimate the slope. 150kg corresponds to about 105,000, so the slope is roughly 105,000 / 150 = 700 ADC/kg, which you can compare against the signal requirements below.
  3. Check the adjacent 50kg calibration segment deltas. The 0-50kg, 50-100kg, and 100-150kg segments each gain about 35,000 ADC, above the 20,000 required for BMH05104-2 and the 32,000 required for BMH05108/BMH05109, so the calibration signal is sufficient.
  4. Only then look at R². This data set has an R² extremely close to 1, and because the first three steps are normal, the linearity conclusion is meaningful. If step 1 already shows a jumpy weight point, retest it instead of trusting R².

Why stability comes before linearity

Linear fitting normally uses the average ADC of each weight point. If 10 samples at 20kg sit around 14000 but one extra sample of 15001 sneaks in, the average can still land near the overall trend line and R2 can still be high.

In that case the real problem is not “linearity is fine” - the repeat stability of that weight point is already abnormal. Retest that weight point first, confirm the scale is settled, the weight placement, cable tension, structural interference, and sensor loading, and only then re-judge linearity.

How much jitter is normal

The analysis tool currently uses these reference thresholds: within one weight point, an ADC range ≤ 80 counts is stable, 80-160 suggests a retest, and > 160 counts is unstable. These are engineering debugging references for triage, not quality acceptance criteria; the final acceptance range should follow your complete-product accuracy requirements.

Back-calculating the acceptable range from your accuracy target

Every sensor combination has a different real-world sensitivity, so use your own measured ADC data to calculate:

  1. Work out your measured slope: slope = (ADC_50kg − ADC_0kg) ÷ 50
  2. Work out the ADC count for your target error: jitter limit = slope × target error (kg)

For a ±0.05 kg linearity target, a common guideline is to keep the stability error component within 0.05 kg. For example, if you measure ADC = 0 at 0 kg and ADC = 10,000 at 50 kg, slope = 200 ADC/kg, so 0.05 kg corresponds to 10 counts — aim to keep jitter ≤ 10.

Measured slope exampleADC counts per 0.05 kgSuggested jitter limit
200 ADC/kg10≤ 10
400 ADC/kg20≤ 20
700 ADC/kg35≤ 35

The tool’s built-in ≤ 80 threshold is suitable for triage during debugging, but it does not mean every project can accept a range of 80 — use your measured slope to convert and confirm the result meets your complete-product accuracy requirement.

Distinguishing random jitter from creep

There is another kind of “instability”: after loading or unloading, the reading drifts slowly in one direction and only settles after seconds or tens of seconds. That is usually sensor creep or mechanical stress release, not random jitter. Let the scale settle for 5-10 seconds after loading before recording. If the reading keeps drifting in one direction after settling, check structural stress, foot pads, and sensor mounting first instead of declaring the module faulty.

How to judge whether sensor performance is sufficient

A single ADC sample says very little about sensor performance. Combine these indicators:

  • Zero stability: does the ADC stay within a small range at zero load?
  • Repeatability: is the max-min difference acceptable when re-reading the same weight?
  • Signal size: does the ADC increase enough when a fixed weight is added?
  • Monotonicity: does the ADC keep moving in the same direction as weight increases?
  • Linearity trend: do the average ADCs of multiple weight points follow a straight line?
  • Structural consistency: do readings shift noticeably when the weight placement changes?

The signal size can be converted to a slope quickly: based on the adjacent 50kg segment requirements, BMH05104-2 needs a slope of roughly 400 ADC/kg or more, and BMH05108/BMH05109 roughly 640 ADC/kg or more. The analysis tool reports the estimated slope directly; falling below the requirement usually means the sensor sensitivity, excitation voltage, or bridge combination needs checking. (For the minimum signal size calibration needs, see “Understanding the calibration delta ADC requirement” below.)

If the zero point is stable, repeatability is good, the ADC changes monotonically with weight, and the signal size is sufficient, then looking at linearity and the calibration reference becomes meaningful.

Sensor wiring and bridge combination

A 4-wire full-bridge sensor can be connected label to label; 3-wire half-bridge sensors must first be combined into a complete Wheatstone full bridge before connecting to the module.

The weight sensor interface on BMH05104-2, BMH05108, and BMH05109 is a full-bridge interface (E+, E−, S+, S−). Whether your sensor connects directly depends on its internal structure:

Sensor is already a full-bridge type (internally forms a complete Wheatstone bridge): Connect directly using the pin definitions in the module specification — E+/E−/S+/S−. Confirm signal polarity (S+/S−) is correct; reversing it causes ADC to decrease when weight increases.

Sensor is a half-bridge type (each sensor provides only half a bridge): It cannot connect directly. Multiple half-bridge sensors must first be combined into a complete Wheatstone full bridge and then connected to the module’s full-bridge interface. In the common four-corner body scale design, four half-bridge sensors are typically used — pairs are connected in series to form each arm of the full bridge. The exact wiring is shown in the application circuit section of each module’s specification.

Regardless of sensor type, after wiring verify the basics before calibration: read several ADC samples at zero load and confirm stable readings, then add a known weight and confirm the ADC moves in the expected direction with a reasonable increment.

How to run a four-corner load test

The four-corner test is the most practical way to troubleshoot half-bridge combination and structural loading issues:

  1. Pick a weight that is easy to move (20-50kg recommended).
  2. Place it at the center of the platform first, let it settle, read 3 ADC samples, and average them as the baseline.
  3. Move the same weight to each of the four corners (directly above each corner sensor), and take a settled 3-sample average at each position.
  4. Compare the four corner averages: ideally they are close to each other and to the center baseline.
  5. If one corner is clearly high, low, or even reversed, check that corner’s sensor wiring, mounting direction, travel limit, and support structure first. In a half-bridge combination, one reversed or miswired branch usually makes that corner stand out sharply.

What to check when ADC decreases as weight increases

Do not jump to the conclusion that the module is damaged. Work through this order:

  1. Be clear on the expected direction: BMH05104-2 / BMH05108 / BMH05109 are all defined so that ADC increases as weight increases — there is no valid “ADC decreases with weight” definition for these modules. If the ADC keeps decreasing when weight is added, it is a wiring or loading fault to track down and fix.
  2. Check whether the sensor signal polarity is reversed. For full-bridge sensors focus on S+ / S-; for half-bridge combinations focus on bridge direction and combination.
  3. Check the sensor mounting direction. If the load direction is reversed, the output direction can flip too.
  4. Confirm the excitation supply and ground are normal, so bridge power issues do not distort reading direction or amplitude.
  5. Read multiple ADC samples at zero, light, and medium loads and confirm the change is stable and monotonic.
  6. If the direction is stable but always reversed (ADC drops when weight is added), it is almost always swapped S+ / S- or a wrong half-bridge combination — swap the signal polarity or fix the bridge combination, rather than trying to “flip” the direction through parameters.

Never judge from a single point

Comparing only zero load and one weight point can hide structural interference or local loading problems. Add at least one intermediate weight point to confirm the ADC direction and slope are stable.

Understanding the calibration delta ADC requirement

Weight calibration looks at more than R2 - the calibration signal size matters. If the signal is too small, the fit may look fine short-term but noise immunity and high-weight reliability suffer.

Here “calibration delta ADC” means: using the recommended 0 / 50 / 100 / 150kg calibration points as reference, the ADC delta of each adjacent 50kg segment (0-50kg, 50-100kg, 100-150kg). Non-recommended points such as 20kg only participate in stability and linearity checks and do not form a calibration segment.

The reference requirements used by the tool:

  • BMH05104-2: each adjacent 50kg calibration segment needs an ADC delta of at least 20,000.
  • BMH05108 / BMH05109: each adjacent 50kg calibration segment needs an ADC delta of at least 32,000.

The final judgment still follows the module specification, project configuration, and complete-product validation requirements.

Quick troubleshooting table

Run through this table before contacting technical support:

SymptomMost likely causeDo this first
Large ADC jitter at one weight (range > 160)Scale not settled, hand contact or cable tension, structural interference, external noiseSettle 5-10 seconds and retest that weight point; check routing and mechanics
ADC decreases when weight is addedReversed signal polarity (S+ / S-), wrong half-bridge combination, reversed sensor mountingThese modules are fixed to ADC-increases-with-weight; swap S+ / S- or fix the bridge combination / mounting
Low range fine, high range error growsStructural deformation or interference, sensor capacity/linearity limits, uneven corner loadingRun the four-corner test; add points near 100kg / 150kg
Tool reports insufficient signalLow sensor sensitivity, abnormal excitation supply, oversized sensor capacityCompare the estimated slope against 400 / 640 ADC/kg; check supply and sensor specs
Reading drifts slowly in one directionCreep, mechanical stress release, temperature changeRe-read after settling; if drift persists, check structural stress, foot pads, mounting
Readings differ a lot when the weight movesInconsistent corner loading, travel-limit or foot-pad interferenceRun the four-corner test; check limit clearance and support surfaces

FAQ

Do I still need to calibrate? The module already outputs a weight.

Yes. The module does output a weight, but it uses a factory default calibration that does not match your scale, so the weight is inaccurate until you calibrate. You must set the zero and span factor to the actual values of your scale before the weight is correct and consistent across units.

Why can’t BestHealth ship pre-calibrated modules?

Because the ADC-to-kg conversion is determined by the complete assembly (sensor model/sensitivity, sensor count and bridge combination, excitation, scale structure and mounting). The module maker does not have your mechanical assembly and cannot determine it in advance. Every electronic scale is calibrated per unit after final assembly — that step happens on your side.

Can I calibrate with a small weight such as 5kg?

Not recommended. The calibration span point should be near your actual full scale (e.g. 0 / 50 / 100 / 150kg). Calibrating with only 5kg and extrapolating to 150kg magnifies zero drift, noise, and nonlinearity by tens of times, so high-weight error is large; light load also fails to reveal structural deflection and four-corner problems. Production lines usually have automatic weight/loading equipment, so applying large weights is not difficult — there is no need to trade accuracy for convenience.

Why does the tool flag an issue even though R2 is close to 1?

Because R2 is computed from the average ADC of each weight point. If one weight point is internally scattered, the average can still land on the trend line, but the repeatability is already abnormal - retest that weight point first.

Why read multiple ADC samples at the same weight?

A single sample can be affected by an unsettled scale, weight placement, cable tension, uneven loading, or external interference. Only multiple consecutive samples show whether the weight point is stable.

Can I test without certified weights?

For an initial check, yes. Use loads with roughly known weight - a person with a known body weight, cases of bottled water - loaded in steps, placed at the platform center, and read after settling. This can reveal obvious stability, direction, and signal-size problems, but since the weight itself is inaccurate it cannot judge error size; formal calibration and error judgment still need certified weights.

Can I use the tool without a 150kg weight?

Yes. The tool can still check stability and linearity within the measured range. The high-weight conclusion relies more on extrapolation though - the closer your coverage gets to 100kg / 150kg, the more reliable the conclusion.

Is the 0kg zero-load point mandatory?

Strongly recommended. The zero point shows zero stability and anchors later weight conversion. Without it the tool can still fit part of the trend, but problem isolation gets weaker.

Is a negative ADC at zero load normal?

Usually yes. The zero-load ADC is not necessarily 0 - small negative values, positive values, or a fixed offset can all be normal zero behavior. What matters is whether the repeat range stays within the stable reference (≤ 80). Only investigate when the zero reading keeps drifting in one direction or jumps heavily.

What do “coverage” and “extrapolation” mean in the tool?

Coverage is the measured maximum weight relative to the 150kg reference. For example, if you only measured up to 50kg, coverage is about 33%, and the reference ADC at 100kg / 150kg is extrapolated along the fitted line rather than measured, so its confidence drops. That is why the tool marks high-weight conclusions as “extrapolated reference” when coverage is low.

The tool says “segment consistency deviation is high / needs retest” - what now?

It means the slopes of different weight segments differ too much, i.e. the sensitivity is inconsistent across segments. Common causes are load paths changing with weight (a travel limit starting to touch, platform deformation), an inaccurate weight point, or sensor linearity limits. Retest the segment with the abnormal slope first, then run the four-corner test, and only after confirming structure and mounting suspect the sensor itself.

The tool shows requirements for two model groups - which one applies?

Read the row for the module you actually use: 20,000 for BMH05104-2, 32,000 for BMH05108 / BMH05109. The tool shows both for comparison; if your data only meets the lower tier, the signal is insufficient for BMH05108 / BMH05109.

Half-bridge or full-bridge - which is better?

Neither label alone decides quality. What matters is the sensor’s rated capacity, sensitivity, consistency, mounting structure, bridge combination, and the complete product’s noise immunity. Half-bridge designs depend more on combination and structural consistency; full-bridge wiring is more direct but still needs correct mounting and routing.

How do I get a first read on whether the sensor is underperforming?

Large scatter when re-reading the same weight, a small ADC gain per added weight (slope clearly below the 400 / 640 ADC/kg references), clearly inconsistent slopes between weight points, or large reading differences across placements can all indicate sensor, structural, or wiring problems. Rule out mechanical interference and wiring direction before blaming the sensor.

If ADC decreases as weight increases, is it definitely a fault?

Yes. BMH05104-2 / BMH05108 / BMH05109 are all defined so that ADC increases with weight — there is no normal case where ADC decreases with weight. If it keeps decreasing, it is usually reversed signal polarity (S+ / S-), a wrong half-bridge combination, reversed sensor mounting, or an abnormal bridge supply; check these in turn and fix.

Can the tool replace final metrology certification?

No. The tool is for engineering debugging and problem isolation. It only performs a first-pass analysis on the entered ADC data and cannot replace complete-product metrology certification or final quality judgment.

When the tool reports an issue, work through this order:

  1. Retest the abnormal weight point; confirm the scale is settled and the weight placement.
  2. Check sensor wiring, mounting direction, and half-bridge/full-bridge combination.
  3. Confirm the ADC increases as weight increases (a fixed direction for this module series).
  4. Confirm each adjacent 50kg calibration segment’s ADC delta meets the module requirement.
  5. Only then judge linearity, calibration, and the high-weight trend.

If the problem still cannot be located, use the tool’s “Copy report” function and send the report together with the raw ADC data, actual weights, and photos of the scale to BestHealth technical support - it speeds up diagnosis significantly.

Use the ADC Data Analysis Tool

BestHealth

Need technical support for your next project?

Share your application scenario and target requirements. Our team can help with device selection and solution planning.

Follow Our WeChat
Scan QR code to follow us on WeChat

Scan QR code to follow us on WeChat

+86-769-26261311info@e-besthealth.com