Talking Bathroom Scale for Visually Impaired Users

by lhm0 in Circuits > Arduino

483 Views, 1 Favorites, 0 Comments

Talking Bathroom Scale for Visually Impaired Users

IMG_0264.jpg
Building a Talking Bathroom Scale for Visually Impaired Users
IMG_0260_complete.jpg
IMG_0277.jpg

This project transforms a standard digital bathroom scale into a talking scale for visually impaired users. Instead of reading the weight from a small LCD display, the user simply steps onto the scale and hears the measured weight announced through a loudspeaker.

To achieve a professional appearance and reliable mechanics, I reused the enclosure and load sensors of a commercially available scale and replaced the original electronics with a custom ESP32-S3 based design.

A major focus of the project was low-power operation. The scale runs from three AAA batteries and uses deep sleep, switched power rails, and a low-quiescent-current power supply to achieve long battery life while remaining ready for immediate use.

The result is a practical, battery-powered, and open-source assistive device that can be built and modified by anyone.

Supplies

IMG_9580 2.jpg

bathroom scale

for further materials please refer to the GitHub repository

Project Motivation and Design Goals

Most digital bathroom scales display the measured weight on a small LCD screen. While this works well for most people, it can be difficult or impossible to use for visually impaired users.

The goal of this project was to create a talking scale that announces the measured weight through a loudspeaker. Instead of designing a scale from scratch, I decided to reuse a commercially available bathroom scale. This provides a professional appearance, proven mechanics, and reliable load sensors while keeping the project practical and affordable.

Another important goal was battery-powered operation. The scale should be able to run for a long time from three AAA batteries, which required a strong focus on low-power design.

The main design goals were:

  1. Voice announcement of the measured weight
  2. Easy operation for visually impaired users
  3. Battery-powered operation using 3 × AAA cells
  4. Long battery life through low-power design
  5. Optional USB power supply
  6. Wireless configuration via Wi-Fi
  7. Reuse of a commercial bathroom scale
  8. Open-source hardware and software

In the following steps, I will show how the scale was modified, how the electronics were designed, and how the firmware was implemented.

Electronics Concept and Low-Power Design

talking_scale_electronics_architecture.jpg
talking_scale_power_consumption.jpg

The block diagram shows the overall architecture of the talking scale.

The four load sensors inside the scale form a Wheatstone bridge. Their signal is amplified and digitized by an HX711 load-cell ADC and processed by an ESP32-S3 microcontroller.

For the voice announcements, the ESP32 sends digital audio data to a MAX98357A audio amplifier, which drives the loudspeaker.

A key design goal was long battery life. The scale is powered by three AAA batteries and uses a TPS62740 buck converter, chosen for its extremely low quiescent current.

To further reduce power consumption, the load-cell bridge and the audio amplifier are connected to a switched power rail controlled by the ESP32. These components are only powered when a measurement is taken or a voice announcement is played.

Most of the time, the ESP32 remains in deep sleep and periodically wakes up to check whether someone is standing on the scale. This approach reduces the standby current to only a few microamps and allows the scale to operate for many months from a single set of batteries.

In the next step, we’ll take a look inside the original scale and remove the factory electronics.

Understanding the Original Scale

IMG_9574 3.jpg
IMG_9576 4.jpg
IMG_9578 4.jpg
IMG_0231 3.jpg

The first step is to open the scale and take a look at its internal construction.

As shown in the photos, the scale contains four load sensors, one in each corner. Each sensor has three wires: a red center tap and two outer wires, typically black and white. Using a multimeter, you can measure the resistance between the center wire and each outer wire. In my scale, both resistances were approximately 1 kΩ.

Together, the four sensors form the Wheatstone bridge used to measure the applied weight. Fortunately, the load sensors themselves can be reused, so there is no need to modify the mechanical structure of the scale.

You can also see the original electronics board and the LCD display. Since the goal of this project is to replace the entire electronic system, both components can be removed.

After disassembly, only the enclosure, the mechanical structure, and the four load sensors remain. These parts will be reused in the following steps to build the talking scale.

3D-Printed Parts

carrier.jpg
carrier_assembly.jpg
buttom_enclosure.jpg
bars.jpg

Only two 3D-printed parts are required for this project.

The first part is an internal carrier that holds the speaker, the PCB, and the three AAA batteries. It is designed to fit into the original scale enclosure and makes assembly straightforward.

The second part replaces a section of the original bottom cover and provides an opening for the speaker, allowing the voice announcements to be heard clearly.

Both parts can be printed in PLA. Enable supports when slicing the models, although only a few small overhangs require support material.

The STL files are available in the project repository. I have also included the original Autodesk Fusion design files, making it easy to modify the design or adapt it to a different scale model.

As an optional accessibility feature, I also designed a set of wide black marker strips that can be attached underneath the glass platform. Their purpose is purely visual: they create a high-contrast outline that makes the scale easier to locate on the floor for users with limited vision. These parts are not required for operation, but they may improve usability depending on the user's level of visual impairment.

The images show the parts as designed in Autodesk Fusion before printing.

Assemble the Electronics and Install the Hardware

pcb1.jpg
pcb2.jpg
assembly1.jpg
assembly2.jpg
assembly3.jpg
IMG_0274.jpg

Obtaining the PCB

The custom PCB used in this project can be manufactured and assembled by any PCB fabrication service.

The repository contains all required production files, including the Gerber files, the bill of materials (BOM.xlsx), and the component placement file (positions.xlsx). These files can be used to order both the bare PCB and the assembled PCB.

For my prototype, I used JLCPCB’s PCB assembly service. In this case, simply upload the Gerber files and provide the BOM and position files when ordering assembly. However, the design is not tied to a specific manufacturer, and any PCB assembly service should be able to produce the board from the files provided in the repository.

Once the assembled PCB has been received, only a few through-hole components need to be soldered before installation.

Assembling the Scale

Before assembling the scale, solder the right-angle 3-pin headers to the bottom side of the PCB. These connectors will later accept the four load-cell cables.

Next, shorten the cables of the four load sensors so that they comfortably reach the space underneath the PCB. Leave an additional 3–4 cm of cable length to make assembly and servicing easier.

Solder a 3-pin female header to each sensor cable, as shown in the photos. This allows the sensors to be connected to the PCB without additional soldering inside the scale.

The battery compartment in the printed carrier uses recycled battery contacts. Remove the springs and contacts from a standard 3×AAA battery holder and install them into the printed carrier using short M3 screws.

Now insert the speaker into the carrier from below. The speaker wires should extend upward toward the PCB area.

Mount the PCB to the carrier using four M2 screws. Once the PCB, speaker, and battery contacts are installed, connect the four load-cell cables to the underside of the PCB.

The complete assembly can now be placed into the scale enclosure. Route the cables neatly and verify that nothing interferes with the mechanical parts of the scale.

Finally, connect the battery wires and trim and solder the speaker cable to the PCB. After a final inspection, the hardware assembly is complete.

Set Up the Software and Upload the Firmware

VSCode.jpg

The firmware is developed using Visual Studio Code and PlatformIO. If you are not already familiar with these tools, there are many excellent installation guides and tutorials available online, so I won’t repeat the process here.

Start by cloning or downloading the project repository and opening it as a PlatformIO project in Visual Studio Code.

Connect the ESP32-S3 board to your computer using a USB cable. After PlatformIO has downloaded the required dependencies, build and upload the firmware to the board.

One important detail is that the project consists of two parts:

  1. The application firmware
  2. The LittleFS file system image

The LittleFS image contains all MP3 audio files used for the voice announcements. Uploading only the firmware is not sufficient—the MP3 files must also be transferred to the ESP32.

Therefore, perform both of the following PlatformIO actions:

  1. Upload (program firmware)
  2. Upload Filesystem Image (LittleFS contents)

After both uploads have completed successfully, the ESP32 contains everything required to operate the talking scale.

Understanding the Software Operating Modes

talking_scale_operating_modes.jpg

The firmware supports two operating modes: normal operation and configuration mode.

During normal operation, the ESP32 spends most of its time in deep sleep to minimize power consumption. At regular intervals, it briefly wakes up and checks whether someone is standing on the scale. If no user is detected, it immediately returns to sleep. If a person is present, the weight is measured and announced through the loudspeaker before the system returns to deep sleep.

Configuration mode is entered by pressing the configuration button during startup. The ESP32 then creates a Wi-Fi access point and starts a captive portal. Using a smartphone, tablet, or computer, you can connect to the scale and open the configuration page in a web browser. After the settings have been saved, the scale is restarted and returns to normal operation.

Configuration and Calibration

IMG_0284.PNG
IMG_0285.PNG
IMG_0286.PNG

To enter configuration mode, press the configuration button while powering up the scale. The ESP32 will start a Wi-Fi access point with the SSID “scale” and open a captive portal. Connect to this network using a smartphone, tablet, or computer. The configuration page should open automatically in your web browser.

When you are finished configuring the scale, press the Reset button to restart the device and return to normal operation.

The configuration page provides access to several settings:

Calibration

Before calibrating the scale, make sure it is standing on a level surface and carries no load. Press Run tare to determine the zero offset.

Next, you need a known reference weight. I simply weighed myself using a calibrated reference scale and used that value as the reference weight.

Enter the measured weight in the Reference weight field, step onto the scale, and press Set calibration. The firmware will calculate and store the required calibration factor automatically.

Sleep Interval

The Sleep Interval setting determines how often the scale wakes up to check whether a person is standing on it.

As discussed in Step 2, shorter intervals improve responsiveness but increase power consumption, while longer intervals maximize battery life. Enter the desired interval in seconds and press Update sleep interval.

Language and Unit

The Language and Unit section allows you to customize the spoken announcements.

Using the radio buttons, select either German or English for the voice prompts and choose kilograms or pounds as the weight unit. Press the corresponding update button to store the selected setting.

Testing the Finished Scale

After calibration, the scale is ready for use.

Simply place it on a level surface and step onto it. After detecting your presence, the scale measures your weight and announces the result through the loudspeaker using the configured language and unit.

The scale can operate from three AAA batteries or from a USB power source. Battery operation provides maximum flexibility and allows the scale to be used anywhere.

If a power outlet is available, USB power may be preferred. In this mode, the scale can use shorter sleep intervals without concern for battery life, resulting in faster response times when stepping onto the scale.

At this point, your talking scale is ready for everyday use.

Conclusions

In this project, I transformed a standard bathroom scale into a talking scale designed for visually impaired users. By reusing the enclosure, mechanics, and load sensors of a commercial scale, it was possible to create a practical device with a professional appearance and proven reliability.

A major focus of the design was low-power operation. Through the use of deep sleep, switched power rails, and an efficient buck converter, the scale can operate for extended periods from just three AAA batteries.

The ESP32-S3 platform also enabled convenient wireless configuration through a captive portal, eliminating the need for a dedicated mobile app.

All hardware design files, firmware source code, 3D models, and documentation are available in the project repository. Feel free to adapt the design to your own scale or extend it with additional features.

I hope this project inspires others to create accessible devices and to consider usability as an important part of the design process.

Thanks for reading!