7
\$\begingroup\$

When I step on a bathroom scale how does the circuit turn on? I've disassembled these types of weight scales looking for obvious hardware switches, but none exist. I suspect the ADC is configured to generate an interrupt and wake the micro controller from a low power mode. If this is the case, how would this spec be translated to a common micro controller such as a MSP430F67 with its built-in 24-bit ADCs?

\$\endgroup\$
4
  • 2
    \$\begingroup\$ "built-in 24-bit ADCs" I wouldn't trust that as far as I could throw it. \$\endgroup\$ – KyranF Nov 25 '16 at 2:55
  • 2
    \$\begingroup\$ Sleep. Wake every x ms, one time adc. If value > n, wake up everything else go to sleep. \$\endgroup\$ – Passerby Nov 25 '16 at 2:57
  • 1
    \$\begingroup\$ @KyranF Throw distance depends on ballistic coefficient and at such low mass, to get decent range you'd really want added mass and a long slim package with good streamlining. So may be ideal for use in a dart or aerial penetrator. | | The ADCs in the MSP43F067.. are Sigma Delta converters and in ideal conditions could approach that resolution, if not accuracy (as 24 bit reference & stability is harder to come by). As, for a 100kg person, 24 bit resolution = 0.006 gram, the full 24 bits "is unlikely to be needed [tm]. A resolution ... \$\endgroup\$ – Russell McMahon Nov 25 '16 at 10:21
  • \$\begingroup\$ ... of say 10g in 100 kg = 1:10,000 ~ 2^14 or 14 bits is probably ample, especially given the linearity and absolute resolution of the overall strain gauge + IA system. Whether you can throw 16 BIT ADC system any further than a 24 bit one is moot, but with a suitable reference it's probably as trustable as it needs to be. To get 0.1 kg FS accuracy at 100 kg FS = 0.1% FS accuracy overall which is 'reasonably challenging' of itself, and suggest the actual reference is several bits better than that, which is unlikely in practice. No ? :-) \$\endgroup\$ – Russell McMahon Nov 25 '16 at 10:26
11
\$\begingroup\$

The scale is never really "off". Instead, it just turns off the display and other peripheral circuits such as the ADC and goes into a low-power mode internally. Every now and then (most likely based on a timer interrupt), it powers up the ADC briefly and checks the sensor to see if the weight has changed, and if so, it turns the rest of the peripherals, including the display, back on.

In low-power "sleep" modes, many microprocessors (and especially the MSP430 series) have a level of current consumption that compares favorably with the self-discharge rate of the battery.

\$\endgroup\$
3
  • \$\begingroup\$ Re: self-discharge. When you write it compares favorably, does that mean if you use a little bit of current it negates the effect of battery self-discharge? Or, is using the current additive with self-discharge? \$\endgroup\$ – Crizzle Nov 25 '16 at 2:59
  • 4
    \$\begingroup\$ It's additive, but about the same order of magnitude. \$\endgroup\$ – Dave Tweed Nov 25 '16 at 3:16
  • \$\begingroup\$ Some microprocessors also have comparators that can generate interrupts, but otherwise the same principle applies: the scale is not ever turned off completely. \$\endgroup\$ – Simon Richter Nov 25 '16 at 9:47
4
\$\begingroup\$

I've opened a lot of bathroom scales some months ago to 'steal' some knowledge for my projects and I had the same question. Most of them are using a 'vibration sensor' to detect when people step up on that scale.

Here you can see how a 'vibration sensor' is working: http://www.sunrom.com/p/vibration-sensor

This is much more efficient and simple to implement than a 'wake up' the uC once/second to check the weight.

I will give you an example why is not a good strategy to wake up the scale every second to check if someone steeped on it. For example and Atmega328 in sleep mode will draw around 100uA (this value can vary based on chosen sleep mode) and after it's started will draw around 3mA. A load cell amplifier based on HX711 IC draws 1uA in sleep mode and 4mA while running. Based on HX711 datasheet he can do 10 or 80 measurements over a second (that's 12ms or 100ms/measurement).

If you do the math, you will see that o lot of power will be wasted just to wake-up the entire system to check if someone is on that scale or not.

\$\endgroup\$
3
  • \$\begingroup\$ With your numbers, a 2000mAh battery capacity and one measurement of 15ms every second, I get about 2.2 years per battery. But your MCU is quite powerful. A PIC16 will take 0.5µA in sleep and 8µA in operation mode. The built-in12bit ADC (4096 steps) is enough for most scales. There's no need for this full featured HX711, one or two good opamps will be sufficient, draw much less current, and of course, you'll switch them off completely when sleeping. I guess 5-10years battery life is possible. \$\endgroup\$ – sweber Nov 28 '16 at 9:43
  • \$\begingroup\$ I've did the math with my numbers and you will get (only in stand-by) 1.14 years (0.1mAh for sleep mode and 0.1mAh for checking if someone is on a scale).If you use that scale will be less than an year. \$\endgroup\$ – Sorin Nov 28 '16 at 11:44
  • \$\begingroup\$ Not to mention that most scales are using a CR2032 battery, which has 240mAh. So using this method you will have stand-by time of less than 2 months. Of course with some optimization you can increase that stand-by time, but just using a vibration sensor you can easily double it. \$\endgroup\$ – Sorin Nov 28 '16 at 11:50

Not the answer you're looking for? Browse other questions tagged or ask your own question.