# UDP Position Output

Spikemark can send real time motor position data using the UDP protocol to any device that supports UDP. Unlike the other position outputs, which have a fixed syntax for their messages the UDP Position Output allows you to pick the syntax. This can be handy for when a device doesn't support one of the standard outputs but can listen for UDP.

<figure><img src="/files/QR8GzUSwa6nUwFkmhu1V" alt="Open OSC Output Window"><figcaption></figcaption></figure>

From the Show Control menu click UDP... to open the configuration window.

## Configuration Window

<figure><img src="/files/wnEAYN5AQYpknwu8PfP9" alt="OSC Output Window"><figcaption></figcaption></figure>

### 1. Client Address

The IP address of the other device receiving data from Spikemark.

### 2. Client Port

The port number the other device is listening for data on.

### 3. Output Pattern

The syntax of the UDP message.

### 4. Active

When checked, the given axis’ position will be sent. This allows Spikemark to selectively send position data. By default, active is unchecked.

### 5. Motor Name

The name of the motor in Spikemark.

### 6. UDP Name

The name that the other device will see. By default, the UDP name is the same as the motor name but can be changed as needed. This allows an axis to be called one name in Spikemark and another on a UDP client.

### 7. Update Interval

The update interval is the speed at which UDP packets are sent. The recommended fastest speed is 30.

### 8. Send Output

Toggles the UDP output on or off.

## Output Pattern

One of the main advantages of the UDP position output is its flexibility. You get to decide which information you need and how it should be formatted. In the Output Pattern text box you can type any text you want as well as few special arguments. It is these arguments that will get replaced with the actual motor information.

### UDP Arguments

| Pattern             | Description                                                                        |
| ------------------- | ---------------------------------------------------------------------------------- |
| {name}              | The UDP name for the motor                                                         |
| {position}          | The simulated position based off of the loaded/running motion profile of the motor |
| {actual\_position}  | The actual position of the motor                                                   |
| {desired\_position} | The commanded position from the motion controller                                  |
| {speed}             | The simulated speed based off of the running motion profile of the motor           |
| {actual\_speed}     | The actual speed of the motor                                                      |
| {desired\_speed}    | The commanded speed from the motion controller                                     |
| {error}             | The simulated position minus the actual position                                   |
| {ti\_error}         | The desired position minus the actual position                                     |
| {cr}                | Carriage return character (\r)                                                     |
| {lf}                | Line feed character (\n)                                                           |
| {nl}                | New line character (\r\n)                                                          |
| {tab}               | Tab character (\t)                                                                 |

### Examples

| Pattern                              | Result                         |
| ------------------------------------ | ------------------------------ |
| {name} - {position}:{speed}          | Pushstick V2 - 12.47:8.6       |
| Axis {name} is at {actual\_position} | Axis Pushstick V2 is at 147.86 |
| {position}{tab}{speed}{tab}{name}    | 88.61 8.6 Pushstick V2         |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.creativeconners.com/docs/spikemark-6/show-control/udp/streaming-position-over-udp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
