Skip to content
All robotsResearch & toolsTrail
RESEARCH & TOOLS / LINE-FOLLOWER LAYOUT

TrailFollow the path from idea to understanding.

Trail is a teaching layout for a small two-wheel robot with downward-facing sensors. Explore its circuit and drive behavior, then adapt the included range-based stop controller as a virtual API exercise.

Includes assembly, starter wiring and executable virtual JavaScript.
ASSEMBLY PREVIEW/LINE
Trail · Line-follower layout concept illustration; the 3D preview uses the actual preset geometry
Static illustration · loading 3D
Orbit the actual starter assembly. Open the workbench to edit or run it.
16components
32starter connections
1.25 kgestimated component mass
ESP32-C3control platform
Trail · Line-follower layout, an illustrated research & tools assemblyConcept illustration · inspect actual geometry above.
A COMPLETE STARTING POINT

Get to know
what's inside.

A two-wheel teaching robot with a downward sensor layout. All 16 components and 32 starter connections remain editable in your own project.

Robotics educationDownward sensor layoutsSmall drive systems
View the included component types
  • Rover chassis
  • 2S battery · 2.2 Ah
  • 5 V buck regulator
  • ESP32-C3 compact · virtual controller
  • Emoji OLED display
  • Dual H-bridge
  • Geared DC motor · 35:1
  • Rubber wheel · 90 mm
  • Ball caster
  • Forward range sensor
  • 6-axis IMU
  • Wheel encoder
  • Line-following array · 8 channels
YOUR FIRST THREE EXPERIMENTS

Build understanding.
One change at a time.

Use the starting assembly to ask better questions about your design. Save a copy, change a parameter and compare what happens.

01

Inspect the design

Find the downward sensor positions and inspect their circuit connections.

02

Try a change

Run the supplied range-based stop controller and adjust its threshold.

03

Compare and learn

Compare the ESP32-C3 layout with the ESP32 rover starter.

line-follower.jsVIRTUAL API
function step(robot) {
  robot.drive(0, 0);
  if (robot.brownout || robot.battery.voltage < 6.25) { robot.display('🪫'); return; }
  const range = robot.sensors.range;
  if (!Number.isFinite(range)) { robot.display('⚠️'); return; }
  const obstacle = range < 0.65;
  robot.drive(obstacle ? -0.3 : 0.35, obstacle ? 0.35 : 0.35);
  robot.display(obstacle ? '🤔' : '😊');
}

The full, editable starter script is included in the workbench.

KNOW WHAT YOU'RE TESTING

Differential-drive simulation

Working differential drive and range-based stop controller. Reflectance and painted-line detection are not modeled.

  • Editable 3D assembly, wiring and code
  • Connection and power diagnostics
  • Generic, uncalibrated component estimates
Read the simulation and fidelity guide

This is a virtual JavaScript environment. It does not emulate ESP-IDF, Arduino firmware or a manufacturer's exact hardware.

KEEP EXPLORING

Another way to build.

View all 16 robots
Research & tools

Lookout · Camera rig

An anchored pan/tilt-style camera, power and control assembly.

ESP32-S3 + AI moduleKinematic motion preview
Research & tools

Lab · Research rover

A research platform with a LiDAR mast and camera.

Virtual controller + AIDifferential-drive simulation
Emoji companions

Pixel · ESP32 OLED

Compact face, display and expressive servo with 3.3 V GPIO aliases.

ESP32 DevKitExpression & servo preview
FROM AN IDEA TO AN ASSEMBLY

Make Trail your own.

Open the template, inspect the wiring and run its first behavior.

Open Trail in the workbench