Project

# Title Team Members TA Documents Sponsor
22 Oscilliosketch: Handheld XY Etch-a-Sketch Signal Generator for Oscilloscopes
Eric Vo
Josh Jenks
Team Members:
- Josh Jenks (JaJenks2)
- Eric Vo (ericvo)

# Problem
Oscilloscope XY mode is a powerful way to visualize 2D parametric signals and vector like graphics, but interactive control typically requires multiple bench instruments or ad hoc setups. There is no simple, handheld, purpose-built controller that can safely generate stable, low noise bipolar X/Y signals for XY mode while providing an intuitive drawing interface. Additionally, producing clean vector style graphics requires careful mixed signal design (DAC, filtering, level shifting, buffering, protection) and deterministic embedded control.

# Solution
We will design a custom PCB and handheld enclosure that connects to an oscilloscope’s CH1 and CH2 inputs (X and Y). The device will function like an Etch-a-Sketch: two rotary encoders control the on screen cursor position, allowing continuous line drawing on the oscilloscope in XY mode. The PCB will include:
- A microcontroller (STM32- or ESP32-class) to read the encoders/buttons and generate X/Y sample streams
- An external dual channel DAC to produce two analog voltages
- Analog filtering, level shifting, and buffering to generate bipolar outputs with selectable full scale up to ±5 V
- A complete power subsystem powered from USB-C 5 V, including a generated negative rail to support bipolar analog output
- Output protection/current limiting so the device cannot damage the oscilloscope inputs under reasonable misuse

Stretch goals: add a vector rendered game/demo mode (Pong; Asteroids as further stretch), including optional Z axis blanking to reduce retrace artifacts, and optional line level audio output to monitor/play back generated signals.

# Solution Components

## Subsystem 1: User Input / UI
Purpose: Provide intuitive control for drawing and mode selection.
Components (examples):
- 2x incremental rotary encoders with push switch (e.g., Bourns PEC11R series or equivalent)
- 4x tactile pushbuttons (e.g., mode select, clear/recenter, scale/zoom, optional pen/blank)
- Optional status LEDs for mode feedback

## Subsystem 2: Microcontroller + Firmware
Purpose: Read inputs, maintain drawing state, and generate X/Y sample buffers at a fixed update rate.
Components:
- MCU (STM32- or ESP32-class)
- Example options: ESP32-WROOM-32E module OR STM32G4/F4-class MCU with SPI + timers
Firmware features:
- Quadrature decoding for encoders; button debouncing
- Drawing modes:
- Base mode: “etch-a-sketch” continuous drawing (position integration with adjustable step/scale)
- Optional modes: predefined shapes/patterns for testing
- Fixed rate DAC update engine (timer driven), with buffered generation to keep output stable independent of UI activity

## Subsystem 3: Dual-Channel DAC + Analog Output Chain (X and Y)
Purpose: Generate clean, low noise bipolar voltages suitable for oscilloscope XY inputs.
Components (examples):
- Dual-channel SPI DAC, 12-bit (Microchip MCP4922 or equivalent)
- Reference for stable scaling / midscale (e.g., LM4040-2.5 or equivalent 2.5 V reference)
- Optional reconstruction filtering per channel (RC and/or 2nd order low-pass) to eliminate high frequency components
- Op-amp signal conditioning:
- Level shift around midscale + gain to produce bipolar output centered at 0 V
- Buffer stage for stable drive into coax cables and oscilloscope inputs
- Example op-amp class: dual op-amp supporting ±5 V rails (e.g., OPA2192/OPA2197 class or equivalent)
- Output connectors:
- 2x PCB mount BNC connectors (X and Y outputs)
- Output protection / safety features (per channel):
- Series output resistor (current limiting and stability into cable capacitance)
- Clamp diodes to rails to limit overvoltage at the connector
- ESD considerations and robust grounding strategy

## Subsystem 4: Power Regulation
Purpose: Provide clean digital and analog rails from a safe, convenient input.
Components (examples):
- USB-C 5 V input (sink configuration with CC resistors) + input protection
- 3.3 V regulator for MCU and logic (e.g., AP2112K-3.3 or equivalent)
- Negative rail generation for analog (e.g., TPS60403 inverting charge pump or equivalent) to enable bipolar outputs
- Power decoupling and analog/digital rail isolation as needed

## (Stretch) Subsystem 5: Z-Axis Blanking Output (Optional)
Purpose: Improve vector graphics/game rendering by blanking the beam during “retrace” moves.
Components:
- Protected Z-output driver (0–5 V-class control) to oscilloscope Z-input
Firmware:
- Assert blanking during reposition moves; unblank during line segments

## (Stretch) Subsystem 6: Line-Level Audio Output (Optional)
Purpose: Provide an auxiliary line out to monitor synthesized signals audibly.
Components:
- 3.5 mm TRS jack (line out)
- AC coupling + attenuation network and optional buffer
Firmware:
- Optional stereo mapping (e.g., X→Left, Y→Right) after removing DC offset

# Criterion For Success
The project is considered successful if all of the following are demonstrated and measured:

1. Bipolar XY output with selectable range:
- Device generates two analog outputs (X and Y) centered at 0 V, with selectable full-scale up to ±5 V.
- Verified with DMM and oscilloscope measurements (documented calibration procedure).

2. Stable interactive drawing in XY mode:
- Using the two rotary encoders, a user can draw continuous line art on an oscilloscope in XY mode.
- At minimum, demonstrate repeatable drawing of a square and a circle using the controller’s clear/recenter and scaling functions.

3. Deterministic update behavior:
- The firmware updates the DAC using a hardware timer or equivalent mechanism to maintain stable, non intensity varying output during user interaction.

4. Safe interfacing / cannot damage scope under reasonable misuse:
- Output stage includes current limiting and voltage clamping such that accidental output short-to-ground and brief overdrive conditions do not produce damaging currents into the oscilloscope input.
- Verified by bench test (short to ground test and measurement of limited fault current through series resistor).

(Stretch) Demonstrate a vector rendered mode (Pong; Asteroids further stretch) with reduced retrace artifacts if Z-blanking is implemented. Optional line-out demonstration if implemented.

Electronic Replacement for COVID-19 Building Monitors @ UIUC

Patrick McBrayer, Zewen Rao, Yijie Zhang

Featured Project

Team Members: Patrick McBrayer, Yijie Zhang, Zewen Rao

Problem Statement:

Students who volunteer to monitor buildings at UIUC are at increased risk of contracting COVID-19 itself, and passing it on to others before they are aware of the infection. Due to this, I propose a project that would create a technological solution to this issue using physical 2-factor authentication through the “airlock” style doorways we have at ECEB and across campus.

Solution Overview:

As we do not have access to the backend of the Safer Illinois application, or the ability to use campus buildings as a workspace for our project, we will be designing a proof of concept 2FA system for UIUC building access. Our solution would be composed of two main subsystems, one that allows initial entry into the “airlock” portion of the building using a scannable QR code, and the other that detects the number of people that entered the space, to determine whether or not the user will be granted access to the interior of the building.

Solution Components:

Subsystem #1: Initial Detection of Building Access

- QR/barcode scanner capable of reading the code presented by the user, that tells the system whether that person has been granted or denied building access. (An example of this type of sensor: (https://www.amazon.com/Barcode-Reading-Scanner-Electronic-Connector/dp/B082B8SVB2/ref=sr_1_11?dchild=1&keywords=gm65+scanner&qid=1595651995&sr=8-11)

- QR code generator using C++/Python to support the QR code scanner.

- Microcontroller to receive the information from the QR code reader and decode the information, then decide whether to unlock the door, or keep it shut. (The microcontroller would also need an internal timer, as we plan on encoding a lifespan into the QR code, therefore making them unusable after 4 days).

- LED Light to indicate to the user whether or not access was granted.

- Electronic locking mechanism to open both sets of doors.

Subsystem #2: Airlock Authentication of a Single User

- 2 aligned sensors ( one tx and other is rx) on the bottom of the door that counts the number of people crossing a certain line. (possibly considering two sets of these, so the person could not jump over, or move under the sensors. Most likely having the second set around the middle of the door frame.

- Microcontroller to decode the information provided by the door sensors, and then determine the number of people who have entered the space. Based on this information we can either grant or deny access to the interior building.

- LED Light to indicate to the user if they have been granted access.

- Possibly a speaker at this stage as well, to tell the user the reason they have not been granted access, and letting them know the

incident has been reported if they attempted to let someone into the building.

Criterion of Success:

- Our system generates valid QR codes that can be read by our scanner, and the data encoded such as lifespan of the code and building access is transmitted to the microcontroller.

- Our 2FA detection of multiple entries into the space works across a wide range of users. This includes users bound to wheelchairs, and a wide range of heights and body sizes.