This project is about interfacing a bathroom weight scale with the computer. The goal is to be able to connect the scale to the computer and have it sent the weight it measures.
The scale used is a Korona KFW-55. This scale was simply around when the project started.
Here the scale:
A closer look:
Following components are used:
The scale has a JP1 header on the board. Pin 1 is the one near the switch. The pinout is the following:
I soldered a pin header and some cables on it.
The scale's IC provides a Pulse Width Modulated (PWM) signal. This encodes the weight measures. It's frequency is around 3 Hz (it's not exact). The high and low duty cycle encode the current weight measured. The high duty cycle decreases when the weight increases. The low duty cycle increases when the weight increases. The low duty cycly is linearly proprotional to the weight. It still needs a minimum weight to start measuring correctly. The origin of this linear curve is not at 0.
The micro-controller code is written in C. It reads the state of the scale using pin 3. It reads the weight on the scale using pin 5. The code is available in the git
By programming the curve parameters in the code it can calculate the weight. These parameters have been experimentally identify, using the measured values in scale.ods.
Instead of the two CR2032 coin cell batteries, a 9 V block battery is used. I integrated the Arduino Nano clone board in the scale. Using the USB port in the front it is possible to connect to the serial interface and read the measured weight.