> For the complete documentation index, see [llms.txt](https://docs.creativeconners.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.creativeconners.com/docs/spikemark/show-control/udp/udp-position-output.md).

# UDP Position Output

Similar to the [Watchout Position Output](/docs/spikemark/show-control/watchout-position-output.md), the[ OSC Position Output](/docs/spikemark/show-control/osc/open-sound-control-osc.md), and the [PSN Position Output](/docs/spikemark/show-control/posistagenet-psn.md) the UDP Position Output allows you to send live motor data to other software and devices on your network.

However 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.

## Configuration

To open the UDP Output configuration window from the **Show Control** menu select **UDP...**

![](/files/-MhUpA92cJCasFEeN-tL)

### Configuration Options

![](/files/-MhUuSAike9RuZ7n69qs)

**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 (more in the next section).

**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)                                                                 |

{% hint style="info" %}
The {error} and {ti\_error} arguments were left in mostly for internal testing use and will probably not have much use in the real world.
{% endhint %}

### 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.creativeconners.com/docs/spikemark/show-control/udp/udp-position-output.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
