OSC Realtime Data Output from Flair¶
Flair can output live axis position data over OSC (Open Sound Control) via UDP, allowing third-party applications (Blender, TouchDesigner, Maya, custom software) to receive robot position in real time. This guide covers network configuration, enabling OSC in Flair, and verifying the signal.
Network Configuration¶
Critical: Use the Right IP Address¶
Flair's OSC output goes to the Network Direct port — the dedicated Ethernet port used for robot communication. This is not the Windows network adapter connected to your production LAN.
- The Network Direct port is typically on a 192.168.1.x subnet.
- The receiving PC must also be on the 192.168.1.x subnet (e.g. 192.168.1.50).
- Do not use the main Windows network adapter IP for OSC — data will not arrive.
"Use Network Direct, not the Windows adapter. Receiving PC needs a 192.168.1.NNN address."
Setting Up the Receiving PC¶
- On the receiving PC, set a static IP on the network interface connected to the Flair network: e.g. 192.168.1.50 (any unused address on the subnet).
- Subnet mask: 255.255.255.0
- No gateway needed.
- Disable Windows Firewall on that adapter (or add an explicit UDP inbound rule for the OSC port — default 8000 or 9000).
Enabling OSC in Flair¶
- Go to Setup → Serial Devices Setup.
- Find the OSC entry (or add a new serial device and select OSC type).
- In the OSC settings:
- Output address: IP address of the receiving PC (e.g. 192.168.1.50)
- Port: default is 8000 (match in receiving software)
- Tick "UDP" — essential. Without this, OSC data will not transmit.
- XYZ data: tick to include cartesian position output.
- Select which axes/data types to include (pan, tilt, roll, track, arm, etc.).
- Click Apply and confirm the device shows as active.
Verifying the OSC Signal¶
Use Protokol (free from Hexler) on the receiving PC to verify OSC packets are arriving before integrating with your production application:
- Download and open Protokol.
- Add a new OSC listener on the same port Flair is sending to.
- In Flair, jog any axis.
- Protokol should show incoming OSC messages with address strings like
/flair/pan,/flair/tilt,/flair/track, etc.
If nothing appears in Protokol: - Confirm the receiving PC IP is on the 192.168.1.x subnet. - Confirm "UDP" is ticked in the Flair OSC device settings. - Check Windows Firewall is not blocking UDP on that port.
OSC Address Reference¶
Standard Flair OSC XYZ output addresses:
| Address | Type | Data |
|---|---|---|
/flair/camx |
Float | Camera X position (metres) |
/flair/camy |
Float | Camera Y position (metres) |
/flair/camz |
Float | Camera Z position (metres) |
/flair/pan |
Float | Pan angle (degrees) |
/flair/tilt |
Float | Tilt angle (degrees) |
/flair/roll |
Float | Roll angle (degrees) |
/flair/targx |
Float | Target X position (metres) |
/flair/targy |
Float | Target Y position (metres) |
/flair/targz |
Float | Target Z position (metres) |
/flair/zoom |
Float | Focal length (mm) — calibrated zoom lens only |
/flair/focus |
Float | Focus distance (metres) — focus-follows-object/target only |
/flair/focusraw |
Float | Raw (uncalibrated) focus value |
/flair/frame |
Int32 | Current move frame count (integer) |
/flair/framef |
Float | Current move frame count (float, sub-frame precision) |
/flair/runstate |
Int32 | Flair run state — see QTake Integration for values |
Additional addresses available in specific modes:
| Address | Type | Data |
|---|---|---|
/flair/upx |
Float | Up-in-frame X (Roll UP mode only) |
/flair/upy |
Float | Up-in-frame Y (Roll UP mode only) |
/flair/upz |
Float | Up-in-frame Z (Roll UP mode only) |
/flair/axisN |
Float | Individual axis position, N numbered from 1 (OSC Axis mode) |
Coordinate space: Z is up, X is forwards along the track, Y is to the left. Pan left is +ve, tilt up is +ve, roll clockwise is +ve.
For Blender, see Flair to Blender via OSC (AddRoutes) for how to bind these addresses to Blender objects.
Serial Tester¶
Flair also includes a Serial Tester utility (under Tools menu) that shows the raw serial/network data being sent. Use this to confirm Flair is generating the OSC output before suspecting a network issue.
Source¶
- Forum thread, "Setting up realtime data output from Flair" — talk.mrmoco.com/t/603