Close
0%
0%

SMARS Telepresence Bot

A smartphone-based telepresence robot that lets me see, hear, talk to, and move around with my family from anywhere.

Similar projects worth following
151 views
This project is a smartphone-based telepresence robot that is built on an open-source SMARS-inspired chassis. To provide live video, two-way audio, and internet connectivity, this robot uses a phone mounted on the robot that acts as the communication hub. On the other hand, an ESP32 microcontroller handles motor control and real-time movement. By separating the communication and motion control, the robot stays reliable and responsive while also being relatively simple to build!

My goal for this project is to create a way to stay connected with family and loved ones over long distances, much like the Enabot robot. This robot can be driven remotely via a custom app that allows the user to move around, see, hear, and talk as if they were physically present in the environment.

How It Works

Essentially, this robot has two independent systems that work together:

Motor Control

The first system is the motor control. The robot uses an ESP32 that connects to a free HiveMQ Cloud MQTT broker over WiFi. A web dashboard running in any browser publishes WASD movement commands to the broker. The ESP32 receives them and drives the motors. Because MQTT is cloud-based, the robot can be controlled from anywhere in the world as long as it has an internet connection.

Video and Audio 

The second system handles the video and audio connection. To do this, the robot uses a phone on the robot that runs a broadcast page in its browser that accesses the camera and microphone via WebRTC. The web dashboard connects to the phone's stream peer-to-peer. Two-way audio lets you both hear the environment and speak through the phone's speaker. WebRTC signaling is handled through the same HiveMQ broker, and a Metered TURN server is used as a relay to make cross-network connections work reliably.

Overall, both systems connect through cloud services (free tiers because I like saving money 👀) so there is no server to manage and no ongoing cost for personal use.


What Needs Improvement

Battery — After test, I quickly found that a 9V block battery can't sustain motor current under load. A 6x AA pack or 7.4V 2S LiPo could be better. Powering the ESP32 separately from the motors also helps. Also, adding a charging port is great too.

WiFi setup — Credentials are hardcoded in firmware. Adding WiFiManager would let anyone configure the network without reflashing.

Web dashboard — Keyboard-only control doesn't work on mobile. On-screen D-pad buttons are needed for touch control.

Chassis — The SMARS is very small and is limited to what you can do without extra cadding. I believe a purpose-built chassis with a proper phone mount and enclosed battery compartment would be much more solid.

  • 1 × Wemos D1 R32 (ESP32) Microcontroller for motor control
  • 1 × L298P H-Bridge Motor Driver Shield Mounts directly on the D1 R32
  • 2 × N20 motors Fits standard SMARS chassis
  • 1 × SMARS chassis 3D printed
  • 1 × Android smartphone Mounted on robot, runs broadcast page

View all 9 components

  • 1
    Assemble the chassis

    Mount the motors to the SMARS chassis and connect them to the L298P motor driver shield. Stack the shield onto the D1 R32.

  • 2
    Wire power

    Connect the 9v battery to the motor driver's power input. This ultimately powers the entire system.

  • 3
    Flash the ESP32

    Fill in your WiFi credentials and HiveMQ Cloud credentials in main.cpp and flash the firmware. On boot the ESP32 prints its IP and connects to the MQTT broker

View all 6 instructions

Enjoy this project?

Share

Discussions

Donavan Borges wrote 03/19/2026 at 09:46 point

I WILL ADD MY CODE AND THE GITHUB REPO VERY SOON!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates