Wiring it up#
This page needs the physical connector details filled in before publishing. The electrical facts below are taken from the firmware and are correct. The silkscreen labels, connector types, and cable part numbers are not yet documented here — do not guess them.
The one connection that matters#
The Expander connects to a single I2C port on the Control Hub or Expansion Hub. That one cable carries power and data for the whole board — all four sensors included.
The board answers at 7-bit I2C address 0x38. Nothing else on a standard FTC robot uses that address, so it can share a bus, though giving it a port of its own keeps bus traffic simpler to reason about.
Sensors#
Each of the four sensor ports takes a colour or distance sensor. Plug them in before powering up — the board detects what is attached during startup and while running, but starting from a known state makes bring-up easier to debug.
You do not tell the board what kind of sensor you plugged in. It works that out.
Encoders#
Each of the four encoder channels takes a quadrature encoder (an A and a B signal). Channels can individually be switched to read a pulse-width absolute encoder instead — see Encoders.
Encoder inputs are 3.3 V only. They are not 5 V tolerant. A 5 V encoder wired directly to an encoder input can damage the board. Check your encoder’s output voltage before connecting it, and use a level shifter if it is a 5 V part.
Digital outputs#
You only need to wire these if you are using the standalone trigger feature, where the board watches a condition for you and reports the answer on a pin.
Each digital output connects to a digital input port on the Hub, and your match code reads it as a stock DigitalChannel. Add that input to your robot configuration with a name that says what it means — over_target reads better than dout0 in six weeks’ time.
If you are not using triggers, leave these unconnected.
Powering up#
The board runs its own firmware and begins working the moment it has power. It does not wait for an OpMode, and it does not need one — if you have saved a trigger configuration to flash, the board starts enforcing it immediately at power-on, whether or not any code is running.
A sanity check before you write any code#
Run the BBRSensorDumpTest OpMode. It dumps every live value the board produces — encoder counts, sensor types, colour classes, distances, and IMU state — in a single transaction. It is the fastest way to confirm your wiring is right before you start building on top of it.
See Example OpModes.