The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 1.00 - 2016-08-24

  • SYS mode has been disabled and hidden until the PWM and interrupt functionality can be sorted out for that mode
  • cleaned up manual test help info as to be accurate
  • POD editing
  • test cleanup (all standard unit tests skip if not on a Pi)
  • all manual tests pass (interrupts are a bit iffy still)

Changes for version 0.99_06 - 2016-08-22

  • POD cleanup
  • cleanup() added, puts each registered pin in INPUT mode, and disables PUD if set
  • re-added register_pin(), we no longer keep track of objects, just the GPIO scheme numbers for cleanup and error checking
  • removed unregister_pin()
  • we now die() if trying to use a pin that is already in use
  • removed Interrupt::unset()
  • removed Pin::unset_interrupt()
  • software PWM is now implemented, but disabled due to issues yet to be solved
  • removed Board.pm from the distribution. The methods it used to handle are now located directly in WiringPi.pm
  • we now check for duplicate pins in $pi->pin() and in register_pin()
  • added test for duplicate pin registration
  • added system setup information in FAQ

Changes for version 0.99_05 - 2016-08-18

  • added Util::_sys_mode() to determine if we need wrappers for certain calls or not
  • changed back to the default setup() call instead of setup_sys(), as a lot of wrapping needs to be done (such as in pin_mode() and pwm()) to make things work properly
  • fixed calls to _sys_mode() in new(). Didn't have the _ prefix
  • we now check if something else has called a setup() routine
  • new env var, RPI_SCHEME, set when a setup routine is called so that if it's called twice, we'll know and be able to carry on
  • added new RPI_MODE_* constants that contain pin modes. This replaces _sys_mode() (removed) and cleans up other logic
  • renamed gpio_map() and gpio_scheme() to pin_map() and pin_scheme() respectively
  • added CLI binary "pinmap", prints out pin mappings
  • fixed return issue in pin_map()
  • Pin: pwm() and pull() have been updated to work in setup_sys() mode
  • Pin: pull() now automatically sets the pin into INPUT mode()
  • we now default to SYS mode (ie. non-root) (documentation enhanced)
  • when creating a new pin object in SYS mode, we now export() the pin in new()
  • rewrote register_pin() and unregister_pin(). They both translate the pin number to GPIO no matter the scheme, then unexport() it
  • added manual tests for all four modes in test/*
  • slight edits in FAQ/Tutorial
  • bumped req RPi::WiringPi::Constant to 0.02
  • bumped req WiringPi::API to 1.03

Changes for version 0.99_04 - 2016-08-16

  • added Tutorial/FAQ

Changes for version 0.99_02 - 2016-08-16

  • bumped sub module versions so they'd show up on the CPAN
  • began adding more elaborate tests

Changes for version 0.99_01 - 2016-08-16

  • feature freeze. All work until 1.00 will be spent writing tests for everything and ensuring documentation is accurate
  • added Interrupt.pm, added associated methods in both WiringPi and Pin
  • Core::setup_sys() now exports all pins automatically with sudo. This setup method is now the default if none is specified in new(), meaning that by default, we now use the BCM pin numbering scheme
  • renamed RPi::WiringPi::Core to WiringPi::API
  • cleaned up code in Interrupt to deal with the much improved way we now handle interrupts
  • added pin_to_gpio() to Util, returns the BCM representation of a pin number no matter what scheme is in use
  • added interrupt_set() and interrupt_unset() to Pin

Documentation

FAQ and Tutorial for RPi::WiringPi

Modules

Perl interface to Raspberry Pi's board, GPIO, LCDs and other various items
Raspberry Pi GPIO pin interrupts
Perl interface to Raspberry Pi LCD displays via the GPIO pins
Access and manipulate Raspberry Pi GPIO pins
Utility methods for RPi::WiringPi Raspberry Pi interface