Releases: Open-STEM/XRP_MicroPython
XRPLib Release v2.0.1
This version of the library was made for a custom build of MicroPython for the XRP Control Board and XRP Beta Control Board. Please ensure you have the correct firmware loaded on your bot before use. (Beta firmware can be downloaded below)
Changelog:
- Fixed a few bugs present in v2.0.0 (and before), including:
- Speed control PID history being reset when new target speed was set, which caused issues when speed was set in a loop
Timeout.py
only processing timeouts of an integer number of seconds (now has ms accuracy)
- Added error with description when the library is used without the correct MicroPython version built for the XRP Control Board
XRPLib Release v2.0.0
Official Release of the XRP (XRPLib v2.0.0)
Requires UF2 Files built for the XRP Control Board or the XRP Beta Control Board. The UF2 for the XRP Beta Control Board is attached to this release for immediate use.
Changelog:
- Split Motor into SinglePWMMotor and DualPWMMotor to reflect the change in motor drivers present on the boards.
- Added functionality for the Neopixel LED present on the new board (Throws a NotImplementedError on the XRP Beta)
- Added brake and coast ZeroEffortBehavior for motors on both boards.
- Added support for the extra Servo pins available on the new board.
- Enabled string names for all main XRP GPIO pins, added through custom UF2 files compiled per board.
Beta Release 1.0.0
The First Official Public Beta Release of XRP_MicroPython!
Changelog:
- Fixed issues associated with
DifferentialDrive.arcade()
not setting to the right effort - Fixed issues associated with
EncodedMotor.get_speed()
only working while speed control was running - Fixed issues associated with
Board.led_blink()
and frequencies of zero - Fixed issues associated with
resetbot.py
trying to reset the Webserver before it was started - Removed
Board.set_button_callback()
due to unintuitive behavior and it being out of scope for the primary use case of this library - Fixed multiple issues associated with the
MotorGroup
class - Fixed issue with the
PID
class where the timestep would sometimes be too large after a call toPID.clear_history()
- Re-tuned
DifferentialDrive.straight()
andDifferentialDrive.turn()
so that they would function in a wider range of environments
Release 0.9.7
- Fixed issue where update() in Controller.py was still called tick()
- Updated the installation verification program to be easier to use
- Removed version.py, XRPCode now uses package.json for version testing
- Arcade drive method added to DifferentialDrive for skewing the drive left or right with a easy to call function
- Added a secrets.json file, where users can store their wifi information so that they don't have to type it every time
Release 0.9.6
New functions exposed from within IMU.py:
is_connected()
reset()
to reset register values during a soft resetget_gyro_rates()
functionsacc_rate()
andgyro_rate()
functions to change output data rates- improved calibration code
Webserver Bridge Mode Functionality:
- Call either
webserver.start_network(robot_id)
orwebserver.connect_to_network(ssid, password, robot_id)
to choose between access point mode or bridge mode - Then call
webserver.start_server()
to begin running the server in your chosen mode - Navigate to the printed ip address to begin interacting with your robot
Release 0.9.5
- All references to encoder ticks renamed to encoder counts
- encoder.ticks_per_rev renamed to Encoder.resolution
- PID.tick renamed to PID.update
- Fixed servo range issue, now from 0-200
Release 0.9.4
- Fixed drive straight behavior issues
- Fixed turn without imu issues
- Fixed speed control issues
All 3 of these should behave properly now.
Release 0.9.3
- Made the webserver auto refresh every second
- Fixed encoded motor indexing issues
- Added documentation to encoder constructor for clarity on what those indexes were
- fixed some various comments
Release 0.9.2
Fixed missing monotonic time issue associated with the Timeout class.
Fixed some documentation errors associated with some methods in DifferentialDrive
Fixed some of the default values in DifferentialDrive to be more accurate
Release 0.9.1
Includes some small but relevant API changes:
- Added
Board.wait_for_button()
- Changed
DifferentialDrive.get_left_encoder_position()
andDifferentialDrive.get_left_encoder_position()
to return distance traveled in centimeters instead of revolutions of the motor.