No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-16 15:13:53 -04:00
ds_py Add legacy bridge 2026-06-03 19:00:43 -04:00
.gitignore add pyproject.toml 2026-06-17 11:34:11 -04:00
AGENTS.md Implement tui backend 2026-06-03 19:55:48 -04:00
backend.py Update controller mapping between versions 2026-06-07 16:41:42 -04:00
DS_MRCCOMM_UDP_PROTOCOL.md Fix watchdog 2026-05-29 15:25:55 -04:00
legacy_bridge.py Update controller map for udp 2026-06-07 17:59:48 -04:00
MrcComm.proto Init 2026-05-26 21:26:00 -04:00
MrcComm_pb2.py Init 2026-05-26 21:26:00 -04:00
MRCCOMM_V2_PROTOCOL.md Init 2026-05-26 21:26:00 -04:00
pyproject.toml add pyproject.toml 2026-06-17 11:34:11 -04:00
README.md Add readme 2026-07-16 15:13:53 -04:00
robot_sim.py Try and fix control mode mismatch 2026-06-17 12:45:58 -04:00
tui_backend.py Try and fix control mode mismatch 2026-06-17 12:45:58 -04:00
uv.lock add pyproject.toml 2026-06-17 11:34:11 -04:00

FRC DS Proxy

This is a proxy that accepts connections from the FRC 2027+ Driver Station and translates the comms into the 2026 protocol so that the new 2027 Driver Station can connect to and control pre-2027 robots.

Use at your own risk, nothing here is recommended or supported.

Background

Prior to 2027, FRC robots communicated with the NI driver station using a proprietary NI protocol. This protocol was reverse engineered by a few people and some alternative driver station programs were made.
In 2027 a new WPI developed driver station was introduced that uses an undocumented protocol. The new driver station has no compatibility with the old protocol or old robots.

This repo contains the reverse engineered protocol documentation, protobufs, and a proxy that the new driver station can connect to.

The proxy accepts connections from the 2027+ driver station (enter 127.0.0.1 for team name/ip address) and talks the 2027 driver station protocol (MRCCOMM).
It has two "backends", a simulated robot that will send simulated robot state to the DS and show commands and info sent from the DS.
The other backend connects to a real target robot running pre 2027 code and translates into the 2026 NI DS protocol thanks to the reverse engineering effort of various projects including https://gitlab.com/Redrield/ds-rs, https://frcnetworking.readthedocs.io/en/latest/, https://github.com/Redrield/ReFRC.

Using this backend you can control a 2026 (or earlier) robot with the new 2027 driver station running on Linux or Mac (or Windows).

Run using:

uv run robot_sim.py --robot-team 1523

AI notice

All code in this repo is written by LLMs.
The reverse engineering of the driver station binary was performed by LLMs. The documentation is all LLM written.
This README is 100% human.

Why did you do this?

Because I don't like Windows or the NI Driver Station. Also it's funny.

Why use LLMs for everything?

Because I have better things to spend my human time on then implementing this cursed project.