RoboRIO to Driver Station

UDP

Sent every 20ms in response to Driver Station packets, UDP port 1150

Field

Length

Type

Comment

Sequence Num

2

uint16

Comm Version

1

uint8

0x01 is currently the only observed value

Status

1

Status

Basically an echo if everything is operating properly

Trace

1

Trace

Battery

2

Battery

Request Date?

1

uint8

0x01 when first connecting, 0x00 otherwise

Tags

n

Tags

Status

Field

Mask

Comment

E-Stop

x.......

Brownout

...x....

0: Normal, 1: Voltage Brownout

Code Start

....x...

0: Running, 1: Initializing

Enabled

.....x..

Mode

......xx

0: Teleop, 1: Test, 2: Autonomous

Trace

Field

Mask

Comment

Robot Code

..x.....

Is RoboRIO

...x....

Test Mode

....x...

Autonomous Mode

.....x..

TeleOp Code

......x.

Disabled

.......x

Battery

Received as a uint16, XXYY. Voltage is calculated by:

XX + YY/256

Tags

Field

Length

Type

Comment

Size

1

uint8

ID

1

uint8

See table below

Data

n

Depends on tag type

ID

Tag

0x01

Joystick Output

0x04

Disk Info

0x05

CPU Info

0x06

RAM Info

0x08

PDP Log

0x09

Unknown

0x0e

CAN Metrics

Joystick Output 0x01

If multiple joysticks, the extended packets are concatenated together. If a joystick isn’t outputting anything, the size will be 1 (to include the packet type ID) and not contain any of the below. So if the 3rd joystick is outputting, it’ll output 01 01 01 01 09 01 <below structure>.

Field

Length

Type

Comment

Outputs

4

Output

Left Rumble

2

uint16

Right Rumble

2

uint16

Output

1 bit per output. Stored LSB 0.

Disk Info 0x04

Field

Length

Type

Comment

Free Space

4

uint32

Number of bytes available

CPU Info 0x05

Field

Length

Type

Comment

Num of CPUs

4

float

0x02 on the RoboRIO

CPUn Time Critical %

4

float

CPUn Above Normal %

4

float

CPUn Normal %

4

float

CPUn Low %

4

float

RAM Info 0x06

Field

Length

Type

Comment

Block

4

uint32

Free Space

4

uint32

Number of bytes available

PDP Log 0x08

Field

Length

Type

Comment

Unknown

1

PDP Stats

21

Unknown

3

The statistics for each PDP port is 10 bits, padding together for a total of 21 bytes.

struct PDP {
   uint16_t port_00 : 10; //
   uint16_t port_01 : 10; // 8 bytes, 40 bits
   uint16_t port_02 : 10; //
   uint16_t port_03 : 10; //
   uint16_t port_04 : 10; //
   uint16_t port_05 : 10; //
   uint16_t pad1    :  4; //

   uint16_t port_06 : 10; //
   uint16_t port_07 : 10; // 8 bytes, 40 bits
   uint16_t port_08 : 10; //
   uint16_t port_09 : 10; //
   uint16_t port_10 : 10; //
   uint16_t port_10 : 10; //
   uint16_t pad2    :  4; //

   uint16_t port_12 : 10; //
   uint16_t port_13 : 10; // 5 bytes, 40 bits
   uint16_t port_14 : 10; //
   uint16_t port_15 : 10; //
}

Unknown 0x09

Field

Length

Type

Comment

Unknown

9

CAN Metrics 0x0e

Field

Length

Type

Comment

Utilization %

4

float

Bus Off

4

uint32

TX Full

4

uint32

RX Errors

1

uint8

TX Errors

1

uint8

TCP

Sent over TCP port 1740. Strings are either prefixed with a length (specified) or implied.

Field

Length

Type

Comment

Size

2

uint16

Including ID

ID

1

uint8

See table below (only if Size > 0)

Tags

1

Depends on tag type

Tags

ID

Tag

0x00

Radio Events?

0x01

Usage Report

0x04

Disable Faults

0x05

Rail Faults

0x0a

Version Info

0x0b

Error Message

0x0c

Standard Output

0x0d

Unknown

Radio Events? 0x00

Might just be generic “Error Strings” or something.

Field

Length

Type

Comment

Message

n

string

Usage Report 0x01

Field

Length

Type

Comment

Team Num

2

string

Unknown

1

uint8

Entries

n

Entry Data

Disable Faults 0x04

Field

Length

Type

Comment

Comms

2

uint16

12V

2

uint16

Rail Faults 0x05

Field

Length

Type

Comment

6V

2

uint16

5V

2

uint16

3.3V

2

uint16

Version Info 0x0a

Field

Length

Type

Comment

Type

1

Device

See below

Unknown

2

ID

1

uint8

CAN ID?

Name

1 + n

string

Version

1 + n

string

Empty message (00 00 00 00 00 00) signifies end of list.

Device Type

Num

Type

0

Software (roboRIO image, FRC_Lib_Version)

2

CAN Talon

8

PDP

9

PCM

Error Message 0x0b

Shows up in main Driver Station log. Sequence Number increments along with Standard Output.

Field

Length

Type

Comment

Timestamp

4

float

Seconds since start of log

SeqNum

2

uint16

Unknown

2

Only seen as 01?

Error Code

4

int32

Flags

1

Flags

Details

2 + n

string

Location

2 + n

string

Call Stack

2 + n

string

Flags

Field

Mask

Comment

Error

.......x

isLVcode

......x.

Standard Output 0x0c

Sequence Number increments along with Error Message.

Field

Length

Type

Comment

Timestamp

4

float

Seconds since start of log

SeqNum

2

uint16

Message

n

string

Unknown 0x0d

00 00 04 04 04 04