[Deprecated] - This project is currently deprecated and will not recieve updates. This project may move back out of this stage, but at this time its unknown.
A modern, cross-platform desktop application designed specifically for FRC (FIRST Robotics Competition) teams. OpenPUC provides comprehensive documentation, robot control capabilities, and development tools all in one unified interface.
- Built-in Documentation: Comprehensive code examples and guides for FRC programming
- External Search: Search across WPILib docs, Chief Delphi, GitHub, and other FRC resources
- Code Copy: One-click code copying with syntax highlighting
- Search & Filter: Real-time search across all documentation with tag-based filtering
- Category Organization: Well-organized content covering motors, sensors, drivetrain, autonomous, and more
- Real-time Robot Connection: Connect to and monitor FRC robots via multiple protocols
- Robot State Management: Enable/disable robot with visual feedback
- Mode Switching: Switch between Teleop, Autonomous, and Test modes
- Live Telemetry: Monitor battery voltage, signal strength, CAN utilization, and bandwidth
- Emergency Stop: Quick emergency stop functionality for safety
- Gamepad Integration: Full support for Xbox and PlayStation controllers
- Real-time Input Display: Live visualization of controller axes and button states
- Deadzone Configuration: Adjustable deadzone settings for precise control
- Vibration Testing: Test controller haptic feedback
- Auto-updater: Automatic updates to keep the application current
- Team Configuration: Store and manage team number and connection settings
- Connection Monitoring: Multi-address robot ping with automatic fallback
- Live Logging: Real-time robot communication and system status logging
Download the latest file corresponding to your operating system here.
- Node.js 16.x or higher
- npm or yarn package manager
-
Clone the repository:
git clone https://github.com/your-username/OpenPUC.git cd OpenPUC
-
Navigate to the client directory:
cd client
-
Install dependencies:
npm install
-
Start the application:
npm start
- Launch OpenPUC
- Configure your FRC team number in the Settings section
- The application will automatically attempt to connect to your robot using multiple addresses
OpenPUC attempts connection using multiple methods:
- mDNS:
roboRIO-####-FRC.local
- Static IP:
10.TE.AM.2
- USB:
172.22.11.2
- Alternative mDNS:
roborio-####-frc.local
- Browse built-in documentation by category
- Use the search bar for quick code lookup
- Click the copy button to copy code examples
- Switch to external search for broader FRC resources
- Connect your controller (Xbox or PlayStation)
- Select it from the controller dropdown
- Adjust deadzone settings as needed
- Use the vibration test to verify functionality
- Frontend: Electron with HTML/CSS/JavaScript
- Backend: Node.js with Electron main process
- Communication: FRC 2024 protocol implementation
- Controller: Native gamepad API integration
- FRC 2024 protocol implementation
- UDP-based robot communication
- Real-time telemetry data parsing
- Robot state synchronization
client/
├── index.html # Main application interface
├── main.js # Electron main process
├── frc-protocol.js # FRC protocol implementation
├── controller-manager.js # Controller input handling
├── docs.json # Built-in documentation data
└── package.json # Application configuration
To build the application for distribution:
npm run build
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly with actual FRC hardware when possible
- Submit a pull request
To add new documentation entries, edit docs.json
:
{
"categories": {
"category_name": {
"name": "Display Name",
"items": [
{
"title": "Example Title",
"description": "What this code does",
"code": "// Your code example here",
"language": "java",
"tags": ["tag1", "tag2"]
}
]
}
}
}
- Windows 10/11
- Linux (Ubuntu 18.04+, other distributions)
- roboRIO running FRC 2024 robot code
- Network connectivity (WiFi, USB, or Ethernet)
- Standard FRC networking configuration
- Xbox One/Series controllers
- PlayStation 4/5 controllers
- Generic controllers with standard gamepad API support
This project is open source and available under the MIT License.
For questions, issues, or contributions:
- Open an issue on GitHub
- Check existing documentation and examples
- Consult FRC programming resources and community forums