NOTE: SDK v4.x/5.x is required to use this
NOTE: an OpenRC-based SDK is NOT required to use this
NOTE: scroll down for installation instructions
Use this at your own risk. You accept the possibility that using these extra features may cause the SDK to implode and cause you lose F-3 at worlds. That being said, I used a few of these features in competition this past season without any issues.
Setting the LED color on the Hub
Setting the speed of the I2C buses on the Hub
Querying for total module current draw
Querying for servo bus current draw [ broken: REV firmware bug ]
Querying for GPIO bus current draw
Querying for I2C bus current draw
Querying for individual motor channel current draw
Reading the 5v monitor
Reading the 12v monitor
Queying for the internal temperature inside the Hub [ broken: unknown units ]
Query whether the Expansion Hub is in an over-temp condition
Query whether each individual motor H-bridge is over-temp
Query whether phone charging is enabled [ broken: REV firmware bug ]
Enable or disable phone charging
Setting servo pulse width directly in microseconds
Reading certain data in bulk from the Hub (can increase your control loop speed)
The following data can be read in one go:
- All 4 encoder counts
- All 4 encoder velocities
- All digital pins
- All all analog pins
- Is motor at target position for all 4 motors
Query whether a motor has "lost counts" [ broken: no idea what this actually does ]
Query for which firmware version the Hub has installed
Query for which hardware revision the Hub is
Convenient
VexMC29class to prevent the need to manually scale the servo range for the Vex MC29.
Open your FTC SDK Android Studio project
Open the
build.common.gradlefile:Add
jcenter()to therepositoriesblock at the bottom:Open the
build.gradlefile for the TeamCode module:At the bottom, add this:
dependencies { //NOTE: this is the correct version, the below screenshot is outdated implementation 'org.openftc:rev-extensions-2:1.2' }When you've done that, the bottom of the file should look like this:
Now perform a Gradle Sync:
Wait for Gradle to finish gradling
Congratulations! You are now ready to use the new features provided by REV Extensions 2!
Please see the examples folder. More detailed documentation coming soon.
- Fix compatibility with SDK v5.x (should still be backwards compatible with v4.x, as the difference was not a compile-time issue)
- Bugfix: (Issue #6) Prevent possibility of exception when doing bulk reads during disconnect event
- Add
VexMC29class, which scales the normal -1 to 1 CRServo PWM range to the range expected by the MC29. - API change: The hardware map is now hotswapped transparently - you no longer need to call
RevExtensions2.init() - API change: Require units as a parameter to get voltage/current/temperature methods
- Fix compatibility with SDK v4.x (due to API breaking changes, older versions of the SDK are no longer supported)
- Fix
RevBulkData.getMotorCurrentPosition()andRevBulkData.getMotorVelocity()to return the value signed to be consistent withDcMotor.getMotorCurrentPosition()andDcMotorEx.getVelocity() - Correct typo in
CurrentMonitorsExample.java - Don't ignore reflection exceptions
- Add JavaDoc comments to
RevBulkData.java - Refactor hotswapping slightly
- Initial release




