If you weigh yourself by standing on a bathroom scale, not liking the result, then balancing towards one corner to knock a few pounds off the dial, you are stuck in a previous century. Modern bathroom scales have not only moved from the mechanical to the electronic, they also gather body composition measurements and pack significant computing power.
After a struggle with double-sided sticky pads, the scale revealed its secrets: a simple yet accomplished device. There are four load cells and the electrodes for the body measurement, and the PCB. On the board is a 120 MHz ARM Cortex M4 microcontroller, a wireless chipset, battery management, and the analogue measurement chipset. This last is particularly interesting, a Texas Instruments AFE4300, a specialised analogue front-end for this application. It’s a chip most of us will never use, but as always an obscure datasheet is worth a read.
Finally, the wireless antenna is not the normal simple angular trace you’ll be used to from the likes of ESP8266 boards, but an organic squiggle. It’s a fractal antenna, presumably designed to present a carefully calculated bandwidth to the chipset. A nice touch, though one the consumer will never be aware of.
For those fighting the battle of the bulge, the forced discipline of fitness bands and activity tracking software might not be enough motivation. Some who are slimming down need a little gentle encouragement to help you lose weight and keep it off. If that sounds like you, then by all means avoid building this weight-tracking IoT scale with an attitude.
Then again, if you live in fear of your scale, [Jamie Bailey]’s version is easy to hate, at least when your numbers are going in the wrong direction. Centered around a second-hand Wii Balance Board talking to a Raspberry Pi via Bluetooth, the scale really only captures your weight and sends it up to InitialState for tracking and feedback. Whether the feedback is in the form of jokes at your expense is, of course, is entirely up to you; if you’d rather get gentle nudges and daily affirmations, just edit a few files. Or if your tastes run more toward “Yo momma so fat” jokes, have at it.
It’s awesome when you can tag-team with your dad to fix stuff around the house. [Ilias Giechaskiel], with help from his dad, did a complete refurbishing of a broken bathroom weighing scale, but not before trying to fix it first. The voltage regulator looked bust. Powering the rest of the circuit directly didn’t seem to work, and none of the passives looked suspect. Most of the chips had their markings scratched off and the COB obviously couldn’t be replaced anyway.
Instead of reverse engineering the LCD display, they decided to retain just the sensor and the switches, and replace everything else. The ATtiny85 seemed to have enough IO pins to do the job. But the strain-gauge based load cell, connected in a bridge configuration, did not have a signal span large enough to be measured using the 10 bit ADC on the ATtiny. Instead, they decided to use the HX711 (PDF) – a 24 bit ADC with selectable gain, specifically meant for use in weighing scales. Using a library written for the HX711 allowed interfacing it to the Arduino easy. The display was built using a 4 digit 7 segment display driven by the MAX7219. A slightly modified LEDcontrol library made it easy to hook up the display to the ATtiny. The circuit was assembled on a prototyping board so that it could be plugged in to another Arduino for programming.
Since they were running out of pins, they had to pull out a trick to use a single pin from the ATtiny to act as clock for the display driver and the ADC chip. Implementing the power-on and auto-off feature needed another interesting analog circuit block. Dad did the assembly of the circuit on a prototype board. In hindsight, the lack of IO pins on the ATtiny limited the features they could implement, so the duo are planning to put in an Arduino Nano to improve the hack. If you’re ever stuck with a broken scale, he’s made the schematic (PNG) and code available for use.
[Saulius] couldn’t find a cost-effective wireless scale that did what he wanted, so he reverse engineered the communication protocol for an off the shelf model to get weight data himself.
[Saulius] bought a cheap Maxim 29-66SH scale that uses infra-red to communicate to a detachable digital readout. Using the USB IR toy, [Saulius] intercepted the messages that were broadcast. After a little reverse engineering and with the help of some Python scripts, he soon discovered the protocol his scale was using to encode weight messages.
Since all the communication is through IR, there is no need to do any invasion of the scale as the receiver can be placed anywhere in line of sight from the transmitter on the scale itself.
Normally we see some crazy mad science projects coming from [Ben Krasnow’s] laboratory. This week [Ben] changes gears a bit and hacks his Xbox controller to interface with his bathroom scale and function as a posture controlled input device. You may want to take a moment for that to tumble around in your noggin before we trying to explain. What this means is you sit catawampus on a bathroom scale and when you lean forward your game character moves forward, lean back your character backs up and lean side to side for strafe left and right.
A modern digital bathroom scale has four pressure point transducers — one in each corner — which are read by the central controller and summed to generate the weight of the object setting on the scale. To use the scale as a controller input [Ben] removed the central scale controller and created two amplified Wheatstone bridge differential circuits, one for each diagonal axis between load cells. After adding an offset potentiometer to fix the resting point at 0.8 volts, the amplified differential voltage signals are fed directly into an Xbox controller’s thumb stick input for game control.
Additionally, to add rotation to his new game controller he hacked a an old ball type mouse and added a bit of rubber tubing that contacted and tracked the base of a Lazy Susan platter. The scale sits on the Lazy Susan and allows for the partial rotation of your torso to controlled game rotation. However, [Ben] still needed a regular mouse interfaced with the game for full 360° rotation control.
There is more after the break, plus the build and demonstration video.