REV Robotics - 2022/23 Product Releases & Updates

Hopefully I can clear up some of the confusion.

There are three adapter boards that will provide the best ways to connect external sensors to the SPARK MAX. The first one is used as a generic breakout for the Data Port:

You can think of the other two as adapters specifically designed for the REV Through Bore Encoder.

Depending on which motor type you are driving and which sensor type you want to use, follow the below summary of connection combinations:

Driving a Brushless Motor (NEO or NEO550)

  • Duty Cycle Absolute Encoder
    • Generic
      • Use the Data Port Breakout board or connect signal to pin 6.
    • Through Bore Encoder - absolute output
      • Use the new Absolute Encoder Adapter board.
  • Incremental Encoder
    • Generic
      • SPARK MAX must be configured in Alternate Encoder Mode.
      • Use the Data Port Breakout board or connect to reconfigured A, B, I pins, pins 4, 6, and 8.
    • Through Bore Encoder - incremental output
      • SPARK MAX must be configured in Alternate Encoder Mode.
      • Use the Alternate Encoder Adapter.
  • Analog Sensor
    • Generic
      • Use the Data Port Breakout board or connect signal to pin 3.

Driving a Brushed Motor (CIM, 775, etc.)

  • Duty Cycle Absolute Encoder
    • Generic
      • Use the Data Port Breakout board or connect signal to pin 6.
    • Through Bore Encoder - absolute output
      • Use the new Absolute Encoder Adapter board.
  • Incremental Encoder
    • Generic
      • Connect to default A, B, and I pins, pins 5, 7, and 9.
      • Directly to the Data Port, using the Data Port Breakout board, or to the front encoder port.
    • Through Bore Encoder - incremental output
      • Connect to the front encoder port.
  • Analog Sensor
    • Generic
      • Use the Data Port Breakout board or connect signal to pin 3.

For reference, here are the Data Port pinouts for the two configurations of SPARK MAX:

To answer you directly @SndMndBdy: Since you’re driving a NEO 550, and using the Through Bore Encoder’s absolute output (white wire), it would be easiest to use the soon-to-be-launched Absolute Encoder Adapter. You could also use the Data Port Breakout and solder the appropriate wires.

You will be able to poll the SPARK MAX and read the absolute angle measured by the encoder, regardless if you are using it for an internal control loop.

Expand this text for some additional detail as to why these different configurations exist and a deeper explanation of Alternate Encoder Mode.

Ignoring Alternate Encoder Mode for a moment:

In its default configuration you will be able to connect both a duty cycle absolute encoder (Data Port pin 6) and/or an analog sensor (Data Port pin 3) to the SPARK MAX while also running a brushless motor (NEO or NEO 550) whose sensor cables are plugged into the front encoder port.

With our existing Data Port Breakout Board, you gain access to solder pads for all the pins in the Data Port, so this is one option to connect your duty cycle or analog output sensors.

Because the A, B, and C/Index pins (pins 5, 7, and 9 of our Data Port) are shared with the front encoder port the brushless sensor cable is plugged in to, you cannot use those A, B, and C/Index pins with a secondary external encoder. As long as you connect your duty cycle or analog sensors only to pins 6 or 3, you’re good to go. You can use those sensors as inputs to control loops and you can read them with API calls.

Now let’s talk about Alternate Encoder Mode:

If you want to use an incremental encoder while also driving a brushless motor, you’ll run into a conflict due to the shared pins between the front encoder port and the Data Port mentioned above.

This is the purpose of Alternate Encoder Mode. It reconfigures the Data Port, and moves the A, B, and C/Index signals to other pins so that you can connect an external encoder to use as an “alternative” to the built in brushless hall sensors. The tradeoff is that you lose the original functionality of the pins those signals are moved to (pins 4, 6, and 8).

You can connect an Alternate Encoder to the data port by soldering to the correct reconfigured pins using the Data Port Breakout board. Using this board and soldering, while ultimately compatible with whichever sensor you decide to use, is cumbersome.

Therefore, in the case where you want to use our Through Bore Encoder as your alternative incremental encoder (using its A, B, and I outputs), you can use the Alternate Encoder Adapter instead. The encoder’s cable plugs directly in, and the board does all the pin swapping for you.

Now, notice that pin 6 of the Data Port is now used for the B signal of your alternate encoder. This is why you can’t use the duty cycle input while the SPARK MAX is configured in Alternate Encoder Mode. We are looking into having an alternate duty cycle pin, but we don’t at this time.

18 Likes