currently broken
A professional-grade web application for controlling and monitoring Raspberry Pi GPIO pins with enterprise features.
-
Complete GPIO Control
- GPIO Input/Output
- Hardware & Software PWM
- I2C (6 buses)
- SPI (Multiple buses)
- UART (5 ports)
- PCM Audio
-
Advanced Pin Configuration
- Drive strength (2mA to 16mA)
- Slew rate control
- Hysteresis settings
- Edge detection
-
Enterprise Security
- User authentication with JWT
- Role-based access control (Admin/User)
- Comprehensive audit logging
- Secure password hashing
-
System Monitoring
- Real-time temperature tracking
- CPU usage monitoring
- Memory utilization
- Power management
- Voltage readings
- Clock speeds
- Throttling status
- Raspberry Pi 5 (recommended) or compatible model
- Python 3.x
- Node.js 18.x or later
- npm or yarn
- SQLite3
- Clone the Repository
git clone https://github.com/woodmurderedhat/raspberry-gpio-controller.git cd raspberry-gpio-controller chmod +x install.sh ./install.sh
The install script installs the backend and frontend. But if you want to manually do it, here's a guide:
A. Backend Setup
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Start the backend server
python app.py
B. Frontend Setup
cd frontend
npm install
npm start
-
Default Admin Account
- Username:
admin
- Password:
admin
- Important: Change the password immediately after first login
- Username:
-
Creating Additional Users
- Log in as admin
- Navigate to User Management
- Click "Add User"
- Set username, password, and role (Admin/User)
- Login
- Navigate to http://your-pi-ip:3000
- Enter your credentials
- The system will provide a JWT token for subsequent requests
-
Basic Pin Control
- Select a pin from the grid
- Choose pin mode (Input/Output)
- For output pins: Toggle HIGH/LOW state Set PWM values if applicable
-
Advanced Pin Settings
- Click "Advanced Settings" on any pin
- Configure: Drive strength Slew rate Hysteresis Edge detection
-
Pin Presets
- Save current configuration as preset
- Load presets for quick setup
- Dashboard
- Real-time system metrics
- Temperature readings
- CPU/Memory usage
- Power consumption
- Clock speeds
- Throttling status
- Voltage readings
- View Logs
- Access audit logs from menu
- Filter by: User Action type Pin number Timestamp
JWT_SECRET_KEY=your-secret-key
FLASK_ENV=production
CORS_ORIGIN=http://your-frontend-url
-
Change Default Credentials
- Modify admin password immediately
- Use strong passwords
-
Network Security
- Run behind reverse proxy
- Enable HTTPS
- Restrict to local network
- Use VPN for remote access
-
Access Control
- Use appropriate user roles (Admin/User)
- Limit admin accounts
- Regular access audits
-
Permission Errors
# Add user to gpio group sudo usermod -a -G gpio $USER
-
Connection Issues
- Check if backend is running
- Verify frontend URL in CORS settings
- Ensure correct IP and port configuration
MIT License - see LICENSE file for details
-
Create GitHub issue
-
Documentation: Raspberry GPIO Controller