Skip to content

Catalyst Console 1.0 — Ready for the field

Choose a tag to compare

@TomAs-1226 TomAs-1226 released this 07 Aug 07:10
· 144 commits to main since this release

Catalyst Console

1.0

It is ready to be used at a competition. That is the whole meaning of the number — 0.8 said the shape
was still moving, and it is not any more.

Download the installer, run it,
set your team number once in Settings → Robot. Windows x64, 3.6 MB, nothing else to install. It
updates itself after that, and never during a match.


What it is

A driver station companion that sits next to the NI Driver Station and shows what the robot is doing.
It answers to three rules, in order, and every design decision in it is downstream of them:

  1. It never controls the robot. There is no code path that opens the DS control socket.
  2. Nothing it does may impede driving. No modal blocks the dashboard, nothing gates anything, and
    every failure degrades to a dimmed number in a corner.
  3. It never invents a number. A topic the robot has not published reads as a dash. Demo data must
    be switched on deliberately and says so on screen the whole time it runs.

What you get

  • A board you build. Tiles bound to NetworkTables keys you choose — gauges, graphs, alerts, match
    clock, a 3D field view. Nothing hard-coded to a season. Export the layout as JSON and every laptop
    in the pit comes up identical.
  • The robot's own spec sheet. A robot on FrcCatalyst 1.10+ introduces itself; the plan is drawn to
    scale from its published frame, bumper and module figures, so wrong dimensions look wrong.
  • A device tree. Every CAN device by bus and id, and the power distribution drawn as the board it
    is, so you can see which breaker feeds what and which slots are free.
  • Live tuning, Physics Core state, and Driver Station logs parsed into something readable.
  • A read-only MCP server, so an agent can inspect the robot without being able to touch it.

Fixed in this release

  • Escape took three presses to close Settings from the search box — clear, blur, close. The first
    press cleared the filter but left focus in the field, so the second only blurred it. Two now.
  • The README claimed no network fetch at runtime, then described the update check nine lines
    later. Both cannot be true.
  • The tunable manifest contract was documented wrong twice: only key is required, not key,
    name and group; and what decides toggle-versus-slider is the value's type on the wire, not
    whether min/max was declared.
  • Settings said "six sections" in three places after Devices made it seven, and the README's own map
    of Settings had no Devices row.
  • The search documentation used inches as its worked example of a match. That stopped being true
    when the row copy was shortened and the word left the screen — the example was the one query
    guaranteed to fail.

Known and unfixed

  • Board tiles are not unit-aware. The Units setting converts the spec sheet only, and says so.
  • supportHeight() seeds from the robot's centre rather than its footprint.
  • collisionCount() counts step-contacts rather than distinct impacts.
  • The collision map is about 12 mm narrower than the CAD guardrail interior.

Requires FrcCatalyst 1.10+ for the spec sheet and
1.12+ for the device tree. Everything else works against any robot publishing NetworkTables.