Bathroom scale LCD hack - send custom data

Hi folks,
Does anyone know how I can connect an Arduino Uno to the LCD display of a bathroom scale? Context -- this project is a hack, its essentially a joke where no matter what you put on the scale it'll show the same weight. So I'm thinking all I really need is a touch sensor, my Arduino, and an LCD display.

But I'm interested in seeing if I can re-use the scale's existing display since it has a very nice blue lighting to it. There are only two wires going into it - black and red.

I can't find a schematic for the scale but it's this model - EB4074C Digital Body Weight Scale

In general if I did want to intercept/read that data coming from the scale's load sensors could I hook up to the existing board or would I need to use something like the HX711 that I see ppl recommending for a DIY scale?

There are plenty of different Arduinos.... Any link to the scale electronics? Post it. At this stage, nobody would know.

Why not cut out the scale LCD and put in one having data sheets telling how it works?

Does anyone know how I can connect an Arduino Uno to the LCD display of a bathroom scale?

Almost certainly not to yours, as those scales are all different, and all proprietary.

It is possible to hack custom LCD connections, if you can expose them, but it is very laborious.

See Direct Reading of LCD Using General Purpose IO : 12 Steps - Instructables

You need an LCD driver to display alternative data on an display like that. The required waveforms are complex, and hardly ever worth the effort to implement.

To hack things like that, lots of experience and skill would be needed.
Persons having those qualities would never do it....
It's the total opposite to plug and play.

Okay thanks team! Let me see what my local store has for displays come Monday when they open and then I'll change the description above.

That would be an extremely bad transgression of forum protocol!

OK, I hope that you can successfully reassemble it. :astonished:

If you want it to read exactly the same whatever is placed on it, that part is fairly easy. You need four resistors and a potentiometer.

Disconnect all four load cells, and measure between black and white wires. This should be twice the measurement as between white or black, and red. Choose four resistors of vaguely similar common value as half the black-white value. Connect a pair in series between "E+" and "E-" with the centre tap to "S-". A second pair in series with a potentiometer in between, the potentiometer value being (approximately) one tenth of the resistor value. The ends again connect to "E+" and "E-" with the potentiometer wiper to "S+".

Now you have the ability to set the indicated value to whatever you want, however the behaviour of the scale logic is that it only switches on when you change the setting.

I will move on at this point to see how you follow this. :grin:

You forgot to count the 16 contacts on the edge of the circuit board. Those are pressed against the "zebra connector" on the edge of the LCD. The zebra connector is a strip of rubber with alternating conductive and non-conductive layers. When the two sets of contacts are lined up and pressed to either side of the zebra strip, one or more conducting layers connect the corresponding contacts while the insulating layers keep them from shorting to adjacent contacts.

You should be able to drive the LCD with an Ardiuno. Use this little sketch to alternate A0 and A1 on an UNO:

void setup()
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);

void loop()
  PORTC = 1;  // A0 HIGH, A1 LOW
  PORTC = 2;  // A0 LOW, A1 HIGH

Connect A0 and A1 to pairs of LCD pins to see what segment darkens.

1 Like

Really? Sounds very risky to me!

Okay I won't then :sweat_smile: I'll keep updates here in the comments.

Why do you say that?

See application note AVR241: Direct driving of LCD display using general IO

And application note AVR340: Direct Driving of LCD Using General Purpose IO

Yes, especially for a beginner. The LCD will be destroyed if segments are subjected to a constant DC voltage for a significant length of time, for example if one or more segment driver pins are stuck high, as a result of a programming error.

Hi everyone, I got the HX711 set up and I verified that the red wire was indeed the middle wire. I’m using the two load cell set up shown here

, and I tried both with the two and four but am getting nans. The calculated calibration offset value says 0.0.
I know the load cells work Bc the scale was working before…
Any ideas on how to debug the HX711?

Arduino is brand new, I'm using the default pins 4 and 5.

Can you post a drawing of your circuit diagram, showing component labels and pin names please?

Please check all your solder joints.
Can you please post a picture of the other side of the PCB in post #12?

Also please post your code that you are using.

Do you have a DMM?

Thanks.. Tom... :grinning: :+1: :coffee: :australia:

Oh well, since the subject has changed from displaying a fixed value on the present display, which I addressed, to using an Arduino to measure weight, I'll just move elsewhere. :thinking:

I will say however, that those wires do not appear to be soldered to the HX711 module. :roll_eyes: