Skip to main content
Back to Hardware
Devices

Register and manage devices

A device is any hardware endpoint connected to Cadreen — a robot, arm, drone, or sensor. Register it, track it, and keep it healthy.

What is a device?

A device is a hardware endpoint connected to Cadreen. It has a position, velocity, battery level, and status. Cadreen tracks all of this in real time.

Devices send telemetry through MQTT. Cadreen receives it, updates the device's state, and checks for faults.

What types of devices work?

Mobile robots

AMRs, AGVs, delivery robots

Industrial arms

Robotic arms, grippers, welders

Drones

UAVs, inspection drones

Sensors

Temperature, vibration, current monitors

Cameras

Visual inspection, quality control

LiDAR

3D mapping, obstacle detection

How do I manage devices?

POST/api/v1/cadreen/devices

Register a new device with Cadreen. Give it an ID and a starting position.

Response
{
"id": "robot-1",
"status": "connected",
"message": "Device added"
}

Example

Example
curl -X POST http://localhost:8080/api/v1/cadreen/devices \
-H "Content-Type: application/json" \
-d '{"id": "robot-1", "pose": {"position": {"x": 0.0, "y": 0.0, "z": 0.0}, "orientation": {"x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0}}}'
GET/api/v1/cadreen/devices

List all registered devices. Returns their position, velocity, battery, and last update time.

Response
{
"devices": [
{
"id": "robot-1",
"pose": {"position": {"x": 1.5, "y": 2.0, "z": 0.0}},
"twist": {"linear": {"x": 0.5}},
"battery": {"percentage": 0.85, "voltage": 12.1},
"last_update": "2026-07-18T10:30:00Z"
}
],
"total": 1
}

Example

Example
curl http://localhost:8080/api/v1/cadreen/devices
GET/api/v1/cadreen/devices/{deviceID}

Get details for a specific device.

Response
{
"id": "robot-1",
"pose": {"position": {"x": 1.5, "y": 2.0, "z": 0.0}},
"twist": {"linear": {"x": 0.5}},
"battery": {"percentage": 0.85, "voltage": 12.1},
"last_update": "2026-07-18T10:30:00Z"
}

Example

Example
curl http://localhost:8080/api/v1/cadreen/devices/robot-1
DELETE/api/v1/cadreen/devices/{deviceID}

Remove a device from Cadreen. The device can be re-registered later.

Response
{
"id": "robot-1",
"status": "removed",
"message": "Device removed"
}

Example

Example
curl -X DELETE http://localhost:8080/api/v1/cadreen/devices/robot-1
GET/api/v1/cadreen/devices/{deviceID}/status

Get a device's status. Cadreen checks battery level to determine if the device needs attention.

Response
{
"id": "robot-1",
"status": "working",
"battery": {"percentage": 0.85, "voltage": 12.1},
"pose": {"position": {"x": 1.5, "y": 2.0, "z": 0.0}}
}

Example

Example
curl http://localhost:8080/api/v1/cadreen/devices/robot-1/status
POST/api/v1/cadreen/devices/{deviceID}/state

Update a device's position, velocity, or sensor data. Typically called by the device itself.

Response
{
"id": "robot-1",
"status": "updated",
"message": "Device state updated"
}

Example

Example
curl -X POST http://localhost:8080/api/v1/cadreen/devices/robot-1/state \
-H "Content-Type: application/json" \
-d '{"pose": {"position": {"x": 2.0, "y": 3.0, "z": 0.0}}}'