courses

HW 1: Bench Bring-Up and Serial Discovery

Covers: Weeks 1–2 Due: Friday of Week 2 — 9 October 2026, 23:59:59 Points: 100

Introduction

This assignment gets your bench working and puts you through the first two stages of a real hardware assessment: identifying what is in front of you, then getting a signal off it.

You will be working with two targets. The course platform — your assembled Feather stack — is the one you control and can compare against ground truth. The unknown target is a board provided in lab whose datasheet you do not get. The point of using both is that the first teaches you what the tools do, and the second teaches you what it feels like when nobody tells you the answer.

If you have not finished Lab 0 (soldering) and Lab 1 (firmware flash and radio check), do those first. This assignment assumes assembled, working hardware.

Setup

Your repository should already exist from Lab 0. Create a folder hw1/ and put your notebook in hw1/hw1.md. Photographs go in hw1/img/.

You need working sigrok/PulseView, or the vendor software for whichever logic analyzer you have signed out. Verify it captures something before lab — debugging your install during the session wastes the bench time.

Tasks

Task 1 — Board survey and chip identification

25 points.

Work the four questions of hardware recon against the unknown target.

  1. Photograph both sides of the board at high enough resolution to read the package markings. Include a scale reference — a ruler, or a part with known dimensions. These photographs go in your notebook.
  2. Identify at least four ICs on the board. For each, record: the markings verbatim, the manufacturer, the part number, the package type, the pin count, and what you believe its role is. Cite the datasheet you used with a URL.
  3. Decode the date code on at least one part and state what it implies about the earliest possible manufacture date of the board.
  4. Identify the main processor or SoC. State its architecture and endianness. You will need both in HW #5, so record them carefully.

If a part is unmarked or you cannot identify it, say so and document what you tried. An honest “unidentified, 8-pin SOIC, adjacent to the SoC, probably flash based on position” is worth full credit; a confident wrong answer is not.

Task 2 — Power, ground, and voltage domain

20 points.

Before probing anything, establish the electrical ground rules.

  1. Using a multimeter in continuity mode, locate a reliable ground point and document how you verified it.
  2. Measure and record the supply voltage of the main SoC. State whether the board is a 3.3 V or 1.8 V I/O device, and explain how you determined it.
  3. State, in your own words, what would happen if you connected a 5 V USB-serial adapter to this board’s serial pins, and what you would use instead.

⚠️ Measure before you connect. Every term someone destroys a board by attaching a 5 V adapter to a 1.8 V pin. The measurement takes thirty seconds.

Task 3 — Locate the UART

25 points.

  1. Identify candidate serial pads or headers on the unknown target. Document your reasoning — why these pads and not others?
  2. Using your logic analyzer, capture the first two seconds after power-on across your candidate pins. Include the capture screenshot.
  3. Identify which pin is TX and justify it from the capture. Recall from Week 2 that TX is the one that talks at boot.
  4. Determine the baud rate by measurement, not by guessing. Measure the narrowest pulse in your capture, show the measurement in a screenshot, and show the arithmetic. A submission that says “I tried 115200 and it worked” without the measurement receives half credit for this item.
  5. Decode the serial data and include the decoded boot output. If the output is partially garbled, include it anyway and explain what you think went wrong.

Task 4 — Extract intelligence from the boot log

20 points.

Assuming you got readable output, mine it. If you did not get readable output, use the sample boot log provided in lab and say so in your notebook.

Report whatever of the following the log reveals, with the supporting line quoted:

  1. The bootloader and its version.
  2. The kernel or RTOS and its version.
  3. The flash partition layout, including sizes and names.
  4. Any hardware the firmware enumerates that you did not find visually in Task 1.
  5. Anything that would be a finding in a real assessment — a version with known CVEs, a debug service starting, credentials, a hardcoded hostname or URL.

For at least one identified version string, search a vulnerability database and state whether known vulnerabilities exist. Cite what you found, or state clearly that you found none.

Task 5 — Notebook quality

10 points.

Graded on the criteria from the course home page: neatness and organization, completeness, and inclusion of your OdinID in screenshots.

Specifically for this assignment, your notebook must record at least one thing that did not work and what you did about it. Hardware work is mostly recovering from things that did not work, and a notebook that shows only successes is not a record of the process.

Worked example: the measurement in Task 3

To make the expected form clear, here is the shape of a full-credit answer to Task 3.4 — using a different rate than yours will be, so you cannot copy it.

Zoom into a region of the capture with rapid transitions and measure the shortest interval between two edges:

Measured narrowest pulse: 26.04 µs
Implied bit rate:         1 / 26.04e-6 = 38,402 baud
Nearest standard rate:    38400
Error:                    0.005%  (well within UART tolerance of ~2%)

Then confirm by decoding: set the decoder to 38400 8N1 and verify the output is printable ASCII rather than noise. Include both the measurement screenshot and the decoded-output screenshot.

Submission

Commit and push hw1/hw1.md plus your images to your course GitLab repository before the deadline. As with all work in this course, the commit history is part of the record — commit as you go rather than in one block at the end.

Grading

Item Points
Task 1 — Board survey and chip identification 25
Task 2 — Power, ground, and voltage domain 20
Task 3 — Locate the UART 25
Task 4 — Extract intelligence from the boot log 20
Task 5 — Notebook quality 10
Total 100

References


Related course pages: Schedule · Tools · Lab 0 · Lab 1 · HW #2

🛠️ Maintenance note: the unknown-target board and the sample boot log are course-provided and change between offerings; update the lab handout when the hardware changes. Logic analyzer software (PulseView, Saleae Logic 2) changes its UI regularly, so screenshots in the lecture slides date faster than the text here.