Symposium Day

This past Friday was a very important day regarding my Senior Project. I was finally able to showcase what I have been working on for the past couple of months. This was Symposium day, a chance for every student doing a senior project to present their work/findings.

SDP Group Photo
Professor Lin's Senior Project Class, Symposium Day; Dylan and I are pictured on the Left.[1]

The Night Before

As Friday approached, my partner and I decided to do some last-minute preparations to ensure everything was ready for tomorrow. That started with getting the presentation all good to go. We also wanted to make sure the flow of the presentation was seamless so that we didn’t really lose context in our audience. We wanted to avoid overwhelming the audience with disorganized information that would leave them confused.

This took a couple of hours but at the end we were ready to rehearse and once we rehearsed, we wanted to make sure that it was under the 10 minutes that was allotted for our project. We had 10 minutes to present the presentation and 5 minutes to demonstrate. My partner and I have known each other for a long time, so after a couple of rehearsals, we felt confident we could deliver a smooth presentation.

After, we wanted to move into extra things that we felt were going to enhance our project. These are things that I had working on one of the ESPs - specifically, the feature being audio feedback. When you would remotely control the device, it would play an audio so that people that were physically near it know that a change was made. This was only fully functional on the fan app and the LED app had not had this feature so I wanted to get it working. At the time my partner had the LED device, while I had the FAN device. Since the wiring for the speaker system in both devices was the same, I went and tested the LED program. I eventually added the feature and decided to test it but something was not working and at that point I started to troubleshoot.

The first thing I started to do was check the program itself and after checking various times compared to the fan code base, I was sure that it was not the code. The thing is an embedded environment, if you can’t find it from the software perspective, then cause shifts to the hardware. I had to make sure our speaker modules were all good. The breadboard or even the ESP could be the issue. As the time went on, I was not able to find any solution.

Keep in mind this whole time I was on a voice call with my partner Dylan. He was also taking care of another thing that was crucial for our project. He was trying to create a sort of migration for both of the devices so that they could be powered from one main source. This is solely for the presentation purposes so that we wouldn’t have to carry as much separate parts and have a lot of clutter for the presentation. He decided to get a very large breadboard and wire the power in a way that we can power both of the devices. It needed to be done, but the issues I had encountered remained unsolved.

After some time, I decided to just skip it once again. It wasn’t a feature that I planned to have, but if we couldn’t have it for the presentation, it wasn’t too much of an issue, but more issues arrived.

As we were nearing the end of the hardware part of this project, Dylan mentions that the LED device was not working as expected. I recall at some point in our conversation that he mentioned that one of the ESPs, specifically the LED he had in hand, was very hot to the touch in operation. He asked me if it was normal and I recall it being very normal that these microcontrollers get hot, but I didn’t know what was coming.

He told me that now the LED part was not working; at this point, it was getting very late, so I just decided to have Dylan come over. Luckily, we didn’t live far from each other. We went to high school together and once he came, we were together in my garage and decided to lock in.

He showed me the ESP that was hot; it was extremely hot, hotter than I have ever had any ESP get. At that point, we made the conclusion that something had shorted and the ESP was dead. I tried connecting it to my computer and it would not appear as a target. Luckily we had a spare ESP32 and we replaced it, flashed the binary to the new ESP and that was it. Then, we tried to pivot back to my extra feature that I wanted on the LED. I couldn’t flash it for the LED since I didn’t have it in hand, so I waited to have it in person. Once we flashed it, the hardware still wasn’t working. I had Dylan check the wiring. Everything was fine, so it was hard to figure out why things were suddenly not working. At the end, we made a lot of swapping between ESPs and hardware speakers and breadboards and we made a conclusion that one of the pins on a seemingly healthy ESP was not working.

The pin that was required to send the I2S output of the WAV file towards the speakers to play the audio, in this case the voice feedback. Once we saw this, it was just another pivot that we had to do. At the end, we ended up swapping the ESPs once again to sacrifice a working ESP with a broken pin to the LED since I couldn’t get the audio to work.

By the time we resolved this issue, it was late. I don’t recall the exact time, but I suggested we wrap up and save our mental energy for the next day. However, there was still one pending duty.

Throughout this time, I was trying to get the final build of our application, mobile application, our final build ready to go as an APK file so that I could install it on any Android device. For as much as I tried on the platform that we were using, which was React Native, we were using Expo, which is a pretty popular platform to build and deploy mobile applications[2]. I figured it was an easy process, since we had loaded our app on phones for debugging. But as soon as I went to the build process, something just didn’t work and some modules in the React project were not playing well with the mobile deployment. I tried to tweak as much as I could, the hours went on, It wasn’t looking good. Let’s see if we can get the local server method working the day of the presentation, tomorrow. So now at this point, I decided to go to sleep and have some rest and tackle it all tomorrow (or that same day… you lose track of time when locked in).

Presentation Time

The next day, we woke up at around 6 a.m. because we had our presentation at 9 or 9:30, I can’t recall anymore. We wanted to get to school in time to test on campus so that we would know exactly how everything would look. I had to commute around an hour from my house. So I decided to leave around 6:30 or 7 to get there with enough time to practice. Luckily, since it was symposium day, a lot of students were also going to be there, including one of my friends who graciously allowed me to use their club’s lab to set up headquarters for the event because otherwise, I don’t know where I could have set up all of our hardware and connect everything to test it. Once I got there, I asked him if he was there he was able to open the door for us and we were able to gather ourselves in there.

So now came the testing. We were very specific with our time. We wanted no wasted time setting up the hardware. So we actually timed ourselves and we got around two minutes or so to set up all the hardware. And then after that, I wanted to test the application - That was the last thing. I wanted that to work 100% to show to the audience that you can control it. And I wanted to pass it on my phone to the audiences to have them control it. So I had my laptop ready to go with the Expo app ready.

And as soon as I saw the app working perfectly, I was able to have a moment of calmness. I had been racing the entire morning; as soon as I saw everything working, I felt a huge relief. All we had to do was wait for our time. And that time came at about an hour or so.

Before continuing with the day of the presentation, let me explain how our advisor structured the projects and presentations. In the beginning of last semester, meaning fall of 2023, I was able to get Professor Tim Lin as an advisor and I good word from other students that Professor Lin has very little restrictions on what you could do as a senior project. Unlike other professors that create their own projects and have you do a specific task. I didn’t want to do that and I wanted to have my own route. So luckily, I was able to have him as an advisor and he will approve my project and I was able to get my friend Dylan as a secondary partner. The other groups were sort of similar, they also had their own trajectory and it was cool to see what other students had in mind. So for the presentation purposes, it was sort of bland from the title of the project what you were going to show. It all came down to how you were presenting and how you ended up finishing your project and what you were going to show.

After providing this context, let’s return to the day of the symposium. Following the first two presentations, it was our turn. You can watch our presentation in the video below.

Symposium Day Video Presentation[2]

Ending Remarks

This experience was very eye-opening for me. I didn’t previously have any experience with a presentation of my own work other than schoolwork. But I decided that this school senior project was something different, something that I had full control of and I can take however I want or I can take wherever I want. Having great presentation skills is something I believe I still need to work on, but I believe that I possess a very good set of presentation skills that portray or conveyed the message and the topic of our senior project very well. And at the end of the day, this is one step into many presentations that I hope to make regarding my career or my interests with these technology aspects.

Lessons Learned

I can’t end this without detailing what I learned throughout the day of slight panic that we incurred.

  • We were underprepared: there was absolutely no reason to deal with such pesky issues on the night before the big day. It was a bucket of ice cold water that could have been avoided had we just met up more that week.

  • More concrete action items: Some weeks back, as soon as the Professor confirmed the date for the Symposium, Dylan and I had dedicated some time to write down specific things that still needed to be done. Looking back, it seems as though we did not put as much effort into being as extensive as possible to cover ALL areas for project completion.

There is simply no valid excuse for this happening. I’m glad it happened and will move forward with this experience under my belt.


Thank you for reading about the story that unfolded in preparation for Symposium Day. I promise to make a blog post, a detailed blog post, about my senior project from every part of the system to why I decided to do this, and how my partner and I ended up creating a fairly seamless way to interact with IoT devices. Graduation is right around the corner!

References

1 - Professor Lin’s Senior Project Class, Symposium Day ↩

2 - Expo ↩

3 - Symposium Day Video Demonstration ↩