How to find YawVR devices on network Broadcast a message to the network (255.255.255.255, or subnet PORT 50010/UDP) containing "YAW_CALLING" encoded in ASCII, and listen for UDP responses. Available devices will respond as: YAWDEVICE;001;YawVRSimulator;50020;AVAILABLE , where YAWDEVICE is a literal, YAW2 will contain YAWDEVICE2 001 is UUID, obsolete, does not matter. Ignore it YawVRSimulator is the device's name 50020 is the port which the device listens for tcp connections. Users can't change simply change this, should be always 50020 (default) AVAILABLE means no game is checked in, RESERVED means a game is checked in (a small controller shown on our YawVR app, for example) About connection, The device accepts motion / LED data on UDP. motion data is sent to the simulator as string, as below: Y[0.0]P[0.0]R[0.0]V[0.0,0.0,0.0,0.0]F[0.0,0.0] where F[] and V[] are optional. YPR are angles for yaw,pitch and roll. V is for vibration. the first 3 number are the 3 motors amplitudes. In our gameengine, these 3 numbers are always the same for now. Range can be 0-100 The 4. number is the HZ for vibration Generally, this is a constant number, but the range can be from 1 to 100. F is for our upcoming Smartplug which can control fans / lights, etc. It's a voltage dimmer. Right now, there's only 1 slot on the plug, so the 2 numbers are always the same in our engine, but later can be expanded. Range is 0-255 Sample code for sending motion data: https://pastebin.com/Svp9icCD For LED data structure I'll give a specification later, if you need it. The device Accepts game connection on a TCP socket, so games / apps can check in to the simulator. On TCP the app can send different commands to the device (start/stop simulator, calibrate, etc). Also, when a game checks in, the simulator will send state data back on a specified UDP port. This data contains battery voltage and orientation data from the IMU (for motion cancellation). To check in, connect to the device on TCP/50020, Then send a specified message: First byte is 0x30 (GAME_CHECK_IN_CMD) The next four byte should be an integer, on which the simulator should send state data back (if needed), default is 28067. Then, the game's name encoded in ASCII. Example code: https://pastebin.com/WMjes2qR You can check the TCP command IDs from the Unity SDK.