The pickleball training machine that's actually yours. Open API. Local-first. No subscription, ever.
Commercial machines hide a cheap board behind a locked app. We pull the whole thing apart and rebuild the control stack where you can see it.
Scroll through the build. Concept visualization · scroll or choose a component below.
An ESP32 brain, a REST + WebSocket API, and drills that are just JSON files. It works in a garage with no internet at all.
Built in public, phase by phase. Follow the teardown, the firmware, and the first serve.
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.
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 2 (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 5 |
| App, stats & AI coaching | full app suite | raw REST + WebSocket control — web client is Phase 4, vision is Phase 1 |
Phase 2's win condition, stated plainly: build our own brain for a dumb machine and prove full programmatic control. The roadmap tracks the remaining concept features — and every phase ships its real numbers.
You put in the reps. See what is improving. RallAIMate Vision is a proposed camera-based training tool that turns practice into a map of where your shots land. Start with a phone, prove the feedback is useful, then offer a dedicated camera puck, the open training machine and a complete training bay.
The prototype uses a fixed camera to identify the ball and map detected bounces onto the court. The first goal is reliable placement feedback and a shot log. Speed estimates follow only after validation. Local processing and optional sharing are design goals.
Illustrative interface using synthetic data. This explains the intended experience; it is not a measured result or a working product screenshot.
Two global-shutter cameras in one body: placement, in/out and kitchen faults on both halves from a single clamp-on device. Scroll to take it apart, explore the components, and bring it back together.
Concept render. Lens geometry is still being resolved: on the real unit the two lenses spread 90° apart so each faces one half of the court.
| Version | Form | When | Hardware |
|---|---|---|---|
| v0 | Phone or webcam on a tripod, browser app | Weeks 1–4 | $0 |
| v1 puck | Raspberry Pi 5 + Global Shutter camera, mount for supported fixed positions, Wi‑Fi to the Studio app | Weeks 4–8 | ≈ $265–305 |
| v2 | Compute-module redesign, molded shell. Production BOM target ≤ $150 (assumption) | Pilot / launch | retail $299–349 target |
Vision opens the door. The machine expands it. Win on useful feedback first, then ask players to upgrade the hardware around it.
Your missed backhand reset. Your drop that lands too deep. The return that comes up short. Recreate My Game turns those recurring weaknesses into drills you can repeat in a Training Bay or on court.
Build a personal game profile from player observations, coach notes and supported Vision sessions. We use “game handicap” to mean the weaknesses holding a player back; this is a training profile, not an official handicap or competitive rating.
AI-generated mobile app concept. All screens, examples and improvement messages are illustrative; no app or training outcome is represented as delivered.
Planned role: session controls, glanceable progress and vibration cues. Shot results come from Vision and the connected session; the watch does not independently track ball placement.
AI-generated Apple Watch companion concept. Test connection loss, delayed commands and supported device combinations before release.
Scope note: the current Studio budget covers only the browser-based personalized-drill prototype. Native mobile and Apple Watch apps are a later release with a separate engineering estimate before a date is committed.
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.
Three rotating soft targets at the NVZ line. Consistency under fatigue.
Body-targeted drives at ascending speed. Block, reset, counter.
Alternating spin profiles from independent dual wheels. Learn the flight cues.
Random left-center-right feeds force honest court coverage.
Survive the no-man's-land: low balls at your feet while you advance.
Deep returns into called zones. Session heatmap scores every ball.
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.
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 stock control board comes out. In goes a dual-core ESP32 driving five independent channels — with hard-realtime safety where it counts.
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.
// 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
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.
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.
Every other machine on the market is a rental of its own features. RallAIMate is built on three non-negotiables.
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.
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.
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 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 | ~$795 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 |
Every phase is documented — wiring photos, firmware commits, drill session videos, and the mistakes included.
Starts now on a phone camera (weeks 1–4), then a Pi 5 Global Shutter puck (weeks 4–8). Placement heatmaps first; speed only after validation. Processed locally.
Gut the donor machine's stock board, wire in the ESP32 brain, bench-test all five motor channels with a hardware e-stop.
REST + WebSocket control layer, drill JSON schema, OTA updates. Machine-agnostic — the same firmware will drive future sports.
Court-diagram UI: drop pins, sequence shots, save and share drills. Live control panel with manual override.
Omnidirectional drive: the machine repositions itself to preset court spots between drill steps.
Port the firmware to a table-tennis robot donor — same API, different motor scaling. One platform, every racquet sport.
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