AVI · ORIGINAL LEARNING ROBOT FAMILY · EDITION 6

AVI Rover
Build. Predict. Program. Test.

For learners around age 10 with an adult workshop leader. A two-wheel differential-drive robot with a front ball caster, a removable electronics deck and a distance sensor. AVI Arm teaches joint movement; AVI Sense teaches sensing. Their workshop models are supplied separately.

Prototype design: the interactive models and practice course work. The physical robot has not been manufactured or tested. Firmware is supplied for the specified controller; bench validation is required before children use it. This is a proposed engineering design, not a certified toy or a finished commercial kit.

1 · Parts for the first AVI Rover prototype

QuantityPartPurpose
1ESP32-DevKitC V4 with ESP32-WROOM-32EController with Wi-Fi and Bluetooth LE. Use this reference board, not an arbitrary similarly named board.
2Pololu #992, 100:1 Micro Metal Gearmotor LP 6VMatching left and right drives; manufacturer's listed stall current is 0.36 A each at 6 V. Do not intentionally stall them.
1Adafruit TB6612 motor-driver breakoutMotor switching, separate from controller logic.
1Adafruit VL53L0X breakoutFront distance sensing; reference firmware uses Adafruit VL53L0X library.
2 + 1Matched wheels for 3 mm D shafts, approximately 42 mm diameter, plus small ball casterTwo powered wheels and three-point support.
1 eachEnclosed four-AA motor battery holder, regulated USB supply for ESP32, motor power cutoff, appropriately rated fuse, hold-to-enable switch, front bumper switchSeparate motor and logic supplies with common ground; adult checks current protection and switch ratings against the parts.
1 setChassis, motor brackets, nylon standoffs, insulated wiring, M2/M3 fixings and strain reliefMechanical assembly. Check purchased bracket templates and actual clearances; the plate is a starting prototype.

No purchase or physical assembly has been performed. Kit costs depend on supplier and location; no price estimate is claimed.

2 · Chassis and mechanical layout

The proposed chassis is 180 × 130 × 3 mm, with fourteen Ø3.3 mm mounting holes. Put the motors along the left and right sides on a common axle line, the ball caster towards the front, and the sensor above the front edge with a clear view. Put the motor battery low and near the axle. Isolate the boards on standoffs and cover exposed electronics. Avoid pinch points and trailing wires.

Chassis STL in millimetres · Full-size drawing · Editable chassis. The showroom models are enlarged teaching models, not dimensionally complete manufacturing CAD. Check motor bracket, caster and enclosure fit on the first prototype before committing to a batch.

3 · Wiring reference · adult assembly

Disconnect both supplies while wiring. Motor power goes only to driver VM; ESP32 is USB powered. Share the grounds. The driver logic and sensor use 3.3 V. Do not connect the motor battery to an ESP32 GPIO or 3V3 pin. Use the breakout manufacturer's wiring instructions to identify pins.

ConnectionDestination
ESP32 GPIO26Driver AIN1
GPIO27Driver AIN2
GPIO14Driver PWMA
GPIO25Driver BIN1
GPIO33Driver BIN2
GPIO32Driver PWMB
GPIO13Driver STBY
ESP32 3V3Driver VCC and sensor VIN
All logic groundsDriver GND, sensor GND, ESP32 GND, motor battery negative
GPIO21 / GPIO22Sensor SDA / SCL
GPIO23 → momentary enable switch → GNDHold to allow movement; release inhibits it
GPIO18 → normally-open front bumper switch → GNDContact closes switch and stops motion
Motor battery positive → fuse → power cutoff switchDriver VM / Motor+ only
Driver AO1 / AO2Left motor
Driver BO1 / BO2Right motor
ESP32 USB portSeparate regulated USB supply; do not back-feed motor battery into ESP32

The physical motor cutoff must interrupt VM independently of software. The enable button is an additional software interlock, not a substitute for the cutoff. An adult must verify polarity, motor direction, fuse and wiring, sensor readings and all stop conditions with the wheels lifted before floor testing. Disconnect power if anything heats, binds or behaves unexpectedly.

4 · Controller software

Firmware compiled successfully on 17 October 2026 for the reference ESP32 board. This confirms a software build, not physical operation. The supplied 4 MB board configuration uses a larger application partition with no over-the-air updater. Open this folder in PlatformIO and build the avi_rover environment. The source is src/main.cpp. Connect only the ESP32 by USB for programming; keep motor power off. The serial monitor at 115200 baud prints a randomly generated AVI Wi-Fi network, its password, the private controller address and an eight-character controller key. They change on restart. Do not publish them.

The reference controller advertises Bluetooth LE and starts its own password-protected Wi-Fi access point. In the workshop, open “Connect an AVI physical prototype”. Choose Bluetooth pairing in a browser that supports Web Bluetooth, or join the printed robot Wi-Fi network and enter its private address. Enter the controller key locally. Browser and operating-system permissions may be required. This has not been paired to physical hardware here.

Movement uses press-and-hold controls. The browser refreshes a short motion lease while held; releasing, losing focus or stopping ends the heartbeat. The firmware has a separate control task, a maximum 600 ms command lease, stale-sensor checks, an enable input and a bumper input. Forward movement is inhibited below a provisional 200 mm distance threshold. Motor output is capped at 89/255 PWM. These are starting test limits, not measured speed or certified stopping guarantees. Calibrate on the physical build.

5 · AVI control protocol v1

Bluetooth service 4a564901-21ad-4d10-8910-415649000001, read/write characteristic 4a564902-21ad-4d10-8910-415649000001. Read returns protocol and current sequence. Write accepts a 12-byte frame: version byte, operation byte (0 stop / 1 drive), 32-bit controller key, 16-bit increasing sequence, signed 8-bit left/right requests (−100…100), and 16-bit motion lease in milliseconds. Multi-byte fields are little-endian. The browser uses 450 ms leases and a 150 ms refresh interval. Stale sequences are rejected. The same frame is hex-encoded for POST /v1/drive; GET /v1/status reports protocol, sequence, enable, sensor and motor state.

Only the dedicated private robot network is intended. The Wi-Fi HTTP endpoint is not for the public internet. The key stays in browser memory and the prototype, not in cloud lesson prompts. The AI tutor cannot issue physical movement commands. Practice programs and physical press-and-hold controls are deliberately separate.

6 · Six learning challenges

  1. Assemble the frame, wheels, motors, controller, sensor and power module; explain each role.
  2. Predict a left turn from different wheel requests; test with wheels lifted.
  3. Read distance to several targets and explain uncertain readings.
  4. Build a check–move–check program in the virtual course.
  5. Change one variable and record what changes; compare predicted and observed motion.
  6. Test release-to-stop, lost connection, bumper, enable release and sensor failure under adult supervision.

AVI family

AVI Rover: first physical reference design and controller software. AVI Arm: original articulated demonstration with shoulder, elbow and gripper practice controls; physical servo, power and mechanical design remain a next prototype. AVI Sense: an original bench station for target and sensor investigations. No physical Arm or Sense controller is claimed complete.

Manufacturer references

Espressif Bluetooth API · Adafruit motor-driver pinouts · Arduino motor-control concepts. Sources checked 17 October 2026.