How We Built SPARSH

SPARSH and RANG SAATHI didn't work the first time, or the second. We documented every failure and every fix. This page is the engineering story behind the project.

Bill of Materials

ComponentDeviceEst. Cost (₹)
Graphics Tablet (Wacom One)SRIJAN3,500
Aluminium Frame & RailsVISTAAR2,500
NEMA 17 Stepper Motors (×2)VISTAAR800
A4988 Motor Drivers (×2)VISTAAR200
Arduino UnoVISTAAR500
SG90 ServoVISTAAR100
GT2 Timing Belts & PulleysVISTAAR400
Power Supply (12V 5A)VISTAAR350
Rotating Platform & BearingRANG SAATHI600
28BYJ-48 Stepper MotorRANG SAATHI150
Foot Pedal SwitchRANG SAATHI200
Palette Tray (3D Printed)RANG SAATHI300
Arduino NanoRANG SAATHI280
Wiring, Connectors, Misc.All500
Laptop (existing)SPARSH ENGINE
Total~₹12,880

One IMFPA painting can sell for ₹20,000 to several lakhs — meaning one painting can pay for the whole system.

Software

Python SPARSH Engine

~600

lines of code, runs on a laptop

VISTAAR Firmware

~250

lines of Arduino C

RANG SAATHI Firmware

~60

lines of Arduino C

All open source. NumPy for geometric helpers. No AI inside either device.

Reliability Testing

VISTAAR Tests

  • 5 repeated drawings — 4 clean, 1 required minor fix

RANG SAATHI Tests

  • 100 continuous pedal presses — returned to home position accurately
  • Imbalance test — one cup full, one empty — rotation remained stable
  • Power-loss recovery — palette remembered position after restart
  • Bump test — mechanical lock held position under physical disturbance
  • 1-hour sustained session — no drift, no overheating

Engineering Challenges We Faced

Belt Tension Drift

The GT2 belts stretched after extended use, causing position errors. We added tensioner screws and documented a calibration routine.

Stroke Smoothing Without Lag

Early smoothing algorithms added visible delay between input and robot motion. We rewrote the filter to use a sliding window that predicts ahead.

Palette Mass Balance

Uneven water levels made RANG SAATHI wobble during rotation. We placed the two water cups 180° apart and specified fill levels.

Pen Pressure Inconsistency

The marker occasionally lifted too high or pressed too hard. We tuned the servo range and added a small spring damper.

Serial Communication Drops

Long drawing sessions sometimes lost connection between laptop and Arduino. We added handshaking and auto-reconnect in the Python code.

Want the Full Technical Detail?

Download our complete WRO 2026 project report with circuit diagrams, code documentation, and test results.

Download Project Report (PDF) [Placeholder]