Control remoto por Bluetooth para tu cámara Insta360 X5 desde un Hammerhead Karoo 2.
✨ Control Remoto BLE
- Conectar/desconectar a tu cámara Insta360 X5 por Bluetooth Low Energy
- Grabar video remotamente desde el Karoo
- Capturar fotos con un solo toque
- Marcar highlights en tiempo real
🎥 Integración Nativa Karoo
- Data Fields personalizados en el display del Karoo
- Monitoreo de batería en tiempo real
- Estado de conexión visible
- Auto-grabación sincronizada con trayectos
📺 UI/UX Intuitiva
- Indicador visual de grabación (overlay en pantalla)
- Botones de control grandes y accesibles
- Información en tiempo real del estado de la cámara
⚙️ DevOps Integrado
- GitHub Actions para compilación automática de APK
- Artefactos descargables en cada push
- Comentarios automáticos en PRs
- Android 8.0+ (API 26+)
- Hammerhead Karoo 2 (con soporte BLE)
- Insta360 X5 o compatible
- Permisos de Bluetooth activados en el dispositivo
BLUETOOTH- Conexión BLEBLUETOOTH_ADMIN- Control de BluetoothBLUETOOTH_SCAN- Escaneo de dispositivos (Android 12+)BLUETOOTH_CONNECT- Conexión a dispositivos (Android 12+)SYSTEM_ALERT_WINDOW- Overlay de grabación
- Ve a Releases
- Descarga el APK más reciente
- Instala en tu Karoo 2
- Android Studio Flamingo o superior
- JDK 11+
- Gradle 8.0+
# Clonar repositorio
git clone https://github.com/tueresmas/insta360.git
cd insta360
# Compilar APK Debug
./gradlew assembleDebug
# Compilar APK Release (sin firma)
./gradlew assembleReleaseLos APK generados estarán en:
- Debug:
app/build/outputs/apk/debug/app-debug.apk - Release:
app/build/outputs/apk/release/app-release-unsigned.apk
# Debug
./gradlew installDebug
# O manual
adb install app/build/outputs/apk/debug/app-debug.apkTu dirección MAC actual es: F0:23:AE:18:C0:CD (Insta360 X5)
Si necesitas actualizar la dirección MAC:
-
Opción A: Cambiar en el código (recomendado)
// Archivo: app/src/main/kotlin/com/tueresmas/insta360karoo/ui/MainActivity.kt // Línea 166 val cameraMAC = "F0:23:AE:18:C0:CD" // Cambia aquí
-
Opción B: Encontrar MAC de tu cámara
- En la cámara: Menú → Bluetooth → Ver información
- O usar app: nRF Connect
- O terminal:
adb shell settings get Bluetooth
- En Hammerhead Karoo 2: Bluetooth → Escanear dispositivos
- Selecciona X5 6HFRW5
- Confirma emparejamiento en ambos dispositivos
- Abre Insta360 Karoo Remote en el Karoo 2
- Verás el estado de conexión en la pantalla
- Tap en botón "Conectar Cámara"
- Espera a que se establezca la conexión (5-10 segundos)
- El estado cambiará a "CONECTADO" (verde)
| Botón | Función |
|---|---|
| 🔴 REC | Iniciar/Detener grabación |
| 📷 FOTO | Capturar foto |
| ⭐ DESTAC. | Marcar highlight en video |
La app añade dos campos personalizados en el display:
- Estado de Cámara: Muestra REC/STBY/DISC
- Batería: Porcentaje de batería en tiempo real
Solución:
- Verifica que la MAC sea correcta:
F0:23:AE:18:C0:CD - Asegúrate de que Bluetooth esté activado en ambos dispositivos
- Reinicia la app y la cámara
- Desempareja y vuelve a emparejar
Solución:
- Ve a Configuración → Aplicaciones → Insta360 Karoo Remote → Permisos
- Activa todos los permisos de Bluetooth
- Reinicia la app
Solución:
- Ve a Configuración → Aplicaciones especiales → Permiso para mostrar sobre otras apps
- Activa Insta360 Karoo Remote
- Reinicia la app
Solución:
- Asegúrate de que la cámara esté encendida
- Verifica que esté emparejada correctamente
- Reinicia la conexión BLE
insta360/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── kotlin/
│ │ │ │ └── com/tueresmas/insta360karoo/
│ │ │ │ ├── ui/
│ │ │ │ │ └── MainActivity.kt # UI principal
│ │ │ │ ├── service/
│ │ │ │ │ ├── Insta360BluetoothService.kt # Servicio BLE
│ │ │ │ │ └── RecordingOverlayService.kt # Overlay grabación
│ │ │ │ ├── karoo/
│ │ │ │ │ ├── CameraStateDataField.kt # Data Field estado
│ │ │ │ │ ├── CameraBatteryDataField.kt # Data Field batería
│ │ │ │ │ └── RideRecordingListener.kt # Listener eventos
│ │ │ │ └── utils/
│ │ │ └── res/
│ │ │ ├── layout/
│ │ │ │ └── activity_main.xml
│ │ │ ├── drawable/
│ │ │ └── values/
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ └── test/
│ └── build.gradle
├── .github/
│ └── workflows/
│ └── build.yml # GitHub Actions CI/CD
├── gradle.properties
├── settings.gradle
└── README.md
- Lenguaje: Kotlin
- Minimo SDK: Android 8.0 (API 26)
- Target SDK: Android 14 (API 34)
- Build System: Gradle 8.0+
- BLE: Android Bluetooth Low Energy API
- Logging: Timber
- Karoo SDK: Hammerhead Karoo 2 Extension SDK
// Karoo SDK
implementation 'com.hammerhead.sdk:karoo-ext:1.1.0'
// Kotlin
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.9.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1'
// Android
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.core:core:1.10.1'
// Logging
implementation 'com.jakewharton.timber:timber:5.0.1'Si cambias de cámara, actualiza la MAC en MainActivity.kt:
private fun connectToCamera() {
// Cambiar aquí la dirección MAC
val cameraMAC = "F0:23:AE:18:C0:CD" // ← NUEVA MAC
bluetoothService?.connectToCamera(cameraMAC)
Toast.makeText(this, "Conectando a cámara...", Toast.LENGTH_SHORT).show()
}Luego recompila:
./gradlew assembleDebugEste proyecto incluye un workflow automático en GitHub Actions que:
✅ Compila el APK en cada push
✅ Genera artefactos descargables
✅ Ejecuta tests automáticos
✅ Comenta en PRs con el estado del build
Ver builds: Ve a Actions
Este proyecto está bajo licencia MIT. Ver LICENSE para más detalles.
tueresmas - GitHub
¡Las contribuciones son bienvenidas! Para cambios importantes:
- Fork el proyecto
- Crea una rama (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto es no oficial y no está afiliado con Insta360 o Hammerhead.
Úsalo bajo tu propio riesgo. El autor no se responsabiliza por:
- Daños al dispositivo o cámara
- Pérdida de datos
- Mal funcionamiento de la aplicación
- 📧 Email: issues en GitHub
- 💬 Discusiones: GitHub Discussions
- 🐛 Reportar bug: Nueva Issue
Última actualización: 11 de julio de 2026
Versión: 1.0.0
¡Disfruta controlando tu Insta360 desde tu Karoo 2! 🚴📹