SUMMER WORKSHOP · BUILD TEAM

Build. Code.
Drive.

Your challenge is to turn a colorful G-Lab Bot chassis into a working Bluetooth-controlled robot powered by an ESP32. You will assemble the hardware, create safe power rails, upload a sketch, and drive with the Dabble Gamepad.

Built for the brilliant African American and Hispanic young engineers of Imani Genius Lab.
Completed yellow G-Lab Bot with ESP32, motors, batteries, and colorful wiring
Meet the G-Lab Bot — this is what you will build.
YOUR MISSION

From Parts Rack to Bluetooth Bot

Engineering is teamwork. You will make many of the connections yourself, while a Genius Lab Tech Leader assists with the Heat Station, battery tests, electrical checks, and troubleshooting.

01

Choose

Select your G-Lab Bot color and collect every component with a Tech Leader.

02

Assemble

Install the switch, battery holder, breadboard, caster, motors, and L298N Motor Driver.

03

Wire & Test

Create 7.4V, ground, and 5V rails; connect the ESP32; and verify the circuit safely.

04

Code & Drive

Prepare Arduino IDE, upload the sketch, connect Dabble, and take control.

Tech Leader Checkpoints: Heat Station work, temporary battery installation, voltage measurements, final circuit test, and upload troubleshooting.
THE BOT'S BRAIN

Meet the ESP32 Microcontroller

A microcontroller is a tiny programmable computer. The ESP32 reads your commands, runs the sketch, and sends control signals to the L298N Motor Driver.

  • Bluetooth built in — the Dabble App communicates directly with your Bot without a separate Bluetooth module.
  • Wi-Fi built in — future projects can connect to networks, online services, and other smart devices.
  • Programmable GPIO pins — pins 25, 26, 27, 14, 32, and 33 will control motor direction and speed.
  • Fast dual-core processor — powerful enough to handle wireless communication and real-time motor control.
  • Arduino IDE compatible — connect a USB data cable, choose the correct COM port, and upload your sketch.
ESP32 development board

ESP32 Development Board — handle it by the edges.

Wi-FiBluetoothGPIOUSB Programmable
CHOOSE YOUR BOT

Pick a Color That Feels Like You

Select one available G-Lab Bot chassis. Ask a Tech Leader which colors are ready at the storage rack.

Gold
Red
Cyan
Green
Orange
Purple
Pink
White
STORAGE RACK CHECKLIST

Collect Parts with a Genius Lab Tech Leader

Bring your selected chassis to the rack. Check off each item before assembly and handle every electronic component with care.

Small rocker switch
×1

Power Switch

Master ON/OFF control installed in the rear slot of the Bot.

TT gear motor
×2

TT Gear Motors

Slide into the designated motor slots and drive the two wheels.

Mini breadboard
×1

Mini Breadboard

Distributes 7.4V, 5V, and ground without soldering.

Two-cell 18650 battery holder
×1

18650 Battery Holder

Holds two 3.7V cells in series for approximately 7.4V.

L298N Motor Driver
×1

L298N Motor Driver

Directs battery power to both motors under ESP32 control.

Small robot caster wheel
×1

Wheel Caster

Supports and balances the front or rear of the two-wheel Bot.

Also collect:Jumper wiresMale-to-Male DupontFemale-to-Female DupontMale-to-Female Dupont2 M3 screwsUSB data cable
CABLE GUIDE

Know Your Dupont Cables

“Male” means a metal pin sticks out. “Female” means the end has a socket. Match the connector to the component.

Male ↔ Male

Male-to-Male

Metal pins on both ends. Use for breadboard-to-breadboard connections and for the battery ground lead prepared at the Heat Station.

Pin + wire + pin
Female ↔ Female

Female-to-Female

Sockets on both ends. Use when both components already have exposed pins, such as ESP32 GPIO headers and L298N control pins.

Socket + wire + socket
Male ↔ Female

Male-to-Female

A pin on one end and a socket on the other. Use when connecting a breadboard hole to a component header pin.

Pin + wire + socket
Colorful Dupont jumper wires

Keep wires organized by destination and never force a connector.

ASSEMBLY · STEPS 1–13

Build the Hardware

Follow the steps in order. Stop at every Tech Leader checkpoint. Never insert, remove, or change wiring while batteries are installed.

Safety first: Only a Tech Leader operates the Heat Station and temporarily installs batteries for testing. Keep batteries out of the holder during all other wiring.
1
Chassis

Install the switch

Attach the power switch securely in the designated slot at the back of the G-Lab Bot.

2
Tech Leader · Heat Station

Prepare the battery leads

Bring the Bot and battery holder to the Heat Station. A Tech Leader will connect the battery holder's positive lead to the switch and connect the ground lead to a male Dupont wire. The Tech Leader will secure both connections with heat-shrink tubing.

Do not operate the Heat Station yourself.
3
Mount

Secure the battery holder

After the Heat Station connections are complete and cool, glue the 18650 battery holder into its designated location on the Bot.

4
Tech Leader Check

Test the switch and 7.4V circuit

A Tech Leader will temporarily install two 18650 batteries. Test that the switch turns the circuit on and off, then use a multimeter to verify approximately 7.4V from the circuit. The Tech Leader removes the batteries after the test.

5
Mount

Attach the mini breadboard

Peel the protective backing from the breadboard and press it firmly into the designated place on the Bot. Its adhesive backing holds it in place—no glue is needed.

6
Power Rails

Establish 7.4V and ground rails

Follow the Establishing Rails illustration. Connect the switched positive lead to the positive rail and the battery ground male Dupont wire to the ground rail. Then route 7.4V and ground from those rails to the L298N Motor Driver.

Once rails are established, power can be routed wherever it is needed. Future add-ons—such as LED headlights and tail lights—can receive a suitable voltage through additional regulation or driver circuitry.

Establishing Rails illustration showing switched 7.4V and ground entering the breadboard and routing to the motor driver
Establishing Rails: red labels show positive 7.4V; black labels show ground.
7
Drive System

Attach both TT Gear Motors

Slide the two TT Gear Motors into their designated slots. If needed, add only a small spot of glue to tighten the fit. Install the wheel caster in its designated mounting location so the Bot rolls and balances smoothly.

8
Mount

Attach the L298N Motor Driver

Use two M3 screws to mount the L298N Motor Driver. Add one small drop of glue in each mounting hole only if needed to secure the fit.

9
L298N Wiring

Connect motors and main power

Wire the two motors, 7.4V input, ground input, and 5V output exactly as shown in the L298N illustration. Tighten screw terminals gently but firmly, then tug each wire lightly to confirm it is secure.

L298N Motor Driver illustration showing motor wires, 7.4V input, ground, and 5V output
L298N Motor Driver wiring: both motors on the output terminals, 7.4V and ground from the breadboard, and 5V back to the breadboard.
10
5V Rail

Create the breadboard 5V rail

Connect the 5V output from the L298N Motor Driver to a second breadboard rail, as shown. This rail will power the ESP32. Keep it separate from the 7.4V rail.

5V Rail illustration showing 5V from L298N routed across the breadboard to the ESP32
5V Rail: L298N 5V output enters the rail and is routed to the ESP32 5V pin.
11
ESP32 Signal Wiring

Connect the L298N control pins to the ESP32

Ask a Tech Leader if you need help. Use the exact pin map below.

IN1GPIO 25
IN2GPIO 26
IN3GPIO 27
IN4GPIO 14
ENAGPIO 32
ENBGPIO 33

IN1–IN4 control motor direction.

ENA and ENB control motor speed using PWM.

12
ESP32 Power

Connect 5V and ground to the ESP32

Connect the breadboard's 5V rail to the ESP32 5V pin. Then connect the breadboard's ground rail to an ESP32 GND pin. The ESP32 and L298N must share the same ground reference.

13
Tech Leader Final Circuit Test

Look for two red power lights

A Tech Leader will temporarily install the batteries and switch on the circuit. If everything is correct, you should see a red power light on both the L298N Motor Driver and the ESP32.

After the test, switch off and remove the batteries. You do not need them while uploading the sketch—the ESP32 receives power through the connected USB data cable.

Do not continue if either light is missing. Switch off, remove the batteries, and troubleshoot with a Tech Leader.
PROGRAM · STEPS 14–18

Give Your Bot a Brain

A sketch is an Arduino program: a set of instructions that tells the ESP32 how to communicate with Dabble and control the motors.

14
Arduino IDE

Connect the ESP32 and remember the COM port

Open the Arduino IDE. Insert the USB data cable into the ESP32 and the computer. Go to Tools → Port, select the connected COM port, and remember that port number for uploading.

A charge-only USB cable will power the board but cannot upload code. Use a USB data cable.
15
Required Dabble Setup

Install the compatible ESP32 Core and DabbleESP32 library

This workshop's Dabble sketch requires the ESP32 Arduino Core version shown below.

A · ESP32 CORE
  1. Arduino IDE → Tools → Board → Boards Manager
  2. Search ESP32 by Espressif Systems
  3. Select version 2.0.17 and install
  4. If necessary, remove a newer version first
B · DABBLE LIBRARY
  1. Sketch → Include Library → Manage Libraries
  2. Search DabbleESP32
  3. Install the library by Dabble
16
Genius Portal

Copy the Bluetooth Controlled G-Lab Bot sketch

Log in to the Genius Portal using the password provided by your Tech Leaders. Open the Genius Lab Sketch Library, then select the Bluetooth Controlled G-Lab Bot link.

A sketch is the complete program the Arduino IDE compiles and uploads to the ESP32. Copy all of the code from the Sketch Library and paste it into a new Arduino IDE sketch. Replace any starter text so the sketch contains the complete G-Lab Bot code.

17
Unique Bluetooth Name

Add your initials to the Bot's Bluetooth identity

Review the sketch and make sure it matches the Sketch Library. Then find the line near line 132:

BEFOREDabble.begin("ESP32_Vehicle");
EXAMPLE — INITIALS JRADabble.begin("ESP32_VehicleJRA");

Add your own initials immediately after Vehicle, inside the quotation marks. This creates a unique Bluetooth name and prevents conflicts with other Bots.

18
Upload & Troubleshoot

Upload the sketch

Double-check the selected board and remembered COM port, then click Upload. Wait for the IDE to finish compiling and uploading. If an error appears, read the message and troubleshoot with a Tech Leader—check the data cable, board selection, COM port, library, and ESP32 Core version.

Success signal: Arduino IDE reports that the upload is complete without errors.
DRIVE · STEPS 19–20

Connect, Drive, Then Invent

Your Bot has hardware, power, and code. Now connect your phone or tablet and bring it to life.

19

Connect with the Dabble Gamepad

  1. Disconnect the USB cable.
  2. Carefully install two 18650 batteries with correct polarity.
  3. Switch on the G-Lab Bot.
  4. Open the Dabble App on your phone or tablet.
  5. Select Gamepad.
  6. Tap the connect icon in the upper-right corner.
  7. Select your uniquely named ESP32_Vehicle + initials.
  8. Use the Gamepad to drive—and have fun!
20

Start Modifying Your Bot

The basic G-Lab Bot is only the beginning. Your established rails let you route power to carefully designed add-ons.

MODIFICATION 01 IS READYHeadlights + Tail Lights

Add two white headlights with the Mod5 attachment and two red tail lights using separate 5V and 3.3V positive rails, four 100 Ω resistors, and a shared ground.

Open the Light Modification Guide →
Completed G-Lab Bot ready to drive
You built the circuit. You uploaded the code. Now test, learn, and invent.