XRP-WPILib Firmware v0.4.0
About XRP-WPILib
This firmware for the XRP robot works in conjunction with WPILib WebSocket extensions to support writing WPILib robot programs and running them on low cost XRP robots.
WPILib Hardware Support
- Onboard LED and Pushbutton exposed as DIO channels 0 and 1
- 2 motors (left/right) exposed as
XRPMotor
channels 0/1 (These behave similarly to PWM based motor controllers) - 2 additional motors (motor3/motor4) exposed as
XRPMotor
channels 2/3 - 2 servo outputs (servo1/servo2) exposed as
XRPServo
channels 4/5 - Encoders for each motor (channel 4/5 for Left, channel 6/7 for Right, channel 8/9 for motor3, channel 10/11 for motor4)
- 3-axis gyro exposed as
XRPGyro
(Note that in this version, only the Z axis is reported)
Difference between XRP and Romi capabilities
For the most part, code written for the Romi and XRP are interchangeable. The main difference being that anywhere a Spark
motor controller was used in Romi code should be replaced with a XRPMotor
(with same channel numbers) for the XRP. Similarly anywhere a Servo
object was used in Romi code should be replaced with a XRPServo
.
Additionally, the XRP only has a single pushbutton and LED, compared to the 3 each for the Romi. Thus, DIO channels 3 and 4 are not used on the XRP.
Changes from v0.3.0
- Provides a web based configuration UI to allow setting of WiFi AP name/password, as well as setting the XRP up to connect to an existing network (STA mode)
Known Issues
- Occasional input lag - This is getting worked on as part of a larger WPILib WS change
- Gyro only reports Z axis
- There is occasional gyro data lag (the gyro data is integrated on the XRP side, so whenever the data makes it through, it should be up to date)
What's Changed
- Web Configuration UI by @zhiquanyeo in #17
- Update README.md with link to Alpha WPILib by @zhiquanyeo in #18
Full Changelog: v0.3.0...v0.4.0