Introduction and Objective

Wearable technology has become a recent trend that many major corporations such as Apple, Fitbit, Google, and Garmin (to name a few) have pursued. In particular, the market for smartwatches has grown in the past four to five years; however, there hasn't been one that has taken advantage of the Raspberry Pi to date. The purpose of this project was to create such a watch, appropriately called PiWatch, using the capabilities of the Raspberry Pi (especially the PyGame library) and a TFT touchscreen. Like most smartwatches on the market today, the PiWatch was designed with a passcode-enabled lock screen and a homescreen showcasing all the apps developed for this project.

Five different apps were created to showcase the capabilities of the Raspberry Pi. The first was PiCalc, which serves as a basic operations calculator. The second was PiMusic, which allows the user to choose songs from different playlists and play/pause them or fast forward/backward. The third was PiSimon, a game app based on the classic 'Simon' game, where the user must correctly remember a computer generated pattern with the goal of remembering the longest pattern possible before incorrectly guessing. The fourth was PiMessage, which lets the user send text messages to another phone, given some preselected phrases to use. The fifth and final app was PiTime, which lets the user do one of three things: a) view the current time, in military format, b) set and run a timer, which will run even if the user isn't in the app and displays a message in any app's screen (even on the home and lock screens) if the timer has run out, and/or c) start and stop a stopwatch.

The PiWatch Apps

Click on the icons to learn more about the design and testing stages of each portion of the watch

The PiWatch includes a password protected lock screen, home screen, and the following apps: PiCalc, PiMusic, PiSimon, PiMessage, and PiTime.

Overall Results

Individual app results are detailed on their respective pages. Overall, the final PiWatch product is a simple yet functional smart watch that features timer and stopwatch, music, text message, calculator, and game capabilities. We were able to resolve all minor code bugs and issues during the design and testing phases of this project. Additionally, by performing a precise manual calibration of the piTFT screen, we were able to optimize the touch capabilities of the PiWatch and thus increase the usability of the device. Through a diverse set of apps, we were able to successfully utilize the many software and touch-screen capabilities of the Raspberry Pi Model 3 in order to complete the PiWatch and meet our project goals. A short demo of the final PiWatch features can be found below.

Conclusion and Future Work

Throughout this project, we continued to learn and develop our software design and test skills, particularly for Python and the Raspberry Pi in general. One thing we realized early on was how difficult it was to fit a large number of buttons onto the piTFT screen. This became important in the PiMessage app development, since we determined it was unfeasible to fit an entire QWERTY keyboard onto the screen and instead decided to provide a list of pre-set messages that would be well suited to a smart watch. This issue also seems to be something large-scale smart watch developers will continue to face, as the main expectation for a smart watch is its compactness. Despite the piTFT size limitation, as seen in the demo video, the finished product is very user-friendly, has many different capabilities, and is aesthetically pleasing in terms of the clean yet colorful app designs. Overall, we are satisfied with the outcome of this project since we were able to successfully design and implement a smart watch user interface for our Raspberry Pi and piTFT setup.

In terms of future work, there are numerous possibilities for continued development of our PiWatch. One thing we could do is enable bluetooth capabilities for music that does not require headphones to be physically connected to the Pi's audio jack. Additionally, we could expand our PiMessage app to also be able to receive messages along with having a visual display of the few most recent messages sent in a conversation. We could also add sound capabilities to the non-music apps, such as the PiSimon game app and the PiTime app. This would allow for short beeps or alarms to be played to indicate results in the game app or the expiration of the timer. We could either do this by silencing any currently-playing music from the PiMusic app for a short amount of time or by designing small GPIO-connected speakers to play PWM-generated sounds. Finally, we could continue to develop more apps for the PiWatch in the future, such as more complicated game apps.

The PiWatch Team: Erissa Irani (right) and Gulnar Mirza (left)

Appendix

Click here for PiWatch source code

List of Parts Used
Part Description Estimated Cost (Before Tax)
Raspberry Pi 3 Model B $39.95
External Speakers $10.00
Raspberry Pi Case $5.00
Velcro $3.00
Rechargeable Battery Pack $24.95
Total $82.90

Work Distribution

Erissa Irani:
  • Co-design and implementation of Lock and Home Screens
  • Co-design and implementation of PiCalc app
  • Co-design and implementation of PiTime app: Clock function
  • Independent design and implementation of PiMessage app
  • High-level design of Pisimon app: Four-tile display
  • Debugging and testing of all apps and features

Gulnar Mirza:
  • Co-design and implementation of Lock and Home Screens
  • Co-design and implementation of PiCalc app
  • Co-design and implementation of PiTime app: Stopwatch and Timer functions
  • Independent design and implementation of PiMusic app
  • Design and implementation of PiSimon app: Game Animation and Control
  • Debugging and testing of all apps and features
References
We made extensive use of the PyGame library functions and documentation throughout this project, as well as the Twilio library for Python. Code was formatted using this free tool. Finally, we do not claim any rights to the songs featured on the PiMusic app, and they were just used to illustrate the app's playback control capabilities.

Acknowledgements

We would like to thank Joe Skovira for helping and advising us throughout the entirety of the PiWatch project. We would also like to thank the course Teaching Assistants for their advice on the lab assignments over the course of the semester, from which we were able to learn the skills needed to design and complete this project.