Skip to content

Final Project

My project is a Wi-Fi-controlled rover powered by an ESP DevKit-V1 microcontroller and four independently driven DC motors. I designed a custom PCB using KiCad that hold four motor driver chips, power distribution, and signal routing for the ESP. The rover is controlled through a web interface that I built, which sends commands to the ESP and communicates them into PWM and direction signals for each motor. I created custom omnidirectional wheels in Fusion 360 and improved their traction by molding new rollers using silicone and cast plastic. The chassis was also fully designed in Fusion 360 and 3D printed, with the final design inspired by a pickup-truck-style layout for mounting electronics. Power is supplied by a six-AA battery pack, which solved earlier problems with insufficient current from AAA and 9V batteries. Altogether, the project combines electronics, programming, mechanical design, and problem-solving to create a fully functioning, remotely operated rover.

My initial thoughts for the Project

My Final Project Idea has changed since week 1. Its purpose is to be remotely controlled from the users joystick giving them a camera view of the direction the project is moving. My working name for the project is land-drone but it could use some work. I want to be able to move it remotely (Still working on the distance) and view the camera remotely. It will be able to move side to side using mecanum wheels but that may be impossible but I am doing research to try and account for it only having 2 wheels but needs 4. The remote control should have buttons, two joysticks and a screen that displays the live camera feed. At the moment this is the plan. Now I am going to give in to my feature blindness and list a lot of things I would like to add to the moving: very high suspension, microphone, speaker, LEDS, jump ability with tail support(Will go over later). And everything I want to add to the controller buttons that activate different movement types (left, right, diagonal forward left right and vice versa), a microphone, and a speaker.

First Sketch

Open Spreadsheet

Open Spreadsheet

3D Models

Weeks I used

Embedded Programming

3D Scanning and Printing

Electronics Design

Electronics Production

Output Devices

Embedded Networking and Communications

Moulding and Casting

Interface and Application Programming

System Integration

Final project requirements

Here is my Slide!

Here is my Video!

Fab Academy Final Project: Remote-Controlled Rover

Overview

My final project is a fully functional remote-controlled rover that I designed, built, and programmed. It integrates electronics, mechanical design, networking, and communicative engineering. The project allowed me to apply and utilize skills from earlier Fab Academy units, including electronics design, 3D modeling, molding and casting, embedded programming, system integration, networking, input, output, computer controlled designing and cutting, and electronic production.

The rover is portable, modular, and can move in multiple directions through a custom web interface that anyone can open on their phone’s browser.


What Does It Do?

  • Move forward, backward, and turn left/right via a web-based interface
  • Respond quickly to user inputs through the ESP-DevKit-v1 microcontroller
  • Integrates multiple motors working at the same time
  • Operates from a portable battery pack

Future improvements include LED headlights, a movable camera with stepper motors, and smoother wheel rollers.


Step 1: Electronics & PCB

Weeks I used

Electronics Design

Electronics Production

Output Devices

Embedded Networking and Communications

Components

  • Microcontroller: ESP-DevKit-v1
  • Motor Drivers: 4x Toshiba motor drivers called the TB67H451FNG (one per DC motor)

  • Power Supply: 6x AA batteries for proper amperage and voltage

  • PCB Design: Designed in KiCad, milled on an EnderMill Pro milling machine; the design utilizes the Esp32-Devkit-v1 Microcontroller, the 4 Toshiba motor drivers, 4 120k resistors, 4 10uf capacitors, 4 0.1uf capacitors, 4 1 uf capacitors, 8 output headers, and finally a screw terminal for my power and ground. For this project I again took advice from Mr. Budzichowski and grounded my board which made it much easier to create as I would now only need to mill one side.

Thoughts

After multiple of these failture I felt like there was absolutley nothing I could do. Luckily Mr. Budzichowski helped me out enourmeous by providing me with advice on how to proceed and with the Toshieba motor drivers that he had used previously. After this I worked on creating the prototype seen below.

Functionality

  • Motors controlled via 2 input pins + 1 PWM pin per motor. A DC motor driver controls the speed and direction of a DC motor by regulating the voltage and current supplied to it. It normally uses an H-bridge circuit, which allows the motor to rotate forward and reverse by changing the polarity of the voltage. The driver receives input signals or PWM and Input signals from a microcontroller or other control system. It also protects the motor and control circuit from overcurrent or voltage spikes, ensuring safe operation.

  • Receives commands from a custom web server interface. When I click a certain button or move the digital joystick a certain way it triggers the PWM signal and the two Input signals to be sent in a specific pattern in order to spin the wheel either forwards or reverse and at what speed.

Challenges

  • Initial motor driver (L298N) did not work. Initially like a dummy I thought I could just use the preassembled L298N Motor driver and just attach it to a PCB. After that I tried recreated the L298N on a custom PCB and that failed too. Then I moved onto the Toshiba motor drivers.

  • Incorrect power sources initially (AAA, 9V, 12V motors), at first I used 3 triple A batteries which did not have the current or voltage to effectively power my rover, like I tried using a nine volt but didn’t understand exactly how low the amperage on it was before finally transitioning to 6 double A batters for 9 volts of power and 1 to 2 amps.

  • Pin misconfigurations almost caused failures. When creating the board I used 2 the input only pins as outputs which almost ruined the project before I caught it on Kikad and remilled the board.

Lessons Learned

  • Proper planning of power distribution is critical
  • Custom PCBs can save space and improve system reliability
  • Understanding microcontroller pins and capabilities before hand can prevents really bad errors

Step 2: Wheels & Rollers

Weeks I used

3D Scanning and Printing

Design & Materials

  • Prototype wheels 3D printed in PLA
  • Traction issues led to molding silicone molds and casting resin rollers
  • Wheels attached to motors via custom M3 screw design

Home view of the wheel models. I printed two of each of those to create 4 wheels total. Two for the left side and two for the right side that fit the rollers in.

Opposite sided home view.

Roller for wheel

Home view of my adapter that fits right into my wheel and had a slot that fits right onto the motor.

Forward view

Example of the adapter fitting into the first iteration one of the Wheels.

Process

a. Printed prototype wheels off of Fusion 360

Click here to check out a more detailed process for my molding and casting week

b. Glued PLA rollers to popcorn bucket to mold

c. Created silicone mold by

d. Cast resin rollers and attached to wheels by mixing together the silicone mold.

Lessons Learned

  • Traction is critical for reliable movement; always make sure you use the right materials for your project by doing adequate research ahead of time.
  • Molding and casting enable more durable and functional mechanical components because of the efficiency, time, and uniform dimensions make it a very important process for this project
  • Iteration between PLA and resin improved performance

Step 3: Chassis & 3D Design

Iteration

  • Initial PLA flatboard → wooden base → pickup truck-inspired chassis
  • Designed in Fusion 360, printed on Bamboo A1 printer
  • Battery pack in rear, microcontroller in front
  • Motor holder that attaches my 4 hobby DC motors to my body

Challenges

  • Wooden base too heavy, inflexible
  • PLA-only design initially lacked aesthetics and mechanical efficiency

Ugly and Inflexible wood

Test Board with other wood

Lessons Learned

  • Modular 3D-printed design allows for better control over weight and durability
  • Aesthetic considerations can coexist with mechanical function


Step 4: Software & Network Interface

Weeks I used

Embedded Programming

Embedded Networking and Communications

Interface and Application Programming

System Integration

Design

  • Web server to control rover
  • Motors controlled via PWM and input pins
  • Code for motor control written independently
  • HTML and server support from Chad GPT
    !

Challenges

  • Optimizing Wi-Fi responsiveness
  • Combining motor and microcontroller power
  • Scrapped camera integration due to complexity

Lessons Learned

  • Embedded programming requires careful integration with mechanical and electrical systems
  • Web interfaces can be optimized for real-time control but it can be difficult to synchronize it with mechanical parts.

Step 5: Integration & Assembly

Weeks I used

System Integration

Overview

  • Combined electronics, mechanical components, and power system
  • Screwed motor attachments to wheels and chassis
  • Wired motor drivers and microcontroller to battery pack
  • Tested power distribution, network responsiveness, and motion control

Challenges

  • Some rollers occasionally jammed
  • Mechanical turning less effective than ideal

Lessons Learned

  • Integration is iterative: mechanical, electrical, and software parts must be tested together
  • Modular designs allow future upgrades and repairs

Step 6: Evaluation

  • Performance: Responds quickly and accurately to commands
  • Mechanical Reliability: Functional, smooth forward/backward movement, less effective turning, there are some problems with certain commands because of the constraints on the wheels
  • Aesthetics: Clean and professional
  • System Integration: Electronics, mechanical design, and software all work cohesively
    Overall a solid 9/10 in my opinion.

Future Improvements

  • Add movable camera with stepper motors
  • LED headlights and additional lighting effects
  • Refine wheel rollers for smoother operation
  • Enhance chassis design with detailed body and built-in hinges

Materials, Components, and Costs

Component Source Cost Estimate
ESP-DevKit-v1 Fab Academy supply $20
Toshiba motor drivers Provided by mentor $0
DC Motors (yellow motors) Local supplier / Fab Lab $10 each
PLA filament Fab Academy & personal supply ~$30 total
Silicone & Resin Fab Academy supply ~$15 total
M3 screws & nuts Hardware store ~$5
Batteries Local store ~$10
Misc wiring & connectors Fab Academy supply ~$5

Sources Used


Implications

  • Demonstrates ability to design and integrate a small robotic vehicle
  • Combines mechanical, electronic, and programming skills
  • Can serve as a toy, educational tool, or small recon vehicle
  • Provides foundation for further robotics development

Reflection

Problem Solving

Throughout this project, problem solving became one of the most important skills I relied on. Nearly every stage required me to identify an issue, figure out why it was happening, and test possible solutions.
Some examples included:

  • Diagnosing why the motors weren’t receiving enough current, even though the voltage seemed correct.
  • Tracing PCB pin connections to avoid routing signals to input-only ESP pins.
  • Re-evaluating the choice of materials when the original PLA rollers didn’t provide enough traction.
  • Debugging Wi-Fi connection issues and refining the timing of motor signals.

Each of these challenges required me to break the problem down, understand the system behind it, and then try multiple approaches until I found the right answer.


Persistence

At a lot of times, the project reached points where it was extremly frustrating or stuck. My first PCB design didn’t work no matter how many times i remade it, the wooden chassis didn’t work, the battery choices failed, and even the motors and wheels had to be redesigned more than once.
But persistence is what kept the project moving.

Instead of giving up when something didn’t work, I learned to: - Stay patient
- Test again
- Rebuild parts
- Research alternatives
- Improve the design

Persistence is key.


Importance of Learning

This project taught me more than just how to control motors or design 3D parts—it taught me how important learning really is in engineering.
Every mistake became an opportunity to understand something new:

  • Why current matters as much as voltage
  • How PCB design choices affect functionality
  • How different materials behave in real-world use
  • How Wi-Fi lag affects motor control
  • How to create code for clarity and effectiveness

The more I learned, the better the project became. And the experience reminded me that engineering isn’t about getting everything right the first time because it’s about learning fast and improving through each iteration.


Thank You to Mr. Budzichowski

I want to give a special thank-you to Mr. Budzichowski.
His guidance, patience, and support throughout the entire project made a huge difference. From troubleshooting electronics issues(a lot) to giving feedback on design decisions, he consistently challenged me to think deeper and push myself further.

This project would not have reached the level it did without his help, and I’m genuinely grateful for the knowledge and encouragement he provided.


Files

Fusion

Arduino

PCB


Last update: November 21, 2025