Inspiration

Some classes just takes a lot longer than you would expect. Both teachers and students would benefit from knowing how long these assignments take. You're wearing your watch all day long. Next time you start a project, just load a name onto your watch, and start the timer.

What it does

The pebble watch has a persistent storage function that allows the user to submit the project name from their phone to be sent to their watch. On the watch, the user can then select the project name, and create a log of the date and duration of their work sessions, that will also be stored in permanent pebble watch storage until the user chooses to delete it.

How we built it

The pebble system allows app configuration pages to be created for individual pebble watch apps. The most simplest form of an app configuration page lives on the pebble watch app itself. We created a JSON object in our javascript page, that the pebble configuration framework [clay-for-pebble] then converted to a static html page for user input.

We then sent the responses from the user to the pebble watch using javascript event listeners. The message was then appropriately spliced once reaching the pebble c file in the form of an appMessage. The messages became the names of the individual project objects that we stored into pebble's persistent storage.

We then utilized pebble's menuLayers and clean window stack implementation to create a three window system that goes from list of projects -> the project's timed sessions -> the timer/stopwatch.

Challenges we ran into

  • Sending messages from the html/javascript side of the configuration page to receiving message in C on the pebble watch
  • Trying to manipulate and store strings, that are built as character arrays in C
  • C pointers in general but specifically getting "incomplete struct errors" due to not specifying our list length
  • Figuring out when to allocate storage (anything that goes into permanent storage) and when we can use the heap
  • Learning the basic functions for creating pebble's windows, menu_layers, text_layers, timing functions, and C's time structure

Accomplishments that we're proud of

  • Finishing a workable prototype during our first hackathon
  • Coding in C and javascript

What we learned

We learned how to develop a project that integrates multiple programming languages, the importance of memory management in hardware with limited storage, and storing information into permanent memory.

What's next for pebbleStudyTracker

The graphical user interface can be strongly improved on - especially our current stopwatch implementation.

Built With

Share this project:
×

Updates