Sep 6, 2023
Bringing consistency to the hash makers who hand wash
A few weeks ago, we created a proof-of-concept for a wash tracking device by slapping a phone onto a paddle. It's an easy way for hash makers to increase consistency across batches and team members, and an excuse for us to learn more about prototyping our own hardware from the ground up.
When data is a chore, nobody wants to deal with it. But when you make it easy to train new employees and increase yields, everyone appreciates that.
Are we crazy for asking you to slap a phone on your paddle? Maybe. But it's the start of something bigger than that. At the heart of our mission is a desire to blend the art and science of hash making. This is a (very early) step in the right direction.
Starting with a phone allows us to change models quickly while prototyping without needing to go through a device firmware update each time. Will help us get more accurate results.
This article will be continuously updated as we advance on this project. We're open sourcing all of our CAD files, components, and the entire hardware prototyping process so you can follow along with us and make your own paddle tracker. Just promise if your design is better you'll send us one.
Why we decided to work on a tracking device for hash paddles
We want to help bring consistency to an art form that is inherently subjective and hard to transfer between team members.
Everyone starts to get tired after a few washes and their agitation changes drastically. Training team members to wash consistently and repeat the same technique adds another layer of complexity.
The simple answer would be to ‘use a machine’ but that’s a separate topic and we believe deeply in the art of hand washing. A lot of the world’s best hash is still made using a paddle. The price/quality ratio is very hard to beat.
That said, the paddle experience can definitely be improved.
What if your paddle remembered your movements?
What if it could guide you based on a recipe?
Wouldn't it be sweet if you could pass your paddle to a friend or team member and instantly transfer your technique to them?
These were all very interesting questions because the answer would allow us to bring consistency to hash makers and their teams without encroaching on their craft.
After talking to a few other hash makers, we realized these were pretty universal problems in the world of hand washing. People struggle with consistency over time -- especially when you're spending long days in the cold room running batch after batch after batch.
Our experiment was clear. We hypothesized that creating a clip-on paddle tracker could make hand washing more consistent.
Golf swing trainers have been a thing for a long time. Tennis trackers, fitness wearables, and readily available consumer gyroscopes and accelerometers meant we were in good company. We had a hunch this would be valuable, but we wanted to develop an MVP and test the waters before diving in head first.
Step 1: Validate the concept
First step was simple. Leverage iPhone and internal sensors to do all of the tracking we need and test the concept.
We built a quick Swift app, slapped the phone to a paddle, and started recording wash data using onboard gyroscope and accelerometer data. We discovered early on that raw inputs aren’t useful on their own, so we developed a model to calculate ‘agitation vigor’ and assign a simple numerical value to it (more on this later).
What we're tracking with hashy-washy app
Linear and Rotational acceleration: Each contributes to the forces in the wash vessel. We separate them because they contribute to turbulence to different degrees. Use vessel parameters to help here.
Acceleration magnitude: Indicator of overall washing intensity
Stroking pattern: General pattern of movement, like circular, figure eight + more
Depth variation: Changes in depth of paddle stroke during washing, indicating if the user is washing in a uniform plane or not.
Periodicity: Using Fourier Transform, determine the regularity of paddle movement and its frequency.
Spatial bias: Understanding if the user is favoring a specific part of the bucket
Cadence: Consistency in rhythm or tempo of paddle strokes
Time dependency: Changes in user behavior over time, especially in response to material becoming tougher.
External factors: User provided parameters like amount of ice, water temperature, flower to water ratio, room temp.
Energy consumption: Estimation for amount of energy being put into the paddle by the user
Speed variance: Changes in speed of paddle, either sudden or gradual, help understand users consistency.
Directional bias: Observing if paddle strokes tend to drift in a particular direction over time, indicating subconscious user habits.
Idle time: Periods when the paddle stays relatively motionless, which might indicate different points in the process, i.e. wash start, wash end, etc.
Basics of wash data analysis
Data Collection: Collect raw data from sensors (accelerometer, gyroscope, magnetometer) embedded in the smart paddle. Sampling 64 times per data point, and using capacitor to decrease sensor noise. Measuring readings ~50 times per second, from each sensor type, in all 3 axes (x, y, and z).
Data Cleaning: Applying noise filters to remove outliers and smoothen data.
Sensor Fusion: Combining data from the 3 sensors to determine paddle orientation.
Feature extraction: Identifying which specific metrics we wish to track, like magnitude, direction, angular acceleration, and others similar to the ones mentioned above).
Pattern recognition: Use Fourier Transforms to identify any periodic patterns in paddle movements.
Time-series analysis: Tracking how metrics change to identify how user behavior and external factors affect the washing process over time.
Spatial analysis: Using sensors to understand spatial orientation and movement of paddle, to infer patterns of stroke and if the paddle is favoring a specific part of the bucket.
Advanced analysis: Experimenting with machine learning to learn more complex patterns, applying user to user corrections, and identify the optimal washing technique, or even predict the quality of hash / yield based on the sensor readings.
Feedback loop: Using the analyzed data to provide real-time feedback to users, helping them improve their technique, maintain steadier cadence, apply optimal force during different stages of washing, and guide them toward parts of the vessel that they might be neglecting.
The Apple Watch was our next logical stepping stone, but we ran into a few roadblocks with the display auto-off that kept messing with the data we were logging and the ability to provide haptics while you’re washing. So no tracking washes from Apple Watch for now.
We posted on Reddit and got a bunch of feedback. We rewrote our app in React Native to add much requested compatibility for Android. The other stuff we make is all in React so this sets us up to provide more integrations down the road.
Very very early version of our adjustable phone/paddle mounting system
With the app and data logging all set up, we started designing a mount that would attach your phone to your paddle. After a few iterations we had a pretty clean setup for iPhone and Samsung phones. We’re currently working on a new design that will clip universally to all phones and allow you to mount to your paddle/other accessories.
Our hardware engineer went to work on the internal electronics for the separate clip-on tracking unit while we leaned on hash makers to test the app and record some wash data for our model.
Step 2: Prototype the paddle tracker
With a basic app set to record times, agitation, and a basic model for agitation pattern, we set out to build a simple clip-on unit that wouldn't require you to use your phone.
Our key concept was replicate everything from the app in a simple clip-on tracker.
Record wash start/stop times and agitation style
Provide haptic and visual feedback while washing
Cycle through recipes without looking at phone screen
Quickly create batches and edit details later
The journey began with creating the development board and designing a housing. We drew a lot of inspiration from the Stem Player and its ability to make a complex world very simple to interact with.
We started on a CAD model that would fit our dev board and printed it to test. Once we finalized basic design, we wrote basic firmware to send data to the backend that we created for our mobile app. Now, users would have the option to use the phone’s gyroscope data or pull in data from an external source (the clip-on paddle tracker).
Parts list for prototyping
ESP32 development module: Amazon link
MEMS accelerometer: sparkfun link
Vibration motor: Amazon link
RGB LED: Amazon link
Battery: Amazon link (reverse the leads or you will fry the Adafruit ESP32 Feather board!!!)
We are using JLCPCB for assembly and part sourcing on our custom boards.
With the dev board successfully connecting to our app prototype, we started on a custom board for our clip-on tracker that will allow us to reduce overall form factor substantially. We’re also adding a bigger haptic motor to increase feel through the paddle. Battery life is decent right now (about 8 washes), but we’re also experimenting with different designs to increase capacity there.
During this phase we’ve made substantial progress towards making a fully independent clip-on paddle tracker, but we still have a bit of testing and optimization to do before we’re ready to launch this as a fully packaged product.
We’re currently in the process of testing alternate electronic components and measuring against data from phone sensors to identify differences between the readings. While our 3D printed housing is designed to be water tight and proves effective in initial testing, that’s one of the key areas we need to improve before going into any sort of production.
Tolerance check on phone mount design while testing new plastic
Questions, challenges, and the future
We accomplished what we set out to test with our hypothesis.
Record your techniques
Increase consistency across batches and team members
Optimize washes based on insights over time
Data = immediately actionable 💪
Next goals
Design silicon waterproof housing that’s a bit more durable than our current 3D printed housings
More advanced wash modeling that records the full path of your paddle and provides detailed feedback
Create our own paddle that does all of this tracking, built right into the shaft
Questions we’re trying to answer through our prototypes
How do we solve for position drift to create more detailed models?
Can we optimize for extraction efficiency and fatigue at the same time?
Position drift -- Position drift is hard to calculate when considering the physical position of the paddle, but fortunately, we can rely on relative metrics to do most of the heavy lifting. We are working on tracking for the exact path of the paddle and early prototyping for tracking actual water flow.
Different paddles -- another huge variable, but we can learn a lot about how a paddle is behaving if we know the balancing point. As long as your keeping the same paddle between washes, your measurements will also be relative and can still provide valuable feedback
Universal mounting -- For people who want to use their phone, we want to make sure our mounts are 100% secure and will never release your device even in freezing conditions
Improving form factor
We’re working on universal phone-paddle mounts that will be compatible with different phone models
Making current clip-on tracker smaller and working on a waterproof housing
The first prototype was made with a simple dev board and add-ons glued together with foam. However, our custom board is a lot smaller, giving us more wiggle room for the battery and a slightly larger haptic motor.
Refining what to track
With a stable foundation for logging data from phones and from our own paddle tracking unit, it was time to figure out what wash data actually mattered to people. Most hash makers agree on tracking a few things.
Soak time and wash time ✅
Water temperature ❌
Agitation speed ✅
Agitation variability ✅
Our current paddle tracker doesn't automatically log water temperature, but that's simple enough to add and enter with a simple thermometer. We're also cooking up a few additional tools and integrations that will let you log temperatures with your washes automatically for people using paddles or machines. If there’s other stuff you think we should be looking into, please let us know.
Open sourcing this tech to the community
We believe in putting our money where our mouth is (or in this case our CAD files and build plans). That’s why we’re open sourcing everything. Our goal is to invite feedback, stimulate discussion, and get more people excited about tracking data in the hash game.
We’re providing CAD files for both the phone-paddle mount and the housing design for our clip-on tracker. You’ll be able to 3D print everything yourself and assemble your own units right alongside us. We’re also sharing the firmware code so that you can customize your wash tracking parameters. Soon we’ll set up an API that you can stream data directly from your own builds into the Hashy Washy app our our full platform.
For hash makers and builders willing to help us refine our digital wash model, we’re happy to send you a phone mount for free in exchange for some wash data. For those who want to build their own clip-on trackers, we’re assembling detailed build instructions with links to all of our parts and a kit with everything for your convenience.
As we refine the clip-on paddle tracker, we are developing a production version that’ll be fully waterproof and experimenting with a 3D printable one with a self installable waterproof gasket.
Your privacy is our biggest priority. All data is encrypted and anonymized by default, unless you opt to share your motion data to help us improve our product. We believe this is a critical aspect of our device's design, ensuring user-friendliness while respecting user privacy.
Happy washing! Looking forward to building with you guys and improving the product. If you have suggestions about how we can improve our model or various parts of the design, please reach out and we’d love to have a discussion.
Link to current project folder with CAD files and instructions, we'll be updating this as we make changes
Sign up here if you want to register for one of our 3D printed prototypes