# Carrera Hybrid

> Control Carrera HYBRID RC cars (by Sturmkind) via BLE. Use when user wants to drive, steer, control lights, write text with, or reverse-engineer Carrera HYBRID / Sturmkind RC cars over Bluetooth Low Energy. Supports Telegram remote control with inline buttons, MITM proxy for protocol sniffing, and text-drawing via driving paths.

- Skill: `knownasnaffy/carrera-hybrid-4` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add knownasnaffy/carrera-hybrid-4`
- Raw SKILL.md: https://api.skillmd.com/api/skills/knownasnaffy/carrera-hybrid-4/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: knownasnaffy (https://skillmd.com/u/knownasnaffy)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/knownasnaffy/carrera-hybrid-4

---


# Carrera HYBRID BLE Controller

Control Sturmkind Carrera HYBRID RC cars via BLE from any Linux machine with Bluetooth.

## Requirements

- Python 3.10+, `bleak` (BLE), `bless` (MITM proxy)
- Linux with BlueZ and a BLE-capable adapter
- Install: `pip install bleak bless`

## Protocol

20-byte packets sent every ~50ms via Nordic UART TX (`6e400002-b5a3-f393-e0a9-e50e24dcca9e`):

```
BF 0F 00 08 28 00 [GAS] [STEER] 86 00 72 00 02 FF [LIGHT] 00 00 00 00 [CRC8]
```

| Byte | Function | Values |
|------|----------|--------|
| 6 | Gas | `0xDF`=idle, higher=forward (wraps 0xFF→0x00→0x11=max), lower=reverse |
| 7 | Steering | `0x00`=center, `0x01-0x7F`=right, `0x81-0xFF`=left |
| 14 | Light | `0x82`=on, `0x80`=off |
| 19 | CRC-8 | Poly=0x31, Init=0xFF over bytes 0-18 |

## Scripts

### `scripts/carrera_drive.py` — Drive Controller

```bash
# Basic commands
python3 scripts/carrera_drive.py forward [gas] [duration_ms]
python3 scripts/carrera_drive.py back [gas] [duration_ms]
python3 scripts/carrera_drive.py left [gas] [duration_ms]
python3 scripts/carrera_drive.py right [gas] [duration_ms]
python3 scripts/carrera_drive.py spin [gas] [duration_ms]
python3 scripts/carrera_drive.py light_on
python3 scripts/carrera_drive.py light_off
python3 scripts/carrera_drive.py demo
```

- `gas`: 1-50 (default 40)
- `duration_ms`: milliseconds (default 3000)
- Edit `ADDRESS` in script to match your car's BLE address

### Telegram Remote Control

Send inline button messages for interactive control:

```
⬆️ Vorwärts  |  ⬇️ Rückwärts
↩️ Links      |  ➡️ Rechts
🔄 Spin!      |  🏁 Demo
💡 Licht AN   |  🌑 Licht AUS
```

On callback `car_forward`, `car_back`, etc. → run the corresponding `carrera_drive.py` command.

## Calibration

At Gas=20, Steer=80: one full circle ≈ 7100ms. Adjust timing for your surface/car.

## Finding Your Car

```bash
python3 -c "
import asyncio
from bleak import BleakScanner
async def scan():
    devices = await BleakScanner.discover(5)
    for d in devices:
        if 'HYBRID' in (d.name or ''):
            print(f'{d.name} @ {d.address}')
asyncio.run(scan())
"
```

## Protocol Details

See `references/protocol.md` for full reverse-engineering notes and MITM capture analysis.

