Travel activity wearable tag
- Duration: 2016 - present
- Languages used: C (for the sensor tag), Java (for Android)
- Platforms: TI RTOS (TI Bluetooth LE CC2650STK sensor tag), Android (smartphone)
Description
I developed a wearable system using a sensor tag, that operates similar to Fitbit, but for travel activities instead of fitness activities. The user wears/carries the tag during the day, and can later sync it with the phone via Bluetooth to view the travel timeline and statistics.
I make novel use of the low-power barometer (air pressure) and step counter sensors, and lightweight algorithms that can run on the extremely resource-constrained tag, which has only about 7 kB of free RAM, 512 kB of external flash storage, and a 220 mAh coin cell battery. The tag can last upto 7 days (21 days for a 600 mAh coin cell).
Experience gained
- Android app development
-
Contemporary app design (single activity with multiple fragments), recycler views, rich notifications, action bar, Firebase login and storage, image caching, using animations, calendar views, card views, floating action buttons, dialog fragments, fragment-fragment and fragment-service communication, responsive GUI layouts, shared preferences, showcase views
- Embedded system programming
-
TI RTOS, Contiki, tasks, message handling, optimizing display power, SPI programming, resolving pin clashes between screen/flash/debugger, power measurement using Monsoon power meter
- Sensing
-
Ported the step counter driver from Invensense to the sensor tag (including loading the DMP firmware), use of environmental and motion sensors for context detection, sensor batching using hardware FIFO buffers, interfacing 3 lead ECG (heart rate) sensors
- Bluetooth Low Energy
-
Slave side (sensor tag): implementing custom services and attributes, use of rapid notifications for faster data sync, beacon scanning (additional observer role); Master side (Android): scanning, connecting, and receiving notifications
Applications and Features
-
View the step count breakdown based on activity
-
Personalize place names and add custom activities:
- At the end of the day, by modifying the timeline
- In real time, via a rich notification
- View photos taken during the day in the travel timeline
-
Login and backup data using Firebase
-
Check previous day timelines from a drop-down calendar