4 ms·
I have worked for many years on fitness trackers from https://www.jointcorp.com https://www.jointcorp.com. Talking with them, they sent PDF files for the commun
by Jugurtha 5y ago
I have worked for many years on fitness trackers from https://www.jointcorp.com https://www.jointcorp.com. Talking with them, they sent PDF files for the communications protocol (Bluetooth Low Energy). I wrote a generic codec that consumes a YAML file and could decode packets from these devices to Python objects, and which could take a Python API call for a function you didn't write and encode it to binary packets the watch could understand. Practically, when we needed to use another device, I just added to the YAML file and the thing worked with practically no code change. New watch with GPS data? Just add to the YAML file and magic happens. Watch with blood pressure feature? Just add a few lines to the YAML file and magic happens.
The code was on a Raspberry PI in which a 3G/4G dongle was plugged, and it connected to the watch, uploaded data, was robust do disconnection events either internet or BLE (used Thespian and the Actor model to create and kill actors). The devices were geographically distributed on different timezones (a fucking nightmare) and basically needed to work for users with zero technical skills. It needed to be plug and play and it just works. Even configuring the pairing between a Raspberry PI and the watch needed to be low touch (I used the analogy of a dog and a hand: you put your hand out for the dog to smell and recognize you, you put the watch nearby the Raspberry PI and it computed the RSSI and duration to detect the "intent" so it didn't pair with "drive-by" devices). Kind of like NFC, but for BLE. The data was sent to a backend, then displayed on a mobile application (the prototype had a Grafana dashboard that showed your activity in near-real time).
Talk with them. They'll probably send you the PDF spec and you can do whatever you want.
- 41209 5y agoThat's cool, but I was trying to find a company that publishes it's SDK. Ideally some app examples as well. That said, given how cheap these watches are I'm open to trying anything. Were you able to write your own custom app too, or just consume existing data ?
- Jugurtha 5y ago>Were you able to write your own custom app too, or just consume existing data ? As mentioned in my original comment with additional: I wrote an application that ran on Raspberry PI devices in different continents, countries, and time zones that connected to trackers worn by people with zero technical skills and worked nonetheless surviving disconnection events and automatically upgrading the software, communicating with the trackers and sending serialized data (protobufs) to a server application in Scala my colleague wrote, that then made analysis and aggregations and sent result to yet another mobile application (Android) another colleague wrote to display graphs and other data. The application I wrote worked with several models of this company's products, and at some point, we thought of making it more generic and use it for video and sound feeds for another project ("sound event detection", let's say). Yes, I was able to build a custom app and it worked not only on my data, but on others' data as well. The funniest conversations we had were about time and time zones. At some point, we started using timestamp timestamp and timestamp not timestamp because working on data from multiple time zones makes you question what on earth is time, and what actually is now ("Now for whom?" "Now where?"). I had literally nightmares about time and time zones. No, I am not kidding.
- 41209 5y ago>that ran on Raspberry PI devices You were able to create a companion app, but I'm talking about actually running custom apps on the tracker itself. Do you know if that's possible
- Jugurtha 5y ago>You were able to create a companion app, but I'm talking about actually running custom apps on the tracker itself. Do you know if that's possible I understand. You meant an SDK to create an application for the tracker itself, not get the raw data (which many of the trackers don't even give easily) and then make something with that. I am not aware if they support, or give access to this. I misunderstood your original question.
- 41209 5y agoYes, I want to actually make apps for the tracker. Other watches do support this, according to other posts in the thread. However, your use case did spark my interest. Were you running a fitness company or something, was the tracker a key part of making sure your customers stayed on track.
- Jugurtha 5y agoWe worked on a project for the elderly: we wanted to detect anomalies in their behavior to scale social workers and draw their attention to the seniors who actually needed assistance. Is there an anomaly in their behavior (lack of heart-rate variability is thought to be a sign of depression or other problems? are they walking less than usual? are they sleeping well? what is the proxy for loneliness? what is a proxy for anxiousness? are they waking up in the middle of the night when they didn't use to? Have they fell?) The mobile application was for social workers to track the behavior of seniors who were assigned to them. They received alerts based on some triggers and rules after analyzing the data that we consulted cariologists, social workers, paramedics for. It was psychologically hard because the question I always asked the team was "Would you trust your parents' life with this?", and we built against that standard with the constraints at the time with the answer almost always being "no, I can improve X, Y, and Z". It was never enough.