Skip to content

PexMor/blerc

Repository files navigation

BLE GATT Remote Control (BLE RC)

The App

A lightweight BLE-based remote control system for Raspberry Pi. Control your Pi via WebBluetooth from any Chrome browser or mobile device.

Features

  • 🔵 BLE GATT Server — Nordic UART Service (NUS) compatible
  • 📱 PWA Webapp — Installable, works offline
  • ⚙️ External Apps — Trigger scripts and REST APIs via BLE
  • 🔧 Configurable — TOML-based configuration

Architecture

┌─────────────────┐         BLE          ┌─────────────────┐
│   Chrome PWA    │ ◄──────────────────► │   Raspberry Pi  │
│   (WebBluetooth)│                      │   (blerc)       │
└─────────────────┘                      └─────────────────┘
                                                  │
                                                  ▼
                                          ┌───────────────┐
                                          │ External Apps │
                                          │ - CLI scripts │
                                          │ - REST APIs   │
                                          └───────────────┘

Quick Start

1. Build

# Rust binary (cross-compile for Pi)
cd blerc && make build

# Webapp
cd webapp && yarn install && yarn build

2. Configure

mkdir -p ~/.config/blerc
cp config/config.example.toml ~/.config/blerc/config.toml

3. Run

./blerc --debug

4. Connect

Open the webapp in Chrome and click "Scan & Connect".

Documentation

Document Description
docs/CONFIGURATION.md Configuration reference
docs/PROTOCOL.md BLE command protocol
docs/DEVELOPMENT.md Building & deployment guide
docs/TROUBLESHOOTING.md Troubleshooting & security
docs/dep_versions.md Dependency versions

Requirements

  • Pi: Raspberry Pi 3B+, BlueZ 5.50+, RPi OS Bullseye+
  • Dev: Rust 1.83+, Node.js 18+, Docker (for cross-compilation)

License

MIT