Skip to content

Tutorial: Your First Canandmag

This tutorial covers the complete setup of a Redux Canandmag. By the end of this lesson, you will have a wired, configured, and programmed sensor reading rotation data.

  • A Redux Canandmag
  • A RoboRIO with a configured CAN bus
  • A laptop with WPILib VSCode installed
  • A basic FRC robot project
  1. Basic Wiring
    Connect the Canandmag to your robot’s CAN bus.

    • CAN High: Yellow wire to the yellow terminal/pad.
    • CAN Low: Green wire to the green terminal/pad.
    • Power (12V): Red wire to a 12V PDH/PDP port.
    • Ground: Black wire to the corresponding ground port.
  2. Install ReduxLib
    Open your FRC project in VSCode.

    • Press Ctrl+Shift+P.
    • Select WPILib: Manage Vendor Libraries.
    • Choose Install new libraries (online).
    • Paste the ReduxLib URL: https://frcsdk.reduxrobotics.com/ReduxLib_2026.json
  3. Configure the CAN ID
    All Redux devices ship with CAN ID 0. We need to give it a unique ID using the Configurator.

    • Deploy a basic robot project that includes CanandEventLoop.getInstance(); in robotInit.
    • Open a web browser and navigate to http://roborio-XXXX-frc.local:7244 (replacing XXXX with your team number).
    • Find the device with ID 0, type 1 into the CAN device ID box, and click Change ID.
    • The device will momentarily disappear and re-appear with the new ID.
  4. Write your first code
    In your Robot.java file, let’s read the position of the encoder.

    // Create the sensor object with ID 1
    Canandmag encoder = new Canandmag(1);
    // Read the position in rotations
    double position = encoder.getPosition();
    System.out.println("Encoder Position: " + position);
  5. Verify on the Dashboard
    Deploy your code and open the RIOlog or SmartDashboard. You should see the position value changing as you rotate the encoder shaft.

Now that you have the basics working, explore the How-to Guides to learn about zeroing, filtered velocity, or using the PWM output.