> ## Documentation Index
> Fetch the complete documentation index at: https://docs.visualradioassist.live/llms.txt
> Use this file to discover all available pages before exploring further.

# Bitfocus Companion Module

> Install the VRA Core module for Bitfocus Companion from a download, connect it to the Core and get buttons with tally, on-air status and studio presets.

The **VRA Core** module for [Bitfocus Companion](https://bitfocus.io/companion) turns a Stream Deck, or any other Companion surface, into a control panel for the Core. It uses the [Core API v2](/develop-with-vra/core-control-api) and reads the Core's state about once a second, so buttons show tally, on-air status and values.

* **Studio and Core**: on air, recording, off air; Core activate, deactivate and reload configuration.
* **Signals, Audio Director, Camera Assist and macros**, with state feedback. Automations show their state.
* **Cameras**: cut, preview and angles, with program (red) and preview (green) tally.
* **Output Player v2**: scenes, rundown, items, clip and graphics banks, playout take out, return and hold.
* **Station variables**: set and toggle.
* **Presets made from your studio**: a button for every signal, macro, camera, angle, output, bank and variable, updated when the studio changes.

## Before you start

* Companion **5.0 or later**.
* A Core with the Core API v2.

<Note>
  The module is under review for the Companion module store. Until it is listed there, install it from the download below. The steps are the same for a Companion machine without internet.
</Note>

## Download the module

<Card title="Download VRA Core for Companion" icon="download" href="https://github.com/vra-bv/companion-module-vra-core/releases/latest/download/vra-core.tgz">
  `vra-core.tgz`, the newest stable version.
</Card>

This link always serves the newest version. Earlier versions and the release notes are on the [releases page](https://github.com/vra-bv/companion-module-vra-core/releases). Keep the file as it is: Companion imports the `.tgz` itself, you do not unpack it.

Does the Companion machine have no internet? Download the file on another computer and copy it over, for example on a USB stick.

## Import the module in Companion

<Steps>
  <Step title="Open the Modules page">
    In Companion, open **Modules** in the menu on the left.
  </Step>

  <Step title="Import the package">
    Click **Import module package** and pick `vra-core.tgz`. **VRA Core** appears in the module list.

    <Frame caption="The Modules page. Screenshot: Bitfocus Companion documentation.">
      <img src="https://mintcdn.com/visualradioassist/VBQaA4G8LzE1iPVZ/images/develop-with-vra/core-control-api/bitfocus-companion-module/import-module-package.png?fit=max&auto=format&n=VBQaA4G8LzE1iPVZ&q=85&s=2b222f59cfe336c4933499095b4fcfc7" alt="The Modules page with the Import module package button" width="874" height="452" data-path="images/develop-with-vra/core-control-api/bitfocus-companion-module/import-module-package.png" />
    </Frame>
  </Step>
</Steps>

## Add the connection

<Steps>
  <Step title="Add VRA Core">
    Open **Connections**, search for `VRA` in **Add New Connection** and click **Add** next to **VRA Core**. Give the connection a label and choose the version you imported under **Module Version**.

    <Frame>
      <img src="https://mintcdn.com/visualradioassist/VBQaA4G8LzE1iPVZ/images/develop-with-vra/core-control-api/bitfocus-companion-module/add-connection.png?fit=max&auto=format&n=VBQaA4G8LzE1iPVZ&q=85&s=911490213aaab673f0ab4ef21136794f" alt="Add Visual Radio Assist: VRA Core, with the module version" width="1253" height="923" data-path="images/develop-with-vra/core-control-api/bitfocus-companion-module/add-connection.png" />
    </Frame>
  </Step>

  <Step title="Connect to the Core">
    Does Companion run on the Core machine itself? Then keep the settings as they are: **Core address** `127.0.0.1`, **Port** `3002`, no token. The connection turns green within a few seconds.

    <Frame>
      <img src="https://mintcdn.com/visualradioassist/VBQaA4G8LzE1iPVZ/images/develop-with-vra/core-control-api/bitfocus-companion-module/connection-settings.png?fit=max&auto=format&n=VBQaA4G8LzE1iPVZ&q=85&s=9a2a839fa7243d29accd18e624e22252" alt="The VRA Core connection settings" width="1038" height="932" data-path="images/develop-with-vra/core-control-api/bitfocus-companion-module/connection-settings.png" />
    </Frame>

    Companion on another machine:

    * **Core address**: the IP address or host name of the Core machine.
    * **Device token**: create a device in VRA Cloud under **Studio settings → Core API → Devices** and paste its token. Not needed when **Access without a token** lets this machine in. See [Authentication and LAN access](/develop-with-vra/core-control-api/authentication-and-lan-access).
    * **Station**: optional. With a station set, the buttons only act while that station holds the studio. See [Station safety](/develop-with-vra/core-control-api/station-safety).
  </Step>
</Steps>

## Use the presets

Open **Buttons**, then the **Presets** tab, and pick your VRA Core connection. Drag a preset onto a button. The presets are made from your studio, so you see your own signals, macros, cameras, outputs and variables.

<Frame>
  <img src="https://mintcdn.com/visualradioassist/VBQaA4G8LzE1iPVZ/images/develop-with-vra/core-control-api/bitfocus-companion-module/presets.png?fit=max&auto=format&n=VBQaA4G8LzE1iPVZ&q=85&s=34acf04cdf98739e18353c2ad4a37acd" alt="VRA Core presets for the studio and its signals" width="896" height="1084" data-path="images/develop-with-vra/core-control-api/bitfocus-companion-module/presets.png" />
</Frame>

The colours follow the studio:

| Colour | Meaning |
| - | - |
| Red | On air, camera on program, item or bank on air |
| Green | Camera on preview, VRA app connected |
| Orange | Recording, output fault, playout held |
| Blue | Core active, macro running, automation activated |
| Amber | Signal or BOOLEAN variable on, bank AUTO on |

The module's help in Companion lists every action, feedback and variable: click **?** next to the connection.

## Update the module

Download `vra-core.tgz` again and import it on the **Modules** page. Companion keeps the earlier version until you switch over: open the connection, click the pencil next to **Module Version**, choose the new version and click **Save**. The connection restarts with it.

<Frame caption="Change the module version of a connection. Screenshot: Bitfocus Companion documentation.">
  <img src="https://mintcdn.com/visualradioassist/VBQaA4G8LzE1iPVZ/images/develop-with-vra/core-control-api/bitfocus-companion-module/change-module-version.png?fit=max&auto=format&n=VBQaA4G8LzE1iPVZ&q=85&s=c4824a0e34867fbf8afa6eece37cbcf0" alt="The Change Module Version dialog" width="636" height="467" data-path="images/develop-with-vra/core-control-api/bitfocus-companion-module/change-module-version.png" />
</Frame>

## When something does not work

| Connection status | What to check |
| - | - |
| Connection failure | The Core runs, the address and port are right, and the network lets Companion reach port `3002`. |
| Authentication failure | Companion runs on another machine and needs a device token, or the token is wrong or revoked. |
| Insufficient permissions | The Core API or its **System** feature is switched off in **Studio settings → Core API**, or the device may not use it. |

A button that does nothing writes the reason to the connection's log in Companion, for example `409 station_mismatch`. On the Core machine, `http://localhost:3002/api/v2/requests` lists the last calls with their status. See [Errors and status codes](/develop-with-vra/core-control-api/errors-and-status-codes).

Prefer to build your own buttons with Companion's Generic HTTP module? See [Bitfocus Companion Control over Visual Radio](/develop-with-vra/core-control-api/bitfocus-companion-control-over-visual-radio).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.