How does a bathroom scale automatically power on when I step on it?

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.


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.