I chose one of these scales to hack. It turned out that the microcontroller, ADC and LCD controller were all in one "black blob" IC. The entire balance consisted of the black blob IC, EEPROM to store the firmware, raw glass LCD and the load cell. So the only way I could get any weight data off the thing was to decode the multiplexed signals going to the raw glass LCD.
This was not easy. There can be no DC on a raw LCD. So the signals are multiplexed, and consist of four levels - 0v, 1v, 2v and 3v DC. Each level is two ms long, and the entire signal is 16ms long. There is one unique signal going to each of the 16 LCD pins. They are timed so there is never a long lasting DC voltage on any of the pins.
I started by taking what they call a "backplace" signal and used it for timing. The backplane signal is just like all the others - a 16ms long signal consisting of 8 different voltage levels, each being 2ms long and consisting of 0v, 1v, 2v or 3v. The backplane signal never changed, and had one single 3v pulse. I used this for timing. It was fed to a PIC to develop a sharper timing signal, and this was fed to an Arduino to decode everything else.
Each signal was fed to the arduino adc through a 4051. The arduino treated 0v and 1v and a LOW and 2v and 3v as a HIGH. These values were fed into an array, and used as digital representation of the signal that was on the pin. Then a look-up table is created to match the value in the array with the digit value on the display, and this data is pushed to the serial port. BAM!
Here is my story.
*****NOTE - This project is not complete. I still have to finalize the enclosure. Once this is done, I will post pictures, the Eagle files and source as the final update. There will be little change to what is already posted in the links below.*******
SMD boards are in. I populated one and it's working well. I made a video of it working.
I finally got something I can ship for testing. It will be there next week. The schematic and source are all finalized. I moved to the 12F683 for the PIC. It's small, needs no external circuitry and costs about a buck fifty. The entire cost of what is shown is only $30. I made another quick video of it working, but it operates the same as before (I fixed a small bug in the forth place digit). It just looks a lot neater. I've got the render of the SMD version of the board (see image below), which is small enough to fit inside the balance housing if needed. We would just have to print out some supports to expand it. Now is the time to start thinking about a housing.
This rendered image was made with Google SketchUp along with the popular EagleUp plugin for Eagle CAD. The circuit was designed in Eagle.