Skip to content

Add FMS network documentation summary pages#3149

Draft
jasondaming wants to merge 4 commits into
wpilibsuite:mainfrom
jasondaming:add-fms-network-documentation
Draft

Add FMS network documentation summary pages#3149
jasondaming wants to merge 4 commits into
wpilibsuite:mainfrom
jasondaming:add-fms-network-documentation

Conversation

@jasondaming

Copy link
Copy Markdown
Member

Summary

Adds three new documentation pages summarizing key information from the FMS whitepaper to help teams understand FMS networking:

  1. fms-network-architecture.rst: Explains how FMS network is structured

    • Network topology (Score Switch, Field Router, FMS Server, Field APs)
    • VLAN structure and team isolation
    • IP addressing on the field
    • Wireless specifications (6 GHz, Wi-Fi 6E, WPA3)
    • Security features
    • How robot-to-FMS communication works
    • Bandwidth allocation (7 Mbps per team)
  2. fms-ports-protocols.rst: Reference for network ports and protocols

    • Core robot communication ports (1110, 1130, 1140, 1180-1190, 1735, 5353, 5800-5810)
    • NetworkTables ports (1735 for NT3, 5810 for NT4)
    • Driver Station ports
    • Vision processing ports
    • Packet prioritization (DS control > NetworkTables > camera streams)
    • Firewall configuration guidance
  3. network-performance-optimization.rst: Practical bandwidth optimization guidance

    • Camera stream optimization (320x240 @ 15 fps recommended)
    • NetworkTables optimization (10 Hz update frequency)
    • Measuring bandwidth usage
    • Competition mode patterns
    • Common problems and solutions
    • Competition day checklist

Design Decisions

  • Split into 3 targeted pages rather than one large page for better navigation and distinct use cases
  • Summarizes key info without duplicating full FMS whitepaper technical details
  • Links to full FMS whitepaper for teams needing complete details
  • Cross-references between pages and existing networking docs

Testing

  • Documentation builds without errors
  • All internal cross-references work correctly
  • Link to FMS whitepaper is correct

🤖 Generated with Claude Code

The FMS network is an Ethernet-based system that connects all robots, driver stations, and field equipment. The network centers around a **Score Switch** that manages traffic between:

- **Field Router**: Connects to the FMS server and manages alliance networks
- **FMS Server**: Controls match flow and communicates with all robots

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **FMS Server**: Controls match flow and communicates with all robots
- **FMS Server**: Controls match flow and communicates with Driver Station software.


- **Field Router**: Connects to the FMS server and manages alliance networks
- **FMS Server**: Controls match flow and communicates with all robots
- **Field Access Points (APs)**: Provide 6 GHz wireless connectivity to robots

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Field Access Points (APs)**: Provide 6 GHz wireless connectivity to robots
- **Field Access Point (AP)**: Provide 6 GHz wireless connectivity to robots

- **Field Access Points (APs)**: Provide 6 GHz wireless connectivity to robots
- **Smart Router**: Manages external connectivity and network services

All competition field communication uses dedicated wireless access points operating in the 6 GHz band with 802.11ax (Wi-Fi 6E) to minimize interference from spectator devices.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only communication between robots and the rest of the network uses wireless, and there's only 1 AP.

- **Frequency Band**: 6 GHz exclusively (avoids 2.4/5 GHz congestion from phones, tablets)
- **Standard**: 802.11ax (Wi-Fi 6E)
- **Encryption**: WPA3 with AES encryption
- **Security Keys**: Unique per team, per event (teams receive keys at check-in)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

teams program the radio using a kiosk, they don't get the keys directly

Comment on lines +53 to +71
## Wireless Specifications

FMS wireless uses modern standards to ensure reliable connectivity:

- **Frequency Band**: 6 GHz exclusively (avoids 2.4/5 GHz congestion from phones, tablets)
- **Standard**: 802.11ax (Wi-Fi 6E)
- **Encryption**: WPA3 with AES encryption
- **Security Keys**: Unique per team, per event (teams receive keys at check-in)

.. warning:: Field staff devices use separate 2.4 GHz and 5 GHz networks. Robot radios must be configured for 6 GHz operation at competition.

## Security Features

FMS implements multiple security layers:

1. **VLAN Isolation**: Teams cannot see or communicate with other teams' networks
2. **WPA3 Encryption**: All wireless traffic is encrypted with per-team keys
3. **Port Restrictions**: Only approved network ports are allowed (see :doc:`fms-ports-protocols`)
4. **Traffic Inspection**: FMS monitors network traffic for rules compliance

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole section feels a bit... advertisey?

- roboRIO: ``10.TE.AM.2`` (DHCP from robot radio)
- Other robot devices: ``10.TE.AM.200`` - ``10.TE.AM.219`` (DHCP from robot radio)

.. note:: The Field Router does **not** provide DHCP services to robot devices. Your team's robot radio provides DHCP addressing for the robot network.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.. note:: The Field Router does **not** provide DHCP services to robot devices. Your team's robot radio provides DHCP addressing for the robot network.
.. note:: The Field Router does **not** provide DHCP services to robot devices. Your team's robot radio provides DHCP addressing for devices onboard the robot.

1. **Driver Station** connects to field via Ethernet or field AP, receives DHCP address from FMS
2. **Robot Radio** connects to 6 GHz field AP using team-specific WPA3 key
3. **roboRIO** receives DHCP address ``10.TE.AM.2`` from robot radio
4. **FMS Server** establishes control connection with both DS and robot

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. **FMS Server** establishes control connection with both DS and robot
4. **FMS Server** establishes connection with the Driver Station software and begins sending control packets to the Driver Station software.

2. **Robot Radio** connects to 6 GHz field AP using team-specific WPA3 key
3. **roboRIO** receives DHCP address ``10.TE.AM.2`` from robot radio
4. **FMS Server** establishes control connection with both DS and robot
5. **Driver Station** sends control packets through FMS to robot

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
5. **Driver Station** sends control packets through FMS to robot
5. **Driver Station** sends control packets to the robot, corresponding to the FMS-commanded mode

3. **roboRIO** receives DHCP address ``10.TE.AM.2`` from robot radio
4. **FMS Server** establishes control connection with both DS and robot
5. **Driver Station** sends control packets through FMS to robot
6. **Robot** sends status information back through FMS to DS

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
6. **Robot** sends status information back through FMS to DS
6. **Robot** sends status information back to the Driver Station
7. **Driver Station** sends status information back to the FMS

5. **Driver Station** sends control packets through FMS to robot
6. **Robot** sends status information back through FMS to DS

All control traffic is routed through the FMS server, which enforces match timing, enable/disable states, and mode selection (auto/teleop/test).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not true

@jasondaming jasondaming requested a review from rzblue October 22, 2025 02:20
@jasondaming jasondaming changed the base branch from main to 2027 May 10, 2026 04:18

@cswilson252 cswilson252 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few nitpicks from me, also looks like this branch will need to be rebased now 🙃


The FMS network is an Ethernet-based system that connects all robots, driver stations, and field equipment. The network centers around a **Score Switch** that manages traffic between:

- **Field Router**: Connects to the FMS server and manages alliance networks

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Field Router**: Connects to the FMS server and manages alliance networks
- **Field Router**: Manages FMS network routing (VLANs) and traffic in/out of event internet uplink

6. **Robot** sends status information back to the Driver Station
7. **Driver Station** sends status information back to the FMS

The FMS tells your Driver Station what mode to use (auto/teleop/test) and when to enable/disable the robot, but your Driver Station and robot communicate directly with each other.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The FMS tells your Driver Station what mode to use (auto/teleop/test) and when to enable/disable the robot, but your Driver Station and robot communicate directly with each other.
The FMS tells your Driver Station what mode to use (auto/teleop/utility) and when to enable/disable the robot, but your Driver Station and robot communicate directly with each other.

- **Field Access Point (AP)**: Provides 6 GHz wireless connectivity to robots
- **Smart Router**: Manages external connectivity and network services

Robot-to-field communication uses a dedicated wireless access point operating in the 6 GHz band with 802.11ax (Wi-Fi 6E) to minimize interference from spectator devices.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Robot-to-field communication uses a dedicated wireless access point operating in the 6 GHz band with 802.11ax (Wi-Fi 6E) to minimize interference from spectator devices.
Robot-to-field communication uses a dedicated wireless access point operating in the 6 GHz band with 802.11ax (Wi-Fi 6E) to minimize interference from spectator devices. FTAs use a secondary AP with their wireless devices for field network debugging, that runs on either the 2.4GHz or 5GHz band depending on network congestion.

Comment on lines +60 to +63
* - 1735
- TCP
- NetworkTables 3
- NT3 (legacy)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* - 1735
- TCP
- NetworkTables 3
- NT3 (legacy)

NT3 has been removed from 2027 WPILib

- NetworkTables 4 (discovery)
- NT4 (current)

.. note:: NetworkTables 4 is the current standard. NetworkTables 3 (port 1735) is maintained for backwards compatibility with older dashboards.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.. note:: NetworkTables 4 is the current standard. NetworkTables 3 (port 1735) is maintained for backwards compatibility with older dashboards.

## Key Takeaways

- Driver Station control packets (ports 1110-1115, 1130) have highest priority
- NetworkTables 4 uses port 5810 (TCP/UDP); NT3 uses port 1735 (TCP)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- NetworkTables 4 uses port 5810 (TCP/UDP); NT3 uses port 1735 (TCP)
- NetworkTables 4 uses port 5810 (TCP/UDP)

## Common Port Issues

**Problem**: Dashboard can't connect to robot
- **Check**: Firewall blocking port 5810 (NT4) or 1735 (NT3)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Check**: Firewall blocking port 5810 (NT4) or 1735 (NT3)
- **Check**: Firewall blocking port 5810 (NT4)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You may now connect to your robot as normal over the selected interface (if you haven't done so already). The graph will show the total bandwidth usage of the connection, with the bandwidth cap at the top of the graph. The Last, Average, Min, and Max values are also displayed at the bottom of the graph. Note that these values are in Bytes/Second meaning the cap is 524,288. With just the Driver Station open you should see a flat line at ~100000 Bytes/Second.

@github-actions github-actions Bot added the 2027 label May 18, 2026
jasondaming and others added 3 commits May 17, 2026 22:38
Adds three new documentation pages summarizing key information from the FMS whitepaper:
- fms-network-architecture.rst: Explains FMS network topology, VLANs, IP addressing, wireless specs, and security
- fms-ports-protocols.rst: Reference table of network ports and protocols used by FMS and FRC software
- network-performance-optimization.rst: Practical guidance for staying within 7 Mbps bandwidth limit

These pages provide teams with essential FMS networking information without duplicating the full technical details from the FMS whitepaper.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Key changes:
- Clarified FMS Server communicates with Driver Station software, not robots directly
- Changed "Field Access Points" to singular "Field Access Point"
- Simplified VLAN section to focus on isolation rather than specific VLAN numbers
- Updated wireless section to clarify only robot communication uses the 6 GHz AP
- Changed WPA3 key distribution to mention teams use event kiosks to configure radios
- Removed "advertisey" language and incorrect traffic monitoring claims from security section
- Rewrote communication flow using "conductor" analogy: FMS tells DS what to do, but DS communicates directly with robot
- Corrected communication flow steps to reflect DS-robot direct communication with FMS coordinating
- Updated field firewall description to clarify it restricts ports, doesn't monitor/control all traffic
- Improved field vs pits section to be more practical and accurate

All changes verified against FMS whitepaper for technical accuracy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- fms-network-architecture: Fix Field Router/AP descriptions per suggestions;
  add FTA secondary AP note; simplify VLAN/security sections; remove Smart Router
  entry; fix mode name "test" -> "utility"; tone down wireless specs section
- fms-ports-protocols: Remove all NT3/port 1735 references (NT3 removed in 2027);
  clean up NT table, packet prioritization, troubleshooting, and key takeaways
- measuring-bandwidth-usage: Fix typo "he Last" -> "The Last"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jasondaming jasondaming marked this pull request as draft May 18, 2026 03:38
@jasondaming jasondaming force-pushed the add-fms-network-documentation branch from 943f5fa to e64be78 Compare May 18, 2026 03:38
- Replace roboRIO with Systemcore throughout
- Remove SmartDashboard and Shuffleboard references (both removed in 2027);
  use NT4 entries directly in code examples and Elastic/Glass in port table
- Remove port 1110 from Core Ports table (it is FMS<->DS comm, not camera;
  already listed correctly in the Driver Station Ports table)
- Update Web Interface Ports to reference Systemcore instead of roboRIO
- Remove pinned year from game manual rule reference
- Remove roboRIO-TEAM-FRC.local mDNS hostname (Systemcore hostname TBD)
- Fix mode name test -> utility in packet prioritization section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sciencewhiz sciencewhiz changed the base branch from 2027 to main June 5, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants