Protocol Module System
Protocols are plugins that implement the IProtocol interface:Module Selection
Available Protocols
- Gaming
- Flight Simulation
- Universal
- Platform-Specific
Protocol Data Flow
The pipeline calls the protocol at 250Hz:1
Receive Data
Protocol receives both processed and raw pose data:
2
Transform Data
Convert OpenTrack format to protocol-specific format:
3
Transmit
Send data via protocol-specific method:
- Shared memory (FreeTrack, TrackIR)
- Network socket (UDP, FlightGear)
- System APIs (Mouse, SimConnect)
FreeTrack Protocol Details
FreeTrack is the most commonly used protocol:Shared Memory Structure
Memory Mapping
UDP Protocol Details
UDP output is highly flexible:Basic Configuration
Sending Data
UDP is connectionless and doesn’t guarantee delivery. This is acceptable for tracking data since new data arrives every 4ms.
Game-Specific Setup
- DCS World
- Arma 3
- Euro/American Truck Sim
- Elite Dangerous
1
Enable FreeTrack
- Open DCS options
- Go to Controls → Head Tracking
- Select “Enable head tracking”
2
Configure OpenTrack
- Select FreeTrack 2.0 protocol
- Start tracking
- Configure mapping curves for best response
3
Fine-tune
- Reduce translation sensitivity for cockpit views
- Increase yaw/pitch sensitivity for better awareness
- Enable relative translation for comfortable operation
Protocol Dialog
Protocols can provide configuration dialogs:Creating Custom Protocols
1
Implement IProtocol
2
Handle Threading
Protocol methods are called from the tracking thread:
3
Register Plugin
Performance Considerations
The protocol runs at 250Hz, so efficiency matters:Good Practice
Avoid
Troubleshooting
Game doesn't detect tracking
Game doesn't detect tracking
- Verify protocol selection matches game requirements
- Start OpenTrack before launching game
- Check if game has head tracking enabled in settings
- Try running game and OpenTrack as administrator (Windows)
- Check for antivirus blocking shared memory access
Tracking works but is inverted
Tracking works but is inverted
Use axis inversion in configuration:Some games also have inversion settings.
Network protocol not connecting
Network protocol not connecting
- Verify IP address and port
- Check firewall rules
- Test with localhost (127.0.0.1) first
- Use Wireshark to verify packets are sent
Poor performance in game
Poor performance in game
- OpenTrack runs at 250Hz - check CPU usage
- Disable logging if enabled
- Reduce filter complexity
- Check for USB bandwidth issues (optical trackers)
Next Steps
Filters
Add smoothing and stabilization
Mapping Curves
Optimize tracking response
Configuration
Advanced configuration options