×
1P13 Project 3 - EchoWeigh
Introduction
Synopsis: This project focuses on designing an assistive kitchen
device tailored to Kimberly, a client diagnosed with Usher Syndrome, resulting in
progressive hearing and vision loss. The aim is to enhance her independence in the
kitchen by developing EchoWeigh, a voice-assisted kitchen scale that
audibly announces ingredient weights in real time. The system integrates a load cell
sensor, Arduino microcontroller, and speaker system to deliver accurate audio feedback,
while ensuring simplicity, affordability, and ease of use.
Assigned Constraints and Materials: The design requires audio output
rather than traditional beeps, and we chose to use a load cell with HX711
amplifier for weight detection, paired with a DFPlayer Mini
for voice playback, and a laser-cut acrylic base for durability.
Tactile buttons facilitate unit conversion, tare, and repeat functions, meeting the
project’s priorities for accuracy, simplicity, and user-friendliness.
Figure 1: EchoWeigh Prototype featuring the acrylic base, speaker system, and control buttons
Project Objectives
1
Identified the client's needs and defined design objectives, functions, and constraints for an audio-based kitchen scale tailored to users with Usher Syndrome.
2
Conceptualized the design workflow through detailed sketches, morph charts, and flow diagrams for sensor integration and voice output.
3
Developed a comprehensive CAD model using Autodesk Inventor and produced 3D printed prototypes to validate the device structure.
4
Conducted iterative testing to evaluate weight accuracy, usability, and audio clarity, refining the prototype based on team feedback.
5
Presented the final EchoWeigh design with a functional prototype and integrated audio feedback system to the instructional team.
Project Responsibilities
For this project, I served as the Coordinator, taking on the responsibility of
contributing to team documentation and ensuring all project-related materials were organized
and up-to-date. I was also tasked with creating detailed meeting notes whenever the group
was together to discuss progress, challenges, or advancements in the project.
Example of meeting minutes for Project 3:
Here is a link to the complete meeting notes document:
Download Meeting Minutes
Design Process
Functional Analysis & Ideation
We began by developing a detailed morph chart to analyze EchoWeigh’s functions and constraints.
This phase was very important as we balanced multiple objectives, which were accuracy, simplicity,
affordability, and accessibility. The process involved many discussions on whether a more complex
mechanism would truly be better or if a simpler design could deliver the same performance. These converstaions
that I had with my group allowed us to narrow our options and refine our approach.
Figure: Morph chart summarizing design functions and constraints.
Concept Sketches
Using the morph chart, we created initial sketches of many devices that fulfilled the current objectives,
and after narrowing down many of the means, we finally got to a load cell and audio output, where we made
more sketches to visualize what our prototype was going to be. These sketches allowed us to learn about the
promising ideas and challenges we could face with this solution. One key difficulty was ensuring that the
custom cup could integrate well with the scale. Through multiple iterations later, we learned that minor
adjustments in the platform size greatly influenced usability and overall device durability.
Figure: Initial sketches illustrating potential integration of the cup with the scale.
Circuit Integration
As the mechanical components of the design were being created, I turned my focus to electronics where
I had a large contribution in. I wired all of the components together, and coded the software for the
scale, as well as audio output. I also integrated the software components and electronics together allowing
for a working prototype. During circuit integration, there were many issues with the load cell giving
inaccurate values, as it was moving and bending as weight above 100g was placed. From this, the group
went back to the design space and brainstormed new ways to secure the load cell in order to receive
accurate readings.
Figure: The internal layout of EchoWeigh’s electrical components, clearly labeled for reference.
Cup and Scale Evolution
After creating sketches, our next step was to create an initial prototype, in Autodesk Inventor, and
3D print as soon as possible. I really wanted to make as many iterations as possible to test out all
the ideas that we have and so that we can try to figure out all of the issues from testing as well.
Our initial prototype consisted of a bowl and a platform made of cardboard. We soon found out that this
was not suitable at all, as the bowl was difficult to carry, and the cardboard bent too easily causing
inaccurate measurements. We then switched to a funnel-type cup and a sturdier platform which improved the
prototype functionally as a whole.
Cup Evolution
Before
→
After
Scale Evolution
Before
→
After
Accuracy Testing
We conducted accuracy tests by comparing EchoWeigh’s from the load cell readings against a conventional
scale. At the start there were many discrepancies from larger masses with errors of up to 50%.However,
after iterative adjustments were made both the platform and the software, an accuracy error of less than
2% was achieved. This phase taught us the importance of systematic testing and precise calibration to achieve
reliable results.
Figure: Comparison between EchoWeigh measurements and a standard scale.
Durability Testing
Durability was evaluated by performing displacement tests using Granta software. Initial prototypes using cardboard deformed under stress, leading us to switch to a laser-cut acrylic base. This phase underscored that material selection is critical for long-term stability and that even small design adjustments can lead to significant improvements in durability.
Figure: Displacement test results showing improved durability with acrylic.
Final Program
I had major contributions to Writing the code and integrating it with the hardware
for EchoWeigh. The core of the software design is based around a
state machine to control everything without any delays. This approach
processes button inputs to transition the system between different modes,
allowing EchoWeigh to manage multiple tasks without lag or interference.
Specifically, our code handles:
- Power Control: Turning the scale on or off depending on button input.
- Unit Conversion: Switching between grams and cups on-the-fly.
- Tare Function: Zeroing the scale even if a container is on top.
- Repeat Last Reading: Replaying the last measured weight via audio.
Each mode is triggered by a unique button press and processed in a non-blocking manner.
For instance, if the system detects the second button being pressed, it switches units
without disrupting other functionalities, like measuring weight and playing audio.
By isolating tasks into distinct states, I ensured there are no bugs which cause unreliable weight measurements
and audio feedback.
A significant challenge during software development was integrating the DFPlayer Mini. To play the correct weight,
I needed to accurately map each weight to its corresponding MP3 file. Deciphering the pattern took considerable time,
but once implemented, the system worked seamlessly, providing clear audio feedback for weights from 0 to 1000 grams.
This project allowed me to build on my software skills in C++, particularly in writing efficient, hardware-level code for
real-time systems. Working with state machines, button debouncing, and serial communication allowed me to better my understanding of
embedded programming to create projects that help people.
Here is a link to the arduino hardware code
Donwload the .ino file
Reflection
This project pushed me out of my comfort zone a lot, especially when I was developing software and integrating
all of the electronic components. At various times during the project, I found myself questioning the approach
we took on the components we chose and methods, especially when integrating the DFPlayer Mini module. The questions
started when I was struggling with mapping each individual weight measurement to the correct audio file. I almost
gave up, and was thinking if as a group we made the correct decision to purchase this? Or was there a better solution
to getting audio for the scale? Should we use an ESP32 over Arduino? I felt like I always made the incorrect decision
as at times nothing was working, but after much time debugging and trying new approaches, it finally worked and I was
very joyful.
While our accuracy tests showed promising results with an error of less than 2%, I also questioned if the hardware
choices made, such as the load cell and Arduino configuration, would perform well under the varying conditions of a
real kitchen environment. Would frequent usage and potential mishandling lead to the scale breaking, or could these
components sustain long-term practical use?
Despite these concerns, overcoming these challenges greatly enhanced my skills in C++ and my ability to troubleshoot
embedded systems. The skills and reflective habits gained here will certainly affect my approach to future projects,
ensuring I balance theoretical ideas with practical considerations.