26. Changelog
26.1. 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 preferenceAdded Backwards Compatibility chapter
Added pintest utility
Added Raspberry Pi 5 board data
26.2. 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
26.3. Release 1.6.1 (2021-03-17)
Fix missing font files for 7-segment displays
26.4. 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
andLEDMultiCharDisplay
along with “font” support usingLEDCharFont
(thanks to Martin O’Hanlon) (#357, #485, #488, #493, #930)Added
TrafficpHat
class (thanks to Ryan Walmsley) (#845, #846)Added support for the lgpio library as a pin factory (
LGPIOFactory
) (thanks to Joan for lg) (#927)Allow
Motor
to passpin_factory
to its childOutputDevice
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
pulse_width
property toServo
(suggested by Daniele Procida at the PyCon UK sprints) (#795, #797)Added event-driven functionality to internal devices (#941)
Allowed
Energenie
sockets preserve their state on construction (thanks to Jack Wearden) (#865)Added source tools
scaled_half()
andscaled_full()
Added complete Pi 4 support to
NativeFactory
(thanks to Andrew Scheller) (#920, #929, #940)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
26.5. Release 1.5.1 (2019-06-24)
Added Raspberry Pi 4 data for
pi_info()
and pinoutMinor docs updates
26.6. 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
source
to take a device object as well asvalues
or othervalues
. See Source/Values. (#640)Added internal device classes
LoadAverage
andDiskUsage
(thanks to Jeevan M R for the latter). (#532, #714)Added support for colorzero with
RGBLED
(this adds a new dependency). (#655)Added
TonalBuzzer
withTone
API for specifying frequencies raw or via MIDI or musical notes. (#681, #717)Added
PiHutXmasTree
. (#502)Added
PumpkinPi
andJamHat
(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 useDigitalOutputDevice
for non-PWM pins.Added
--xyz
option to pinout command line tool to open pinout.xyz in a web browser. (#604)Minor improvements to
Energenie
, thanks to Steve Amor. (#629, #634)Allow
SmoothedInputDevice
,LightSensor
andMotionSensor
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
zip_values()
source tool.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.
26.7. 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
andcurve_right
parameters toRobot.forward()
andRobot.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)
26.8. Release 1.4.0 (2017-07-26)
Pin factory is now configurable from device constructors 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, better charts, more recipes, remote GPIO configuration, mock pins, better PDF output (#484, #469, #523, #520, #434, #565, #576)
Support for
StatusZero
andStatusBoard
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)Improved text in factory fallback warnings (#572)
26.9. Release 1.3.2 (2017-03-03)
26.10. Release 1.3.1 (2016-08-31 … later)
Fixed hardware SPI support which Dave broke in 1.3.0. Sorry!
Some minor docs changes
26.11. Release 1.3.0 (2016-08-31)
Added
ButtonBoard
for reading multiple buttons in a single class (#340)Added
Servo
andAngularServo
classes for controlling simple servo motors (#248)Lots of work on supporting easier use of internal and third-party pin implementations (#359)
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)
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!
26.12. Release 1.2.0 (2016-04-10)
Added
LineSensor
class for single line-sensors (#109)Added
DistanceSensor
class for HC-SR04 ultra-sonic sensors (#114)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
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!
26.13. 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 EduKitNew
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 toFalse
(#94, #161)New
RGBLED.blink()
method which implements (rudimentary) color fading too! (#135, #174)New
initial_value
attribute onOutputDevice
ensures consistent behaviour on construction (#118)New
active_high
attribute onPWMOutputDevice
andRGBLED
allows use of common anode devices (#143, #154)Loads of new ADC chips supported (many thanks to GitHub user pcopa!) (#150)
26.14. Release 1.0.0 (2015-11-16)
26.15. Release 0.9.0 (2015-10-25)
Fourth public beta
26.16. Release 0.8.0 (2015-10-16)
Third public beta
Added generic
AnalogInputDevice
class along with specific classes for theMCP3008
andMCP3004
(#41)Fixed
DigitalOutputDevice.blink()
(#57)
26.17. Release 0.7.0 (2015-10-09)
Second public beta
26.18. Release 0.6.0 (2015-09-28)
First public beta
26.19. Release 0.5.0 (2015-09-24)
26.20. Release 0.4.0 (2015-09-23)
26.21. Release 0.3.0 (2015-09-22)
26.22. Release 0.2.0 (2015-09-21)
Initial release