Mobile Controlled ESP32 Two-Wheel Drive Robot




Introduction: Mobile Controlled ESP32 Two-Wheel Drive Robot

About: STEMpedia is a place bringing project-making tools at one place- kits, online courses, coding platforms, controller app and tons of free learning resources.

Today’s project is not going to be based on evive. Today, we’re going to make yet another smartphone-controlled robot but this time using ESP32. It can move forward, back, right, left, and doesn’t need Bluetooth! We’re to program it in PictoBlox, our graphical programming software with advanced interaction capabilities and control it using Dabble, our smart project interaction and controller app.

You can download PictoBlox from HERE and get Dabble on Google Play.

Ready to make the robot?

Let’s begin!

Step 1: List of Components Required


  • ESP32
  • Motor Driver
  • Dual Shaft BO Motor
  • BO Motor Mount
  • BO Wheel
  • Caster Wheel
  • Breadboard
  • Samsung 3.7V 2600 mAh Lithium-Ion Battery
  • Acrylic Base Plate
  • Standoffs
  • Jumper Cable
  • Nuts and Bolts


Step 2: Assembly of the 2-Wheel Drive Robot

Attach the motor mounting brackets to the bottom of the chassis using M3 bolts of 8mm length and M3 nuts. (Fig 1)

Attach the two Dual Shaft BO motors to the motor brackets on the chassis using M3 bolts of 25mm length and M3 nuts. (Fig 2)

Note: Make sure that the motor's wires are faced forward and are inwards.

Next, fit the wheels into the motor shafts. (Fig 3 and 4)

As ESP32 has no internal battery, we need to supply external power to it. Thus, to hold up the external battery, we need to attach the 3D printed battery holder using M3 nuts and bolts. (Fig 5)

As we already know, that for a 2-wheel drive robot we need third support which is the Caster wheel.

Mount three M3 standoffs on the caster wheel. Fasten the caster wheel with the standoffs to the chassis using M3 bolts of 8mm length. (Fig 6)

Finally, flip the entire assembly.

Step 3: Connecting ESP32

Connect the ESP32 board, Voltage Regulator and Motor Driver on the Breadboard as shown in Fig 1:

Make the connections as listed below:

  • Connect battery +ve terminal to the input of 7805 voltage regulator IC and” VIN” of Motor driver IC
  • Connect its -ve terminal to “GND” of ESP32 Dev Board,” GND” of Motor Driver IC, “GND “of the Voltage regulator IC ( 7805)
  • Connect OutPut of voltage regulator IC to” VIN” of ESP32 Dev Board and “VCC” of Motor Driver IC
  • Connect Motor1 Enable Pin i.e EN1 present on the motor driver IC to pin D14 present on the ESP32 Dev Board. similarly, Connect EN2 to pin D23 of the ESP32 Dev Board
  • Connect Motor 1 Direction Control Inputs pin (i.e Pin IN A1 and IN A2) to D12 and D13 pin present on the ESP32 Dev Board Respectively.
  • Connect Motor 2 Direction Control Input pin (i.e Pin IN B1 and IN B2) to D22 and D23 respectively.
  • Connect one end of motor 1 to OUT A1 and another end to OUT A2 .similarly, Connect one end of motor 2 to OUT B1 and another end to OUT B2

Step 4: Complete the Assembly

Once have made the two-wheel drive and the connections, fix the breadboard on your two-wheel robot above the chassis using a Double-sided tape.

Finally, connect a 7.4V Lithium Polymer Battery to ESP32.

Your robot is thus complete.

Step 5: Working of the Robot

We will be controlling the Smartphone using Dabble. Install Dabble and open it on your Smartphone.

Connect the Dabble by clicking on the Connect-Disconnect button and selecting your device's name from the menu. Open Gamepad and there you go!

The robot takes actions according to the button pressed. For example,

  • Up: Robot will move forward
  • Down: Robot will move backward
  • Left: Robot will turn left
  • Right: Robot will turn right
  • If none of the buttons is pressed, the robot will stop.

Step 6: PictoBlox- Graphical Code

Working with an ESP has never been this easy. Now just code it by dragging and dropping some blocks in PictoBlox.

You can download PictoBlox from here. Once installed, make the above script and upload it to your board.

Step 7: Arduino Code

You can also code it using Arduino:

Step 8: Conclusion

With this, your robot is all set to do what you ask it to! ;)

DIY Summer Camp Contest

Participated in the
DIY Summer Camp Contest

Be the First to Share


    • Lamps Challenge

      Lamps Challenge
    • Puzzles Challenge

      Puzzles Challenge
    • CNC and 3D Printing Contest

      CNC and 3D Printing Contest



    Question 1 year ago on Step 7

    esp32PWMUtilities.h: No such file or directory

    Why can i solve this problem? Can you give me the URL ?
    Thank you


    Question 3 years ago on Step 8

    Can we find all the materials from one supplier? If so, whom?


    Answer 3 years ago

    nice question


    Question 3 years ago on Introduction

    how can i discribe to use LDR in my community


    3 years ago

    Looks like a fun robot project! Thanks for sharing. :)


    Reply 3 years ago

    Thank you so much. :)