• Home
  • Exercises 01
  • Pebble BOM lab wrap-up
  • Pebble BOM lab wrap-up

    The questions below are due on Thursday February 16, 2023; 10:00:00 AM.
     
    You are not logged in.

    Please Log In for full access to the web site.
    Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

    In Lab 1 we disassembled a Pebble watch to understand how it works. We created a Bill of Materials (BOM), estimated the cost of products, found parts on the internet, and understood what components provide what functionality.

    But there was too much to do in the course of a three hour lab. And we didn't have teams yet!

    Now we will complete this exercise as a team. That means you'll have to find a way to get together and work collaboratively! This also means you'll be submitting as a team, so there will only be one copy of each deliverable.

    Create your Team Google Drive folder

    One team member should create a Google Drive folder and share it with the rest of the team, and with the staff. We prefer if you "With Specific People". The staff google accounts are voldman@mit.edu, fischman419@gmail.com, jodalyst@mit.edu, dklahn@mit.edu. Make sure we are set to be "Editors". You can organize your Google Drive folder however you wish.

    1.) Bill of Materials

    Combine everyone's BOMs and submit a single spreadsheet. You might have found different components than your teammates, so your submission should represent your team's best understanding of the Pebble. Keep working to identify as many components as possible!

    Here we encourage you to try to identify connectors (even if you can't find part numbers or costs), battery, parts on the flexible printed circuit board (this is the "U"-shaped yellow-ish board), display, and so on. It would even be great to count up the number of resistors and capacitors and put them in your BOM. You can assume each resistor costs $0.0025, and each capacitor is $0.003, which are reasonable prices.

    Sometimes you can find the part, but it is obsolete, and no longer produced or stocked, and thus you can't find a price.

    Enter the url for your google sheet containing your BOM.

    Everyone on the team should submit the same URL. And don't edit your BOM after the pset due date.

    BOM URL:

    Next is the google doc with 3 sections, in the same folder as the BOM, all within your Team Google Drive folder.

    2.) Hardware Annotation

    The first section will be the hardware annotation. As part of the annotation, put in a sentence about what you think the part does.

    Here is an example of one way you might annotate your Pebble hardware:

    [1] [Description/part number]
    [2] [Description/part number]
    [3] [Description/part number]
    ...

    3.) Components, functions and system diagram

    The second section of the google doc will contain a mapping (text, diagrams, you choose) between the list of functionalities created at the start of lab and the components you identified. For example, if you decided that the watch should be able to display information (a function), what component(s) create that function? Try your best to map the components onto the functionalities.

    The third and final section of the google doc will contain the system diagram. Given your component and function mapping, create a functional system diagram (this will be a drawing or figure).

    Enter the url for your google doc.

    Everyone on the team should submit the same URL. And don't edit your google doc after the pset due date.

    Annotation & Diagram URL:

    4.) Software?

    Thus far we've only discussed on the Pebble's hardware, but it's more than just the chips inside. There's a lot of software that runs on the smartwatch itself - in this case, it's running some custom firmware likely written in C. This is pretty common for smaller embedded systems - C (and C++) has been the norm for a while now, but Rust is becoming more popular for this kind of thing. For more complicated embedded systems, we might run an OS, scaled down to fit onto the hardware of course. This is what Google and Apple do with their smartwatches. Google's got Wear OS, and Apple has watchOS. Very creative naming.

    Back in the day, the Pebble would connect to an app on your phone, and communicate with the outside world through that. The language these are written in depends on your platform - Android apps are primarily written in Kotlin and Java, and iOS apps use Swift and Objective C. There are no cloud servers for the Pebble; instead, it uses apps on your phone as gateway to the outside world. By now, you should have figured out how the watch communicates with the phone.

    Bonus

    In addition to a sense of pride and fullfillment, the team with the most complete and accurate final deliverables will win a prize!