Skip to main content
Gadget Panda

Gadget Panda

One Python host. Three toys. Infinite maker projects.

IDEA → CODE → PROTOTYPE → COMMUNITY

Open-source runtime for makers who want raw sensors and real control — not a locked wellness app.

PyPI Python License Platform

pip install 'gadgetpanda[ui]'

Docs · Protocol · PyPI · Issues


Devices

Device Link You get
1 RING503PANDA Bluetooth LE PPG · IMU · HR/HRV · temp · SpO₂ · sport/health · battery
2 SoftDog (X1) Bluetooth LE Actions · move/hold · program queue · web remote
3 FLOW-UFO Wi‑Fi UDP + RTSP Stick loop · takeoff/land · FPV remote · Wi‑Fi helpers
Ring UI Dog UI Drone UI
:8765 :8766 :8767
gadgetpanda ring ui --demo
gadgetpanda dog ui --demo
gadgetpanda drone ui --demo

Why Gadget Panda

  • Host-side Python — scan, connect, stream, and command from a laptop or Pi
  • Realtime UIs — included with [ui] (black / red / gold)
  • Fine-grained APIs — callbacks, CLI shells, optional MQTT
  • MIT — fork it, ship it, teach with it

Quick start — Ring

import asyncio
from gadgetpanda import Ring

async def main():
    ring = await Ring.find()
    ring.on("heart_rate", lambda s: print("HR", s.bpm))
    ring.on("imu", lambda samples: print(samples[0] if samples else ""))
    ring.on("ppg", lambda samples: print("ppg", len(samples)))
    async with ring:
        await ring.set_raw_enabled(True)
        await asyncio.Event().wait()

asyncio.run(main())
gadgetpanda ring scan
gadgetpanda ring live
gadgetpanda ring ppg
gadgetpanda ring ui --mode ppg

Modes: all · BLE HR · PPG+HR · vitals · motion · activity
Docs: concept · protocol


SoftDog

gadgetpanda dog scan
gadgetpanda dog connect <addr> --shell
gadgetpanda dog action <addr> sit_down
gadgetpanda dog ui <addr>          # React remote @ :8766
gadgetpanda dog ui --demo
from gadgetpanda.dog import Dog, Action, Move

async with Dog(address) as dog:
    await dog.action(Action.SIT_DOWN)
    await dog.hold_move(Move.FORWARD, seconds=1.0)
    await dog.run_program([Action.JUMP, Move.TURN_LEFT, Action.VOICE])

Docs: dog concept · dog protocol


FLOW-UFO

gadgetpanda drone wifi join "FLOW-UFO-xxxx"
gadgetpanda drone scan
gadgetpanda drone ui --wifi "FLOW-UFO-xxxx" --model flow
gadgetpanda drone ui --demo
from gadgetpanda.drone import Drone

async with Drone("192.168.1.1", model="flow") as drone:
    await drone.command("takeoff")
    await drone.hold_stick("forward", seconds=1.5)
    await drone.command("land")

FPV remote: http://127.0.0.1:8767 (needs craft Wi‑Fi + ffmpeg via [ui])
Docs: drone concept · drone protocol


Install

pip install gadgetpanda           # core (BLE + drone protocol)
pip install 'gadgetpanda[ui]'     # dashboards + FPV
pip install 'gadgetpanda[mqtt]'   # MQTT bridge

From source:

git clone https://github.com/gadgetpanda/gadgetpanda.git
cd gadgetpanda
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[ui,dev]"

Needs: Python 3.11+ · real BLE / Wi‑Fi hardware
Docker (Linux): host network + BlueZ — docs/docker.md


CLI map

Namespace Highlights
gadgetpanda ring … scan live ppg hr test user restore ui
gadgetpanda dog … scan connect action move ui
gadgetpanda drone … wifi scan connect stick cmd ui
gadgetpanda license … optional soft entitlements

Soft license (optional)

Honor-system feature keys. Soft by default — no key means open.
See docs/license.md.

gadgetpanda license features
gadgetpanda license activate gp_live_…
gadgetpanda license status

MIT · Small ideas. Bigger possibilities.

github.com/gadgetpanda · pypi.org/project/gadgetpanda

Metadata

Release files for gadgetpanda 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gadgetpanda 0.1.4
File Size Uploaded
gadgetpanda-0.1.4.tar.gz 535.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gadgetpanda 0.1.4
File Interpreter ABI Platform
gadgetpanda-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / gadgetpanda-0.1.4.tar.gz

Download URL gadgetpanda-0.1.4.tar.gz
Size 535.8 kB
Tags Source
SHA-256 checksum
How to use checksums
83a9628e521891188b1afc63e6a221e43ab6f316f8bbeaeb81bb6f9eaba25621
BLAKE2b-256 checksum
How to use checksums
dbc24f5fbc1a5c4d085463ddc735e270a75cd126a1fd132c85b878d1cced7368
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / gadgetpanda-0.1.4-py3-none-any.whl

Download URL gadgetpanda-0.1.4-py3-none-any.whl
Size 513.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab2f2000f2aa0cfa4118f21adace8fff7b50c6c55dd6f8a7efbdfe3883c6ebff
BLAKE2b-256 checksum
How to use checksums
5f175c8fae41fa77935391695ebaac233525b5611cc31212b106bde65913d020
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page