Week 15: System Integration
Objectives
- Individual Assignment: Design and document the system integration for your final project
Individual Assignment
Final Project Features

My project is called 'Lumi'. Essentially it is a walking TV.

Lumi has the following key features, which have been arranged in order here
- Lumi can detect if the user comes closer than 2m to it.
- When the user is farther than 2m, Lumi behaves like a living being
- Lumi 'shuffle' walks just like Otto
- Lumi plays facial animations randomly
- Sound effects corresponding to animations will also play
- When the user is closer than 2m, Lumi 'realizes' it is being watched, it then starts behaving like a regular TV
- Lumi stops moving
- It starts playing TV footage
- Accompaning sound effects will be playes from its speakers
To read more, please go to the Final Project Page
Exploded View
We had a class on system integration from Kalyani (FA'25), and I drew an exploded view of my final project as part of an assignment. The exploded view shows how different components will be integrated together and the physical space each of them will occupy in the final design

Point to note here is that I have since added a speaker to the list of output devices and abandoned lasercutting wooden frame based on results I got while testing.
Making a Cardboard Mockup
To visualize my design a bit better, I had made a mockup of my final design, I also incorporated my TFT display and servos into it, as they are the biggest parts of the electronics I need



To make my work a bit easier I used Boxes.py, which is an Open Source box generator written in Python. The designs for Otto has already been uploaded in Boxes.py,so all I have to do is adjust the parameters related to number of pads and spacing between them to be able to get an easily assemblable design


Once I made the lasercut mockup, and tried fitting in some electronics, I realized that I would require more space inside. I plan to achieve this by increasing the 'depth' of my TV head.
User Flow Diagram
Based on instructor Saheen's advice, I created a user flow diagram

Each feature has been ordered according to order of priority:
- The TV should be able to switch between 'alive' and 'regular TV' modes in response to input from the time-of-flight sensor
- Sound effects should be played in sync with both these modes
- Lumi should be able to walk around and stop based on these two modes
Functional Flow Diagram
Based on instructor Saheen's advice, I created a functionality flow diagram

A note on some elements of the functionality diagram
- A buck converter is used to provide a step down voltage of 5V. A voltage regulator would be much more likely to fail in this scenario due to overheating
- Two different voltage regulators are used to keep voltage supply to the ESP32 seperate from other current drawing electronics
- When testing the ESP32 for library conflicts, I, with the help of my instructorSaheen was able to identify that the
<Audio.h>
library is very heavy. In combination with other libraries, around 73% of memory space was used up just to load the libraries. I used an alternate library calledESP8266Audio
, importing specific header files within it based on programming work done by Revi (FA'25) for a simiplar application. This saved a lot of space. If problems persist during programming, I will have to switch to using 2 microcontrollers, one dedicated to playing audio
Packaging the Electronics
In Fusion I have made a CAD design showing how the inner electronics will be assembled. The screw holes will be used to mount each component
I was facing issues with arranging both the electronics and PCB along with the rest of the mechanical design, so I started from scratch using a reference sketch I prepared previously to inform me of the length and height constraints
I find that I have to keep redesigning from scratch with each additional component. The design shown above is not final. I have decided to stack 2 PCBs behind each other.
The larger PCB is single sided and will attached to TFT display and other through hole components and the battery on the other side. A smaller PCB will will be stacked behind it using pin headers. This PCB can be double sided if required, and it will house the microSD card slot, the USB-C-type breakout board, and the ESP32 WROOM 32E and some other smaller SMD components.
Scheduling
Based on my finalised Functionality diagram, I finalised the schedule of my final project using Team Gantt a gantt chart maker I found online, but I faced challenges in adhering to the timelines I have set for myself.

Updating the BOM
Based on my finalised Functionality diagram, I finalised the BOM of my final project and have begun the procurement process

Conclusion
This week I learnt a couple of techniques that can help with integrating multiple systems together. These include making cardboard mockups, drawing an exploded view of my design, and making user flow and functional diagrams.
Future Outlook
- Keep electronics and mechanical design seperate but linked to each other:A better approach to CAD system integration is to keep the mechanical aspect and the electronics in seperate files that are linked to each other. This keeps the design workspace clutter free while still maintaining the ease of making design changes.
- Stacking PCBs:The larger PCB is single sided and will attached to TFT display and other through hole components and the battery on the other side. A smaller PCB will will be stacked behind it using pin headers. This PCB can be double sided if required, and it will house the microSD card slot, the USB-C-type breakout board, and the ESP32 WROOM 32E and some other smaller SMD components.
- Testing library support and storage space on your microcontroller:Testing if the various libraries conflict with each other or if there is enough space before finalising the choice of microcontroller, is very important.
Add Mistakes only in Mistakes and Solutions section to avoid break in flow
References
References to help reader understand in detail
Design Files
Click here to access the design files