Project

# Title Team Members TA Documents Sponsor
23 Robot Desk Lamp with User Interaction
Chris Shan
Qianyu LI
Yiming Niu
Wesley Pang
**Project Title:**
Robot Desk Lamp with User Interaction


**Team Members:**

Chris Shan(chriss4)

Yiming Niu(yimingn4)

Qianyu Li (qianyul4)


**PROBLEM**

In everyday work or study, people frequently need to adjust the direction of a desk lamp's light depending on the task at hand, but traditional desk lamps are either completely fixed or require both hands to physically bend the lamp arm to change direction -- which is inconvenient when one hand is already occupied with something else. We want to build a robotic desk lamp that can automatically reposition its light direction, allowing the user to precisely aim the light at a desired area on the desk using only a single hand.

**SOLUTION**

We will design and build a 3-4 degree-of-freedom (3-4 DOF) articulated robotic desk lamp, running on a custom ESP32-S3 PCB. The lamp's mechanical structure includes three base joints - base rotation, upper arm, and lamp head tilt - with a possible fourth joint (a forearm/elbow) added depending on mechanism tuning, to expand the reachable workspace.
To address the core need of single-hand lighting adjustment, we plan to evaluate three candidate human-machine interaction schemes - ToF distance sensing, camera-based visual tracking, and a phone-based BLE remote - and select one as the primary interaction method after preliminary feasibility testing. Once the interaction module provides a target direction, the system computes inverse kinematics (IK) based on current joint angles, drives the servos into position, and continuously corrects based on the interaction module's next reading.

**SOLUTION COMPONENTS**

- SUBSYSTEM 1 -- Mechanical Structure & Joint Actuation:
The three base joints (base rotation, upper arm, lamp head tilt) are servo-driven, with a reserved interface for a fourth joint (forearm). All servos receive PWM timing from a shared I2C multi-channel PWM driver chip, offloading this from the MCU. Servo power is supplied independently from the logic rail to prevent high-current draw from causing resets on the ESP32-S3.

Parts: 3–4× digital servos (e.g., DS3218MG) / I2C PWM driver module / 3D-printed structural components and bearings / independent high-current servo power supply (barrel jack + external adapter, sized for ~8–12A peak at 4 servos)

- SUBSYSTEM 2 -- Human-Machine Interaction & Closed-Loop Tracking Control:
This subsystem converts the user's single-hand interaction into a target orientation for the lamp head. As the baseline control method, the robot will estimate the position of the user's finger or hand relative to the lamp and use the perceived distance and position to determine where the lamp should point. The lamp will continuously adjust its orientation so that its facing direction tracks the user's indicated target location.

As an additional control feature, specific hand gestures may also be assigned to directly adjust the polar and azimuthal angles of the lamp's facing vector. The table surface is defined as the xy-plane, with the z-axis perpendicular to the table. These gesture-based angle adjustments would allow the user to fine-tune the lamp's vertical tilt and horizontal direction beyond the baseline position-based tracking method. The exact gesture mapping may be refined during preliminary testing.

The system then operates as a continuously running closed loop: the interaction module provides the target direction -> the system computes IK based on current joint angles to get target joint angles -> the servos move -> the interaction module provides the next reading, and the error is recomputed and corrected until the lamp head stabilizes on target.

Parts: (candidate) VL53L5CX multi-zone ToF sensor ×1-2 (8×8 zone array, needed for angular resolution — single-zone ToF such as VL53L0X/L1X cannot resolve direction) / (candidate) OV2640 or OV3660 camera module + custom-trained single-class lightweight YOLO model / 8MB PSRAM for frame buffering and model weights / phone-based BLE joystick control interface

- SUBSYSTEM 3 -- Control PCB & Power Management:
The custom PCB integrates the ESP32-S3, power management, and wireless communication, with independent 3.3V logic and 5V high-current servo rails to prevent cross-interference or brownout resets. The board reserves an I2C bus (shared by the PCA9685, ToF sensor, and optional camera module) and a programming/debug header.

Parts: custom PCB (ESP32-S3-WROOM-1 + power management ICs + I2C bus routing) / 5V->3.3V switching (buck) regulator -- sized for logic-rail current, not a linear regulator given the current levels involved / USB-C connector for logic-rail power only / programming/debug header

**CRITERION FOR SUCCESS**

- Joint coordination: 3-4 joints move together within their rated angular ranges, allowing the light spot to continuously cover the defined desk workspace
- Gesture recognition success rate: under defined test conditions, the interaction module correctly identifies the target direction/position at least 80% of the time
- Power management under load: the system delivers light output at a specified wattage while the servo motion system is simultaneously active, without brownout, overheating, or MCU reset
- Closed-loop correction success rate: given the interaction module's directional feedback, the system successfully corrects the lamp head to the target orientation at least 80% of the time

ATTITUDE DETERMINATION AND CONTROL MODULE FOR UIUC NANOSATELLITES

Shamith Achanta, Rick Eason, Srikar Nalamalapu

Featured Project

Team Members:

- Rick Eason (reason2)

- Srikar Nalamalapu (svn3)

- Shamith Achanta (shamith2)

# Problem

The Aerospace Engineering department's Laboratory for Advanced Space Systems at Illinois (LASSI) develops nanosatellites for the University of Illinois. Their next-generation satellite architecture is currently in development, however the core bus does not contain an Attitude Determination and Control (ADCS) system.

In order for an ADCS system to be useful to LASSI, the system must be compliant with their modular spacecraft bus architecture.

# Solution

Design, build, and test an IlliniSat-0 spec compliant ADCS module. This requires being able to:

- Sense and process the Earth's weak magnetic field as it passes through the module.

- Sense and process the spacecraft body's <30 dps rotation rate.

- Execute control algorithms to command magnetorquer coil current drivers.

- Drive current through magnetorquer coils.

As well as being compliant to LASSI specification for:

- Mechanical design.

- Electrical power interfaces.

- Serial data interfaces.

- Material properties.

- Serial communications protocol.

# Solution Components

## Sensing

Using the Rohm BM1422AGMV 3-axis magnetometer we can accurately sense 0.042 microTesla per LSB, which gives very good overhead for sensing Earth's field. Furthermore, this sensor is designed for use in wearable electronics as a compass, so it also contains programable low-pass filters. This will reduce MCU processing load.

Using the Bosch BMI270 3-axis gyroscope we can accurately sense rotation rate at between ~16 and ~260 LSB per dps, which gives very good overhead to sense low-rate rotation of the spacecraft body. This sensor also contains a programable low-pass filter, which will help reduce MCU processing load.

Both sensors will communicate over I2C to the MCU.

## Serial Communications

The LASSI spec for this module requires the inclusion of the following serial communications processes:

- CAN-FD

- RS422

- Differential I2C

The CAN-FD interface is provided from the STM-32 MCU through a SN65HVD234-Q1 transceiver. It supports all CAN speeds and is used on all other devices on the CAN bus, providing increased reliability.

The RS422 interface is provided through GPIO from the STM-32 MCU and uses the TI THVD1451 transceiver. RS422 is a twisted-pair differential serial interface that provides high noise rejection and high data rates.

The Differential I2C is provided by a specialized transceiver from NXP, which allows I2C to be used reliably in high-noise and board-to-board situations. The device is the PCA9615.

I2C between the sensors and the MCU is provided by the GPIO on the MCU and does not require a transceiver.

## MCU

The MCU will be an STM32L552, exact variant and package is TBD due to parts availability. This MCU provides significant processing power, good GPIO, and excellent build and development tools. Firmware will be written in either C or Rust, depending on some initial testing.

We have access to debugging and flashing tools that are compatible with this MCU.

## Magnetics Coils and Constant Current Drivers

We are going to wind our own copper wire around coil mandrels to produce magnetorquers that are useful geometries for the device. A 3d printed mandrel will be designed and produced for each of the three coils. We do not believe this to be a significant risk of project failure because the geometries involved are extremely simple and the coil does not need to be extremely precise. Mounting of the coils to the board will be handled by 3d printed clips that we will design. The coils will be soldered into the board through plated through-holes.

Driving the inductors will be the MAX8560 500mA buck converter. This converter allows the MCU to toggle the activity of the individual coils separately through GPIO pins, as well as good soft-start characteristics for the large current draw of the coils.

## Board Design

This project requires significant work in the board layout phase. A 4-layer PCB is anticipated and due to LASSI compliance requirements the board outline, mounting hole placement, part keep-out zones, and a large stack-through connector (Samtec ERM/F-8) are already defined.

Unless constrained by part availability or required for other reasons, all parts will be SMD and will be selected for minimum footprint area.

# Criterion For Success

Success for our project will be broken into several parts:

- Electronics

- Firmware

- Compatibility

Compatibility success is the easiest to test. The device must be compatible with LASSI specifications for IlliniSat-0 modules. This is verifiable through mechanical measurement, board design review, and integration with other test articles.

Firmware success will be determined by meeting the following criteria:

- The capability to initialize, configure, and read accurate data from the IMU sensors. This is a test of I2C interfacing and will be tested using external test equipment in the LASSI lab. (We have approval to use and access to this equipment)

- The capability to control the output states of the magnetorquer coils. This is a test of GPIO interfacing in firmware.

- The capability to move through different control modes, including: IDLE, FAULT, DETUMBLE, SLEW, and TEST. This will be validated through debugger interfacing, as there is no visual indication system on this device to reduce power waste.

- The capability to self-test and to identify faults. This will be validated through debugger interfacing, as there is no visual indication system on this device to reduce power waste.

- The capability to communicate to other modules on the bus over CAN or RS422 using LASSI-compatible serial protocols. This will be validated through the use of external test equipment designed for IlliniSat-0 module testing.

**Note:** the development of the actual detumble and pointing algorithms that will be used in orbital flight fall outside the reasonable scope of electrical engineering as a field. We are explicitly designing this system such that an aerospace engineering team can develop control algorithms and drop them into our firmware stack for use.

Electronics success will be determined through the successful operation of the other criteria, if the board layout is faulty or a part was poorly selected, the system will not work as intended and will fail other tests. Electronics success will also be validated by measuring the current consumption of the device when operating. The device is required not to exceed 2 amps of total current draw from its dedicated power rail at 3.3 volts. This can be verified by observing the benchtop power supply used to run the device in the lab.