Hacker News new | ask | show | jobs
by Gigachad 869 days ago
It's possible but its really unreliable. A device trying to reach out to an app on your phone to proxy the data while your phone is sleeping/app not running just doesn't work that well. You don't want to have to open the app while using the device, you just want all the data to be there when you look in a week.

These devices almost always have wifi since the chips usually have both anyway. And reaching out to a fixed wifi is so much more reliable.

1 comments

If you have enough room to store WiFi credentials, then you probably have enough room to store toothbrush use statistics.

There is no need to copy that data to a phone immediately. It can be put off until it's convenient.

And then the user goes out for the day, opens up the app, and wonders why the last 3 days of data is missing. Meanwhile the chip that does Bluetooth also just has wifi bundled in. Aside from the security risk, directly connecting to wifi is a vastly superior experience.
How much data can a toothbrush collect? Surely just a few hundred bytes per brushing session. The ESP32 has 160 kB of usable RAM out of the 520 kB total capacity. Surely enough for weeks of data even if the data structures are badly designed.
The problem is you can't reliably collect it over bluetooth. I doubt iOS allows apps to just run always active background tasks to fetch data over bluetooth while the app is not open.

The user expects the data on the app to always be in sync. If they check it outside of bluetooth range and see days of data is missing, it'll look broken.

It'll look however the UI designer made it look.

The right answer here is to show them a "last synced" timestamp and a sync button.

> The problem is you can't reliably collect it over bluetooth.

Really? Why not?

Because apps aren't allowed to be persistently running in the background. So you'd have to get the user to actively open the app while using the toothbrush which is annoying. If you let it connect to wifi, it will just work always without any manual user effort.