close-circle
Close
0%
0%

Conductor's Pocketwatch

A phone app and physical pocketwatch that tell you how late or early you are to your next event, based on the time and your current location

Similar projects worth following
This project's goals are to improve people's connectedness with their schedules, and to make mental calculation of travel time unnecessary.

I saw the film version of The Polar Express at Christmas a year and a half ago, and I noticed that the Conductor had a pocketwatch that, rather than telling him the time of day, told him if the train was late, on time, or early on its trip to the North Pole. I decided to build one. More recently, I realized that it would be able to reach more people as a phone app. Then I realized that the physical pocketwatch would be easier to make work if the phone app already existed, because the phone could do the processing and send the results to the watch for display. This led to the project phase plan that will be outlined in the details.

Here's the concept video. I was rushing to get it filmed and uploaded by the deadline, so it's nowhere near as good as the video for my other THP entry.

Project Phases

Phase 1

Phase 1 will be the phone app. It will implement the promptness prediction algorithm and provide all of the basic functions. The MVP is an app for one phone OS (either iOS or Android) that takes a schedule and current location and, in real time, produces a number and displays it onscreen that shows how early or late the user is to the next event, along with the event details, and allow for cycling through the rest of the day's events. Further goals are to provide a homescreen widget, a lockscreen widget and/or lockscreen replacement, and notifications.

Phase 2

Phase 2 will be the physical pocketwatch. It will connect to the phone app via Bluetooth (maybe BLE) and serve as an external display device and notifier for the data the app produces. The MVP is a device that connects wirelessly to the app created in Phase 1 and displays the data it produces (the same data the app itself displays), as well as allowing cycling through the rest of the day's events. Further goals are to illuminate the face for night use, automatically display the current status upon being pulled out (without having to press any buttons), and maybe display notifications from the phone like a smartwatch does.

Phase 3+

Further phases may encompass such things as a wristwatch or smartwatch app development. This is very open-ended right now; suggestions are welcome.

System Block Diagrams

Overview:

Software side (phone service/app mainly):

Hardware side (physical pocketwatch):

These features will not necessarily all be included; they're in the diagram to give an idea of what would be possible. User input, Bluetooth, needle, and screen will all be included for sure because they're the vital features.

Code

I've written no code yet. Once I do it will be in the GitHub repository linked on the left.

Libraries

I intend to use the Switec motor library linked on the left. It looks like it will work pretty well. I like how it's asynchronous non-blocking (as it says in large text in the readme). It's under the 2-clause BSD license (aka the simplified BSD license, or the FreeBSD license), so I'm free to use it as long as I give credit to its author.

Connectedness/Openness

Connectedness is pretty obvious with this project: it gets data from the user's (probably cloud-based) calendar, and there's a connection between the phone app and physical watch. Beyond that, it aims to improve users' connection with time and schedule. As for openness, this project will be under the ISC License, which is very similar to the MIT and new BSD licenses, just without all of the fancy terminology. Basically, anyone is free to use it in whole or in part for any purpose as long as they give me credit for the parts I made. (Though, as I understand it, because they're free to use whatever license they want for their own projects, people who build on those projects will not be required to credit me.) That also covers the algorithm for predicting the user's punctuality; I hope that in particular, or its components or principles, will be useful in other projects.

  • 1 × smartphone planning to support both iOS and Android devices eventually
  • 1 × pocketwatch case might be an actual pocketwatch case, might be 3D printed plastic, might be cardboard, etc.
  • 1 × rechargeable battery small LiPo battery
  • 1 × microcontroller AVR? MSP430? CC2541?
  • 1 × Bluetooth radio maybe CC2541 or similar

View all 10 components

  • Should I develop for Android or iOS first?

    PointyOintment08/20/2014 at 20:11 2 comments

    I plan to develop the app for both operating systems, but I need to choose one to start on. I already have both the Android SDK and Xcode (Apple's combined SDK and IDE), but I have no experience developing apps for either OS, so maybe you can help me decide.

    In favor of Android first:

    • I'm an Android user myself, so I could test easily.

    In favor of iOS first:

    • My impression is that it's easier to develop for (especially with Apple's new Swift language).
    • I like Xcode.

    So, should I try to learn Android development first because it'll be easier to test, or should I start with iOS and test in the simulator? Any other factors I haven't considered, such as ease of access to location and calendar data?

  • Patents

    PointyOintment08/20/2014 at 20:04 0 comments

    Before going any further with this project I decided to see if there are any patents that cover it. I searched for the names of each of the companies involved in making the film, along with keywords about the watch, and found nothing. Then I searched for several keywords with no company name and found this IBM patent. At first I thought it was pretty much identical to my invention, but as I read through it I realized that there are some important differences. IBM's invention's only goal is to notify the user that they should prepare to leave their current location in time to get to their next appointment, based on both the travel time and the time required to prepare to leave, while mine's goal is to continuously indicate how late or early the user can expect to be, and is not planned to take into account the amount of time required to prepare to leave. IBM's also estimates travel time based on the user's past travel times between their current location and the destination only; I'm planning to store travel times along with mode-of-transportation info between many waypoints along the way so that those segments can be combined as necessary to estimate travel times for journeys the user hasn't made before.

    I'm somewhat hopeful that if IBM does think their patent covers my invention, they won't mind enough to take action. Does anybody know if they've ever released a product involving the system described in their patent?

    Furthermore, it's a US patent; I live in Canada, and IBM doesn't seem to have an equivalent Canadian patent. Possibly relevant Canadian patents include:

    • RIM: CA2734326 A1 (automatically facilitating notifications to others that the user will be late)
    • Nortel: CA2379613 A1 (notifications triggered by events and predetermined locations)
    • Highwaymaster Communications: CA2212330C (determining ETA of a vehicle to a location, based on location and route (including speed) info received from a dispatch along with the vehicle's current location, and sending a lateness notification to said dispatch if necessary)

    Of these, the third seems the most relevant. However, despite having over a hundred (mostly redundant) claims, the inventors didn't seem to envision using such technology for anything other than vehicular applications in a fleet setting.

  • Initial Ideas

    PointyOintment08/19/2014 at 01:28 0 comments

    Phase 1: the phone app

    Here's my current rough plan for the phone app part of the project. It will consist of a service and various user interface modules. One of the UI modules will be the main app that displays the watch and allows the user to access settings. The service will enable other UI modules such as the homescreen widget and lockscreen widget. It will also provide notifications through the system notifications mechanism. The service will keep track of the user's movements, possibly importing historical movement data from Google Location History (if that has enough detail to be useful), and maintain a database of the user's travel time between different points on the map. It will also pull event data from the user's calendar and give that, along with its predictions of promptness, to the UI modules for them to display to the user.

    However, at first, I will develop a single monolithic app as a prototype. Once that's working, I'll split the modules apart and, I suppose, provide an API. (I have no experience whatsoever with APIs, so I'm really not sure yet what I'm doing there.)

    Phase 2: the hardware device

    The hardware device will connect to the phone app using Bluetooth or Bluetooth Low Energy. It will use a Switec automotive instrumentation stepper motor to turn the needle to indicate the user's current promptness. It will have a small OLED or LCD screen in the bottom quadrant to display info about the upcoming event. It will also, of course, have a rechargeable battery and charging mechanism.

    Phase 3+: more ways to reach people

    I would like to expand to other devices in the future, such as smartwatches. People with smartwatches would probably prefer to use those over pulling out their phone (let alone a standalone pocketwatch); that's why they have them, after all. I'm also open to other ideas about where to go next.

  • Inspiration

    PointyOintment08/19/2014 at 01:00 0 comments

    Over Christmas break 2012 (I think), my family and I watched The Polar Express (adapted from the children's book of the same title). The most interesting part of the movie for me was the Conductor's watch. It looked like this:

    source: http://outnow.ch/Movies/2004/PolarExpress/Bilder/dvd-film.ws/17

    While watching, I started to think about how such a device could be made. What I came up with was that it would need GPS, the user's schedule, and knowledge of how quickly the user can traverse the segments of the journey to the location of the next event on the schedule, as well as a processor and a user interface. Much later, I realized that it would be far easier to start with a smartphone app, because smartphones commonly already have all of those things. Then, with the phone app in place, it would be possible to simply connect the physical watch to the app using a wireless connection, so it wouldn't have to have those things too.

    There is an official pocketwatch you can buy, with the Late/On Time/Early face, but it's just a regular pocketwatch that only tells you the current time of day. It looks like this:

    (The site I got the image from is no longer available.) Anyway, it looks quite similar to the one in the movie, though not completely identical. I don't intend to make mine look that similar, but it will be trivial to swap out the image to get the appearance you want.

View all 4 project logs

Enjoy this project?

Share

Discussions

esot.eric wrote 03/20/2016 at 09:45 point

Wow, so much goes into figuring out how late/early one will be, all that predictiveness and past-travel-history! Looks like quite an undertaking! 

I dig the design with the OLED at the bottom, subtle, but informative. And your drawings are great!

  Are you sure? yes | no

PointyOintment wrote 08/21/2014 at 07:21 point
Note: The "SwitecX25 stepper motor library (BSD License)" link in the external links section previously said "(no license (?))". It has in fact been under the BSD License for 2 years; I somehow missed that when I looked at the repository. I have now corrected my oversight. The error in the link title has had no effect on any material part of my project, but it's nice to know for sure now that I can freely use that library.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates