Skip to content

Latest commit

 

History

History
489 lines (420 loc) · 22 KB

changelog.rst

File metadata and controls

489 lines (420 loc) · 22 KB

Changelog

gpiozero

Release 2.0.1 (2024-02-15)

  • Fixed Python 3.12 compatibility, and clarify that 3.9 is the lowest supported version in our CI configuration (#1113)

Release 2.0 (2023-09-12)

  • Removed Python 2.x support; many thanks to Fangchen Li for a substantial amount of work on this! (#799 #896)
  • Removed RPIO pin implementation
  • Made gpiozero.pins.lgpio.LGPIOFactory the default factory; the former default, gpiozero.pins.rpigpio.RPiGPIOFactory, is now the second place preference
  • Added compat chapter
  • Added pintest utility
  • Added Raspberry Pi 5 board data

Release 1.6.2 (2021-03-18)

  • Correct docs referring to 1.6.0 as the last version supporting Python 2

Warning

This is the last release to support Python 2

Release 1.6.1 (2021-03-17)

  • Fix missing font files for 7-segment displays

Release 1.6.0 (2021-03-14)

  • Added RotaryEncoder class (thanks to Paulo Mateus) (#482, #928)
  • Added support for multi-segment character displays with LEDCharDisplay and LEDMultiCharDisplay along with "font" support using LEDCharFont (thanks to Martin O'Hanlon) (#357, #485, #488, #493, #930)
  • Added Pibrella class (thanks to Carl Monk) (#773, #798)
  • Added TrafficpHat class (thanks to Ryan Walmsley) (#845, #846)
  • Added support for the lgpio library as a pin factory (~gpiozero.pins.lgpio.LGPIOFactory) (thanks to Joan for lg) (#927)
  • Allow Motor to pass ~Device.pin_factory to its child OutputDevice objects (thanks to Yisrael Dov Lebow) (#792)
  • Small SPI exception fix (thanks to Maksim Levental) (#762)
  • Warn users when using default pin factory for Servos and Distance Sensors (thanks to Sofiia Kosovan and Daniele Procida at the EuroPython sprints) (#780, #781)
  • Added ~Servo.pulse_width property to Servo (suggested by Daniele Procida at the PyCon UK sprints) (#795, #797)
  • Added event-driven functionality to internal devices <api_internal> (#941)
  • Allowed Energenie sockets preserve their state on construction (thanks to Jack Wearden) (#865)
  • Added source tools ~gpiozero.tools.scaled_half and ~gpiozero.tools.scaled_full
  • Added complete Pi 4 support to ~gpiozero.pins.native.NativeFactory (thanks to Andrew Scheller) (#920, #929, #940)
  • Updated add-on boards to use BOARD numbering (#349, #860)
  • Fixed ButtonBoard release events (#761)
  • Add ASCII art diagrams to pinout for Pi 400 and CM4 (#932)
  • Cleaned up software SPI (thanks to Andrew Scheller and Kyle Morgan) (#777, #895, #900)
  • Added USB3 and Ethernet speed attributes to pi_info
  • Various docs updates

Release 1.5.1 (2019-06-24)

  • Added Raspberry Pi 4 data for pi_info and pinout
  • Minor docs updates

Release 1.5.0 (2019-02-12)

  • Introduced pin event timing to increase accuracy of certain devices such as the HC-SR04 DistanceSensor. (#664, #665)
  • Further improvements to DistanceSensor (ignoring missed edges). (#719)
  • Allow ~Device.source to take a device object as well as ~Device.values or other values. See Source/Values <source_values>. (#640)
  • Added internal device classes LoadAverage and DiskUsage (thanks to Jeevan M R for the latter). (#532, #714)
  • Added support for colorzero with RGBLED (this adds a new dependency). (#655)
  • Added TonalBuzzer with ~tones.Tone API for specifying frequencies raw or via MIDI or musical notes. (#681, #717)
  • Added PiHutXmasTree. (#502)
  • Added PumpkinPi and JamHat (thanks to Claire Pollard). (#680, #681, #717)
  • Ensured gpiozero can be imported without a valid pin factory set. (#591, #713)
  • Reduced import time by not computing default pin factory at the point of import. (#675, #722)
  • Added support for various pin numbering mechanisms. (#470)
  • Motor instances now use DigitalOutputDevice for non-PWM pins.
  • Allow non-PWM use of Robot. (#481)
  • Added optional enable init param to Motor. (#366)
  • Added --xyz option to pinout command line tool to open pinout.xyz in a web browser. (#604)
  • Added 3B+, 3A+ and CM3+ to Pi model data. (#627, #704)
  • Minor improvements to Energenie, thanks to Steve Amor. (#629, #634)
  • Allow SmoothedInputDevice, LightSensor and MotionSensor to have pull-up configured. (#652)
  • Allow input devices to be pulled up or down externally, thanks to Philippe Muller. (#593, #658)
  • Minor changes to support Python 3.7, thanks to Russel Winder and Rick Ansell. (#666, #668, #669, #671, #673)
  • Added ~tools.zip_values source tool.
  • Correct row/col numbering logic in PinInfo. (#674)
  • Many additional tests, and other improvements to the test suite.
  • Many documentation corrections, additions and clarifications.
  • Automatic documentation class hierarchy diagram generation.
  • Automatic copyright attribution in source files.

Release 1.4.1 (2018-02-20)

This release is mostly bug-fixes, but a few enhancements have made it in too:

  • Added curve_left and curve_right parameters to Robot.forward and Robot.backward. (#306 and #619)
  • Fixed DistanceSensor returning incorrect readings after a long pause, and added a lock to ensure multiple distance sensors can operate simultaneously in a single project. (#584, #595, #617, #618)
  • Added support for phase/enable motor drivers with PhaseEnableMotor, PhaseEnableRobot, and descendants, thanks to Ian Harcombe! (#386)
  • A variety of other minor enhancements, largely thanks to Andrew Scheller! (#479, #489, #491, #492)

Release 1.4.0 (2017-07-26)

  • Pin factory is now configurable from device constructors <changing-pin-factory> as well as command line. NOTE: this is a backwards incompatible change for manual pin construction but it's hoped this is (currently) a sufficiently rare use case that this won't affect too many people and the benefits of the new system warrant such a change, i.e. the ability to use remote pin factories with HAT classes that don't accept pin assignations (#279)
  • Major work on SPI, primarily to support remote hardware SPI (#421, #459, #465, #468, #575)
  • Pin reservation now works properly between GPIO and SPI devices (#459, #468)
  • Lots of work on the documentation: source/values chapter <source_values>, better charts, more recipes, remote GPIO configuration <remote_gpio>, mock pins, better PDF output (#484, #469, #523, #520, #434, #565, #576)
  • Support for StatusZero and StatusBoard HATs (#558)
  • Added pinout command line tool to provide a simple reference to the GPIO layout and information about the associated Pi (#497, #504) thanks to Stewart Adcock for the initial work
  • pi_info made more lenient for new (unknown) Pi models (#529)
  • Fixed a variety of packaging issues (#535, #518, #519)
  • Improved text in factory fallback warnings (#572)

Release 1.3.2 (2017-03-03)

  • Added new Pi models to stop pi_info breaking
  • Fix issue with pi_info breaking on unknown Pi models

Release 1.3.1 (2016-08-31 ... later)

  • Fixed hardware SPI support which Dave broke in 1.3.0. Sorry!
  • Some minor docs changes

Release 1.3.0 (2016-08-31)

  • Added ButtonBoard for reading multiple buttons in a single class (#340)
  • Added Servo and AngularServo classes for controlling simple servo motors (#248)
  • Lots of work on supporting easier use of internal and third-party pin implementations (#359)
  • Robot now has a proper ~Robot.value attribute (#305)
  • Added CPUTemperature as another demo of "internal" devices (#294)
  • A temporary work-around for an issue with DistanceSensor was included but a full fix is in the works (#385)
  • More work on the documentation (#320, #295, #289, etc.)

Not quite as much as we'd hoped to get done this time, but we're rushing to make a Raspbian freeze. As always, thanks to the community - your suggestions and PRs have been brilliant and even if we don't take stuff exactly as is, it's always great to see your ideas. Onto 1.4!

Release 1.2.0 (2016-04-10)

  • Added Energenie class for controlling Energenie plugs (#69)
  • Added LineSensor class for single line-sensors (#109)
  • Added DistanceSensor class for HC-SR04 ultra-sonic sensors (#114)
  • Added SnowPi class for the Ryanteck Snow-pi board (#130)
  • Added ~Button.when_held (and related properties) to Button (#115)
  • Fixed issues with installing GPIO Zero for python 3 on Raspbian Wheezy releases (#140)
  • Added support for lots of ADC chips (MCP3xxx family) (#162) - many thanks to pcopa and lurch!
  • Added support for pigpiod as a pin implementation with ~gpiozero.pins.pigpio.PiGPIOPin (#180)
  • Many refinements to the base classes mean more consistency in composite devices and several bugs squashed (#164, #175, #182, #189, #193, #229)
  • GPIO Zero is now aware of what sort of Pi it's running on via pi_info and has a fairly extensive database of Pi information which it uses to determine when users request impossible things (like pull-down on a pin with a physical pull-up resistor) (#222)
  • The source/values system was enhanced to ensure normal usage doesn't stress the CPU and lots of utilities were added (#181, #251)

And I'll just add a note of thanks to the many people in the community who contributed to this release: we've had some great PRs, suggestions, and bug reports in this version. Of particular note:

  • Schelto van Doorn was instrumental in adding support for numerous ADC chips
  • Alex Eames generously donated a RasPiO Analog board which was extremely useful in developing the software SPI interface (and testing the ADC support)
  • Andrew Scheller squashed several dozen bugs (usually a day or so after Dave had introduced them ;)

As always, many thanks to the whole community - we look forward to hearing from you more in 1.3!

Release 1.1.0 (2016-02-08)

  • Documentation converted to reST and expanded to include generic classes and several more recipes (#80, #82, #101, #119, #135, #168)
  • New CamJamKitRobot class with the pre-defined motor pins for the new CamJam EduKit
  • New LEDBarGraph class (many thanks to Martin O'Hanlon!) (#126, #176)
  • New Pin implementation abstracts out the concept of a GPIO pin paving the way for alternate library support and IO extenders in future (#141)
  • New LEDBoard.blink method which works properly even when background is set to False (#94, #161)
  • New RGBLED.blink method which implements (rudimentary) color fading too! (#135, #174)
  • New initial_value attribute on OutputDevice ensures consistent behaviour on construction (#118)
  • New active_high attribute on PWMOutputDevice and RGBLED allows use of common anode devices (#143, #154)
  • Loads of new ADC chips supported (many thanks to GitHub user pcopa!) (#150)

Release 1.0.0 (2015-11-16)

  • Debian packaging added (#44)
  • PWMLED class added (#58)
  • TemperatureSensor removed pending further work (#93)
  • Buzzer.beep alias method added (#75)
  • Motor PWM devices exposed, and Robot motor devices exposed (#107)

Release 0.9.0 (2015-10-25)

Fourth public beta

  • Added source and values properties to all relevant classes (#76)
  • Fix names of parameters in Motor constructor (#79)
  • Added wrappers for LED groups on add-on boards (#81)

Release 0.8.0 (2015-10-16)

Third public beta

  • Added generic AnalogInputDevice class along with specific classes for the MCP3008 and MCP3004 (#41)
  • Fixed DigitalOutputDevice.blink (#57)

Release 0.7.0 (2015-10-09)

Second public beta

Release 0.6.0 (2015-09-28)

First public beta

Release 0.5.0 (2015-09-24)

Release 0.4.0 (2015-09-23)

Release 0.3.0 (2015-09-22)

Release 0.2.0 (2015-09-21)

Initial release