HephasBot is a modern, browser-based control interface for robotic arms, specifically designed for the Hephas ecosystem. Built with Next.js and WebSerial, it allows you to connect to, calibrate, and control robots directly from Chrome or Edge capabilities without installing complex native drivers.
- 🔌 Browser-Native Control: Connect to robots directly using the WebSerial API. No backend servers or native drivers required for basic operation.
- 🕹️ Gamepad Support: Plug-and-play support for gamepads (Xbox, PlayStation, etc.) with a built-in visualizer.
- 🤖 Multi-Robot Fleet: Connect and manage multiple robots simultaneously.
- Leader-Follower Sync: Control multiple robots in sync with a single input source.
- 🔧 Built-in Calibration: Guided calibration wizards to set joint limits and optimize hardware performance.
- 📼 Record & Playback: Record joint trajectories and replay them with precision.
- 💻 Terminal Integration: Embedded xterm.js terminal for direct debugging and log monitoring.
- ⌨️ Visual Keyboard: On-screen accessibility controls.
- ⚡ Modern UI: sleek, responsive dark-mode interface built with Shadcn/UI and Tailwind CSS v4.
- Framework: Next.js 15+ (App Router)
- Styling: Tailwind CSS v4
- Components: Shadcn/UI
- State Management: React Context + Hooks
- Hardware Interface: WebSerial API
Go to www.hephasbot.com to try it out. If you want to clone it read below.
- Node.js: v18+ recommended
- Bun: This project uses Bun for package management and scripts.
- Browser: Chrome, Edge, or Opera (any browser with WebSerial support).
-
Clone the repository:
git clone https://github.com/Adityaki37/hephasbot.git cd hephasbot -
Install dependencies:
bun install
-
Configure environment variables: Create
.env.localfrom.env.local.example, then fill inNEXT_PUBLIC_CONVEX_URL,WORKOS_CLIENT_ID,WORKOS_API_KEY, andJWT_SECRET_KEYbefore starting the app. -
Run the App:
bun run dev
Start the development server:
bun run devOpen http://localhost:3000 in your browser.
- Connect your Hephas robot (or compatible STS3215/ESP32 based arm) via USB.
- Click "Connect Robot" in the Command Center.
- Select the correct COM port from the browser popup.
- Once connected, the robot status will change to "Online".
- Sliders: Adjust individual joint angles directly.
- Gamepad: Connect a controller and press any button to activate. Use joysticks for intuitive control.
- Keyboard:
W/S: Pitch/ForwardA/D: Rotate BaseArrow Keys: Fine adjustments
- Terminal: Use the integrated terminal for lower-level debugging logs.
If the robot joints are not mapped correctly:
- Click "Start Calibration".
- Follow the on-screen prompts to move joints to their limits.
- Click "Finish" to save the new calibration ranges to the robot's EEPROM (if supported) or local session.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.