v3.1.0 - Gripper + ESP32 Core v3.x
v3.1.0
New Features
- Gripper with two servo motors (MG996R)
- Servo Left: GPIO 13, Servo Right: GPIO 33
- Web interface buttons: Open (180) / Close (90)
- REST API: /api/command?cmd=gripper_open / gripper_close
- Works independently in any robot state
ESP32 Arduino Core v3.x Compatibility
- Servo control via native LEDC PWM (pin-based API: ledcAttach/ledcWrite)
- Motor test rewritten for the new Timer API
- No external Servo library needed
New Test Sketches
- test_servo_gripper - both gripper servos: 0 -> 180 -> 0, open/close cycle
- test_gyro - gyroscope/accelerometer with chip auto-detection (MPU6050/MPU6500/MPU9250 by WHO_AM_I)
- test_line_pins - line sensor pin diagnostic (raw values, stuck-pin detection)
- test_motor_simple - minimal TMC2209 stepper check (30 lines, no timers)
Fixes
- Gyro test no longer hard-fails on MPU6500 (WHO_AM_I 0x70) - common on MPU6050-labeled modules
- Correct temperature formula per chip
- Motor test: speed now actually controls step frequency
- defines.h pinout aligned with README
- Test sketches moved to their own folders (Arduino IDE compatibility)
Hardware Notes
- TMC2209: EN is active-LOW; VIO (3.3V) required; set Vref via potentiometer
- GPIO 34-39 are input-only without internal pull-ups (line sensor wiring note)
Pinout (current)
| Component | GPIO |
|---|---|
| Motor1 DIR/STEP | 27 / 14 |
| Motor2 DIR/STEP | 25 / 26 |
| Motors ENABLE | 12 |
| Servo Left / Right | 13 / 33 |
| I2C SDA/SCL (MPU, VL53L0X) | 21 / 22 |
| Line sensors S1-S5 | 34 / 35 / 36 / 39 / 32 |
Full diff: v3.0.0...v3.1.0