Spring 2019

The questions below are due on Monday February 18, 2019; 11:59:00 PM.
You are not logged in.

If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site ( to authenticate, and then you will be redirected back to this page.

For this exercise, build a two-face watch that renders on your LCD similar to the one shown below in the video (with some exceptions):

We used a different display the year this video was shot. This was on an OLED, and is a bit different. Read the specs below so you know what is expected.
Your device should alternate between a digital readout (for example "8:45") and an analog readout based off of a switch input on pin 16. The analog readout should have a hour, minute, and second hand. You cannot copy some random watch display code you found somewhere else. If you do that you will get a 0 on the assignment and other action will be taken.

In order to get absolute time, your device must make periodic HTTP GET requests to the url here: which will return the current Boston time in a format like the following:

2018-02-11 18:37:29.776430

The device needs to only report the time (don't worry about temperature or anything else in the video), but it can't just repeatedly grab it off the server. Instead at most it can grab the time once every one minute, and in the time in between in must update based off of its own internal timer.

The button functionality must be sufficiently responsive that its usage isn't impaired at any time during operation (i.e. you should avoid blocking code with the exception of the GET request).

You must upload your video to YouTube or any other site that has a timestamp associated with it and is accessible by the staff.

Any late factors are based on the timestamp for the last time that the URL is entered on the page or when the code is uploaded. If you change your URL after the deadline you will incur a late penalty. If you upload code after the deadline, you will incur a late penalty. One-Week Extensions DO NOT APPLY Design Exercises.

You must upload all code that you used in your design. Failure to upload code will result in signifcant point loss. This includes if you just forgot. Screenshots of your file's last modified date in My Computer are not evidence that the file has not been changed. They must be uploaded.

Problem Status:
A Python Error Occurred:

Error on line 2 of python tag (line 36 of file /S19/ex02/watch):
    kerberos = cs_user_info['username']

KeyError: 'username'

Enter the url for the video

Submit your ESP32 code here:

 No file selected

Enter any comments you may want us to know about. For example, if you started this exercise but don't want it graded, make a note here. Please hit submit on this question even if you don't have any comments.

This problem will not be marked as done (100) until graded by the staff. If you have filled it out, it will appear as with a note saying "Work Submitted" on the main ex02 page.

This page was last updated on Sunday March 10, 2019 at 03:42:51 PM (revision 2aaaaf2).
Course Site powered by CAT-SOOP 14.0.4.dev5.
CAT-SOOP is free/libre software, available under the terms
of the GNU Affero General Public License, version 3.
(Download Source Code)
CSS/stryling from the Outboxcraft library Beauter, licensed under MIT
Copyright 2017