Other than reviewing the final presentation slides, I have not done much. I spent an extreme amount of time grading for another class this week.
I will have more time next week as I only have one final to worry about.

Carnegie Mellon ECE Capstone, Spring 2026: Isaac Kim, Jacob Rohozen, and Tyler Weed
Other than reviewing the final presentation slides, I have not done much. I spent an extreme amount of time grading for another class this week.
I will have more time next week as I only have one final to worry about.
This week, I worked on troubleshooting/debugging the vehicles as we modified them to fit in 3D printed cases. The main issue was that many wires disconnected in the process and needed reconnected, but this is difficult within the case. I also spent a significant amount of time debugging for the ultrasonic sensors. One issue was that one of the sensors had gone bad, and replacing it worked. Another issue was that one of the pins on one of the vehicles was no longer working properly to output the ultrasonic trigger signal. Switching to a different pin worked. I was also looking an issue with one of our vehicles. It seems to overheat then restart every once in a while. We haven’t figured out what is happening there yet.
This week, the team worked on preparing for the interim demos and continued work on vehicle movement. This involved updates to the PID controller code so it could be better integrated with the other tasks for the vehicle such as reading UART messages. We are also working around issues with connecting to the Raspberry Pi’s.
Based on feedback from the interim demo, we plan on designing a 3D print to contain the wiring and sensors for the project.
Next week, we plan on further improving vehicle movement and working on algorithms for searching and path planning. We are also looking into using an ultrasonic sensor instead of an IR sensor for obstacle avoidance because the IR sensor functionality can depend on the (light) environment.
For the verification and validation phase of the project, we haven’t run any major tests yet but have a fleet of various test planned. Primarily, we will be testing for whether the bots can find and converge to a target. Secondarily, we want to see a speedup in time to find the target when more bots are searching. So, we will create a test matrix where a room is searched with 1, 2, and 3 bots. We will also vary the amount and spacing of cardboard box obstacles in the room, running each configuration once for each number of bots. We will check for successful completion of the search and make sure that the time decreases with number of bots used.
This week, I worked on preparing for the interim demos. I was working on the movment/PID code, but we were having trouble connecting to the Raspberry Pi’s on CMU WiFi. I also updated the movement code to work with distance values rather than moving for a certain amount of time.
Next week, I will continue to work on movement to ensure it is consistent and reliable. This will require further tuning for PID. When testing, we found that the IR sensor is somewhat sensitive to the surroundings, so I will look into using the ultrasonic sensor for obstacle detection and collision avoidance.
This week, I worked on vehicle movement. First, I worked with Isaac to assemble (duct tape) a vehicle together. Then I determined which pins on the Raspberry Pi were needed and wired everything up. This also required re-soldering the some of the motor wires back on because they had fallen off.
I hoped to make more progress with movement (moving straight and rotating in place), but initial testing did not go well. One issue was that the each motor rotated at a different speed for a given PWM duty cycle. This prevented the vehicle from moving straight. It wouldn’t be possible to adjust the duty cycle for individual motors because this does not scale well to multiply vehicles. Instead, I implemented a PID on motor encoders to ensure that each wheel rotates the same amount in order to move straight forward.
The other issue with movement is more challenging and likely requires a mechanical (rather than software) fix. The problem is that the caster wheel in the back significantly impacts movement based on its position at any moment, which is effectively random and changes rapidly. We are planning to remove the caster wheel and replace it with a single ball bearing to avoid this problem.
Hopefully, these movement issues are solved next week and I can achieve consistent movement with a single vehicle. Then I can focus on coordinated movement. But before that, I am meeting with the team to work on our demo.
This week, we continued to work on implementing and testing individual components, and we are getting closer to building and testing multiple vehicles working together.
Once assembled, we will test and tune basic vehicle movement like turning and driving straight and check the accuracy of motor encoder readings. We also have an algorithm for partitioning space to test once movement is nailed down.
For sensing and object detection, we tested some of the final components. The motor encoders successfully trigger a callbacks on the Raspberry Pi. The Raspberry Pi camera can detect a brightly-colored target using the Python OpenCV library. The next step here is to get everything physically mounted so we can test everything together.
For communication/UWB, the Raspberry Pi can now send commands to the UWB module over UART to enter different modes of operation (transmitting/recieving/ranging).
Overall, we are still on track. It will be important to put at least two vehicles together early next week in order to stay on track.
This week, I continued work on testing all the individual parts. I tested the motor encoders by setting them over the motor encoder encoder wheel and manually turning it as the encoders still aren’t attached as the frame doesn’t have a good way to attach them.
I also plugged in the Raspberry Pi camera and played around with it. I was able to take pictures and then I was able to have it track an object with some very basic computer vision. We are using OpenCV in Python. Here is an screenshot of it working. The brightly-colored orange target is a 3D-printed thing I had sitting around. On the right is a mask showing all pixels of a target color. On the left is the image with a blue circle around where the Raspberry Pi thinks the target is.

Next week, I would like to work with the team to get at least two vehicles put together and start testing communication/movement with them. So far, all of the parts work individually, but we haven’t attached them all to a vehicle. Once we have that, we can really dive into the distributed aspect of the project.
This week, I worked on integration. I wired up the motors to the motor driver and the motor driver to the power bank and Raspberry Pi. I also wired up the IR sensor and added test code for all of these components. Here’s a picture! You can’t tell, but the motor is turning. We will be using lgpio (Python) as our GPIO library. After testing, I am concerned that the motors and frames we have are cheap and flimsy. Hopefully they last the duration of the project…
I am still on schedule. My ne
xt steps will be testing the motor encoders and the Raspberry Pi camera. The motor encoders aren’t yet attached to the frame, but I don’t anticipate that the encoders will require much code once they are attached. After I figure out the camera, I’ll write some basic target detection code.
Before spring break, I worked with the team to finish up the design report and I worked on assembling a vehicle with the team. I also added some driver code to the group repository for controlling the motors with the L298N motor driver. Due to some shipping delays, I did not get to testing all of the sensors/components yet. This was scheduled for the week before break as well as the week after break. I am currently still on schedule and will be working on integrating the sensors next week.
This week was design presentation week, so I worked with the team to finish up the design presentation slides Sunday and then I gave the design review presentation on Monday. I’m currently waiting on hardware to arrive. Once in, I plan on testing the IR sensors and motor encoders and integrating them with the Raspberry Pi. If I have time, I will work with Tyler to figure out the UWB modules to test their communication and distance measurement.