Open hardware · In active development

The pickleball machine that's actually yours.

Smart machines cost $1,900+ and lock every drill behind their cloud. RallAIMate is different: an ESP32 brain, a fully open REST + WebSocket API, and a web-first drill designer — no subscription, no app store, no lock-in. Ever.

~$595target build cost, all-in
5 chindependent motor channels
$0/mosubscription. Forever.
100%open API & local-first
RallAIMate machine concept render — dark tower machine with blue LED accents and a hopper of pickleballs
The Machine

Meet the concept.

Dark chassis, blue LED accent lines, an open hopper, and dual-wheel drive — the long-term design target for the retrofitted machine. Full concept sheet below, honest Phase 1 numbers beneath it.

RallAIMate concept sheet — machine renders from front, side, rear, and top with feature callouts: AI-powered intelligence, dual motors, app control, 120-ball capacity, spin control, elevation range, and battery life

Concept target vs. Phase 1 hardware — the honest sheet.

The render above is where the platform is headed. Day one runs on a stock donor machine with an ESP32 swapped in — and we publish the real numbers, because that's the whole point of an open build.

Spec Concept target Phase 1 (stock donor + ESP32)
Ball capacity 120 balls 50 balls — the donor's physical hopper
Ball speed up to ~75 mph ~20–37 mph on stock motors; brushless upgrade is a later stretch
Spin control ±9 continuous levels pending teardown — depends on whether the wheels are independently driven
Elevation 20–60°, motorized 20–60°, motorized — confirmed donor spec, real on day one
Battery life 6–8 hrs 1–2 hrs — stock pack, per the listing
Mobility all-terrain wheels stationary — smooth surfaces; Mecanum base is Phase 4
App, stats & AI coaching full app suite raw REST + WebSocket control — web client is Phase 3, vision is Phase 5

Phase 1's win condition, stated plainly: build our own brain for a dumb machine and prove full programmatic control. Everything else on the poster is a later phase — and every phase ships its real numbers.

Training Library

Every drill, on video.
Machine settings included.

Each session ships as a video walkthrough plus the exact drill file that produced it. Watch the drill, tap once, and your machine runs the identical feed — same speed, same spin, same placement.

Featured Session

The 100-Ball Third-Shot Drop Ladder

Alternating cross-court targets, speed stepping up every 20 balls, topspin bias increasing each round. The drill file that runs it is 14 lines of JSON.

The library grows with the build — every prototype session is being recorded from day one, doubling as the training dataset for the computer-vision phase. Follow the build to catch each drop.

The Technology

Serious engineering, zero black boxes.

Commercial "smart" machines hide a cheap microcontroller behind a locked app. RallAIMate rips that out and rebuilds the entire control stack in the open — every motor, every message, every line of firmware.

The Brain

An ESP32 runs the whole machine.

The stock control board comes out. In goes a dual-core ESP32 driving five independent channels — with hard-realtime safety where it counts.

  • Two throw wheels with independent speed control — the speed differential is the spin control
  • Ball feed, horizontal oscillation, and vertical elevation on separate channels
  • Hardware e-stop on an interrupt line — sub-millisecond cutoff, no software in the loop
  • Over-the-air firmware updates: flash new behavior from the couch, not the bench
channel map — firmware v0.x
ESP32 dual-core · WiFi · RTOS wheel A pwm wheel B pwm feed motor oscillation elevation e-stop IRQ REST + WebSocket 24V → buck → 3.3V
The API

Every drill is an open JSON file.

REST for commands, WebSocket for live telemetry. If you can write JSON, you can program the machine — from a browser, a script, a Raspberry Pi, or anything else on your network. No cloud round-trip. No account. It works in a garage with no internet at all.

  • Drills are portable files — share them, version them, generate them programmatically
  • Live telemetry stream: wheel RPM, feed count, battery, machine state
  • Local-first by design: your network, your data, your machine
third-shot-drop-ladder.drill.json
// one step of a drill — that's the whole schema
{
  "position":    "cross-court-left",
  "speed":       34,          // mph
  "spinTop":     1.00,        // wheel A throttle
  "spinBottom":  0.62,        // wheel B → topspin
  "elevation":   12,          // degrees
  "intervalSec": 2.5
}

# run it from anywhere on your network
curl -X POST http://rallaimate.local/drill \
     -d @third-shot-drop-ladder.drill.json
Spin Physics

Spin is a number, not a knob.

Two counter-rotating wheels grip the ball. Run them at the same speed and the ball flies flat. Run the top wheel faster and you get topspin; bottom faster, backspin. If the donor's wheels are independently driven — the first thing the teardown will confirm — spin becomes a continuous, scriptable variable, and drills can morph spin ball-by-ball.

  • Continuous spin spectrum, not 3 preset modes
  • Ramp spin mid-drill to train reading ball flight
  • Honest engineering: ball speed caps on ball physics, not marketing horsepower
dual-wheel differential
wheel A 4200 rpm wheel B 2600 rpm Δ 1600 rpm = heavy topspin
Mobility · Roadmap

A machine that takes its position.

The mobility base rides on Mecanum wheels — four independently driven rollers that let the machine strafe sideways, glide diagonally, or rotate in place. Between drill steps it repositions itself to preset court spots, so one drill can feed from the left sideline, the center, and the right without you touching it.

  • Omnidirectional Mecanum drive — built for smooth court and garage surfaces
  • Preset positions callable from the same drill JSON
  • Low-slung battery ballast counters launcher recoil
mecanum kinematics
pos: left pos: right strafe — no turning radius
Computer Vision · Roadmap

Your returns, measured — locally.

A fixed camera and an OpenCV pipeline map every one of your return shots to real court coordinates: where it bounced, how fast it traveled. After each session you get a placement heatmap scored against the target zone the machine was feeding — a closed training loop, running entirely on local hardware.

  • Homography transform: camera pixels → true court coordinates
  • Bounce detection + frame-displacement speed estimates
  • No cloud upload, no per-minute video pricing — your footage stays yours
  • Pluggable analysis layer: swap in commercial match-analysis APIs if you ever want them
session heatmap — returns vs target
target zone in-zone: 71% avg return: 31 mph balls: 100 session 014
Why Open

Own the machine. Own the data.
Own the roadmap.

Every other machine on the market is a rental of its own features. RallAIMate is built on three non-negotiables.

Open API, open firmware

The full REST/WebSocket spec and firmware are yours to read, fork, and extend. Build your own client. Script drills in Python. Wire it into anything.

Local-first, no lock-in

The machine runs on your WiFi — or its own access point with no internet at all. No account, no cloud dependency, no feature paywalled next quarter.

Hackable by design

Documented wiring, 3D-printable parts, a published BOM. Upgrade motors, add sensors, port it to a tennis or table-tennis donor — the platform is the product.

The Market Gap

Smart-machine training. Dumb-machine price. Open everything.

The market splits into cheap launchers that just spit balls, and $1,900+ app machines that rent you your own drills. Nothing is open — at any price.

Basic launchers "Smart" machines RallAIMate
Typical price $300–900 $1,900–3,900 ~$595 target
Programmable drills ✕ remote only via locked app ✓ open JSON files
Independent spin control ✕ or presets ✓ continuous, scriptable
Open API ✕ closed ecosystem ✓ REST + WebSocket
Works without cloud ✓ (no smarts) ✕ app + account ✓ fully local
Subscription often, for full features never
User-repairable / moddable ✕ warranty-voiding ✓ that's the point
Build Roadmap

Built in public, phase by phase.

Every phase is documented — wiring photos, firmware commits, drill session videos, and the mistakes included.

PHASE 1 In Progress

Teardown & ESP32 Swap

Gut the donor machine's stock board, wire in the ESP32 brain, bench-test all five motor channels with a hardware e-stop.

PHASE 2 Next

Open Firmware & API

REST + WebSocket control layer, drill JSON schema, OTA updates. Machine-agnostic — the same firmware will drive future sports.

PHASE 3 Next

Web Drill Designer

Court-diagram UI: drop pins, sequence shots, save and share drills. Live control panel with manual override.

PHASE 4 Roadmap

Mecanum Mobility Base

Omnidirectional drive: the machine repositions itself to preset court spots between drill steps.

PHASE 5 Roadmap

Vision Closed Loop

Fixed-camera OpenCV pipeline: return placement heatmaps and speed measurement, processed locally.

PHASE 6 Roadmap

Multi-Sport Platform

Port the firmware to a table-tennis robot donor — same API, different motor scaling. One platform, every racquet sport.

Follow the Build

Be there when it serves its first ball.

Get the build log, new training videos, firmware releases, and the open drill library as they drop. No spam — just the machine coming to life.

Open hardware project · in active development · documented end to end