- Updated dependencies
- BREAKING CHANGE: dropped support for end-of-lifed versions of Node.js, so this now only supports Node 10, 12, and 13
- Added
arm64
to thecpu
field in package.json for installing on 64-bit Raspberry Pis
- Fixed a bug where serial wasn't being disabled on the RPi 4
- Fixed a bug where GPIO pins were not marked as PWM pins correctly
- Brought in an updated dependency
- BREAKING CHANGE: Under the hood we now use the PWM clock instead of the PCM clock for software PWM.
- You can no longer use hardware PWM with Raspi IO (which Raspi IO itself does not support)
- You now can use I2S in conjunction with Raspi IO
- BREAKING CHANGE: there is no longer a default export. Instead use
const Raspi = require('raspi-io').RaspiIO
orimport { RaspiIO as Raspi } from 'raspi-io';
to get the old behavior to work - Added a new constructor property
enableI2C
that allows users to programatically enable or disable I2C - BREAKING CHANGE: The
name
property of this module now returns"Raspi IO"
instead of"RasperryPi-IO"
to conform with naming conventions elsewhere - BREAKING CHANGE: removed the
enableSoftPwm
and switched to using software PWM by default for all pins- Note: this means that hardware PWM is not used on the pins that support hardware PWM, we still use software PWM
- BREAKING CHANGE:
digital-read-${pin}
event names are now normalized. If, for example, you calleddigitalRead("GPIO18", () => {})
on the Raspberry Pi, before the event name would bedigital-read-GPIO18
, but now it'sdigital-read-1
Under the hood, I switched from raspi-io-core
@2.x.x to j5-io
@3.x.x. Note: J5 IO is a major rewrite of Raspi IO Core. Check out J5 IO's changelog for details. Note that many of those breaking changes are not surfaced in Raspi IO, and all breaking changes are listed above.
- Updated raspi-board to the latest version, which includes breaking changes. These changes are not surfaced by Raspi IO.
- Updated dependencies
- BREAKING CHANGE: Dropped support for Node.js 4
- Pulled in latest version of raspi-io-core to switch servo methods to using range instead of degrees
- Enforced support for Node.js < 4.0.0 via package.json "engines" field.
- This does not change the actual supported platforms for Raspi IO, just makes it more explicit
- Dropped support for attempting to install on non-arm platforms via package.json's "cpu" field.
- Attempting to install this on a non-Raspberry Pi platform before gave a bunch of obtuse errors, so this doesn't actually change the ability to install raspi-io, but does make it fail earlier, harder, and more obviously
- Updated dependencies that had breaking changes in prep for adding 1-wire support.
- The breaking changes in dependencies are not surfaced as breaking changes in Raspi IO itself.
- Pulled in a dependency change that fixes a bug in servo duty cycle calculation
- Updated dependencies that gets rid of Wiring Pi in favor of pigpio.
- POTENTIALLY BREAKING CHANGE: there are no known breakages with this update, but there are a lot of under the hood changes, and better safe than sorry.
- Disabled serial on the Raspberry Pi Zero W by default because it suffers from the same serial limitations as the Raspberry Pi 3
- Added proper Raspberry Pi Zero W support, which sets
enableSerial
to false
- Dependency bump
- Added
enableSerial
property to get around crashing on the Raspberry Pi 3
- Updated raspi-io-core to bring in better error messaging around pin modes
- Publishing a new version to update the README on npmjs.com
- Removed outdated and broken unit tests, they weren't even remotely comprehensive anyways.
- Updated dependencies to pull in a bug fix
- Bumped the raspi-gpio dependency. There is a potentially breaking change in raspi-gpio, but because of how this module uses it, there is no breaking change here.
- Split off almost all functionality of this module into Raspi IO Core
- Note: there should be no functionality change from this package, but giving it a minor version bump anyways
- By splitting this off, it should be possible to create variants of raspi-io that target different OSes and configurations, e.g. Windows 10 IoT Core
- Added support for software-based PWM
- Fixed a bug where writing 0 to GPIO pins on startup wasn't actually writing 0
- Updated dependencies
- POTENTIALLY BREAKING CHANGE: removed dependency on raspi-wiringpi because Raspbian now ships with Wiring Pi by default. This may break other OSes
- POTENTIALLY BREAKING CHANGE: I2C introduced a breaking change around write size limits, see the raspi-i2c changelog for more info.
- Added the ability to specify pins to include or exclude in initialization
- Updated dependencies to bring in new functionality
- Fixed a bug where
i2cConfig
treated the delay as milliseconds instead of seconds - Added support for enabling pull down resistors
- Switched dependency ranges to ^
- Bumped dependencies to bring in support for a new Raspberry Pi Zero revision
- Fixed a bug where unknown pins threw the error 'Unknown pin "null"', which wasn't very helpful
- Added support for the
serial*
methods- BREAKING CHANGE:
GPIO14
andGPIO15
are no longer accessible from raspi-io
- BREAKING CHANGE:
- Removed the Symbol shim
- BREAKING CHANGE: Node 0.10 is no longer supported
- Fixed a bug where I2C reads emitted the wrong event name
- It was
I2C-reply${address}-${register}
, but is nowi2c-reply-${address}-${register}
- It was
- Fixed a bug where the built-in LED no longer worked
- Dependency update to add missing Raspberry Pi 3 Model B revision
- Updated dependencies to add Raspberry Pi 3 Model B support
- Added support for the
servoConfig
andservoWrite
methods - Stubbed out the
serialWrite
,serialRead
, andserialConfig
- For now, they throw a "not implemented" error
- Added support for enabling pull up resistors by writing HIGH to the pin while in INPUT mode
- Updated dependencies to add Ubuntu support
- Updated dependencies to add Raspberry Pi Zero support
- Upgraded to NAN 2
- POTENTIAL BREAKING CHANGE
- The API has not changed, but the build requirements have
- Make sure you are running Raspbian Jessie because this module no longer builds on stock Raspbian Wheezy
- See https://github.com/fivdi/onoff/wiki/Node.js-v4-and-native-addons for more information
- Updated dependencies and build systems to fix a few bugs
- Updated the default pin mode to be output instead of unknown
- Reworked the I2C pins so that they CANNOT be used for GPIO.
- This is to work around an issue where we can't change the pin mode back to I2C once we change it to GPIO
- WARNING: BOTH OF THESE CHANGES ARE POTENTIALLY BREAKING!
- Updated the i2cConfig method to take a config option as well as number
- Updated dependencies to fix a crash on Node 0.10
- Internal code cleanup
- Updated dependencies
- Updated the repository links to point to their new location
- Updated raspi-board dependency to pull in fix for overclocked board detection
- Added missing es6-symbol shim
- Marked certain unimplemented methods as won't implement
- Added a contributing guide
- Added code linter
- Update code style to use newer best practices
- Added pingRead stub. It's currently unimplemented, but will at least throw a nice error.
- Added a shim for Symbol to get raspi-io working on Node.js 0.10 again
- Updated I2C dependency to pull in the latest raspi-i2c
- Updated I2C dependency to pull in the latest raspi-i2c
- Added support for controlling the status LED (set as the default LED)
- I2C support!!!
- Dependency update to fix a bug with destroying peripherals
- POTENTIALLY BREAKING CHANGE. Changed the default mode for each pin from INPUT to UNKNOWN
- This is a necessary change for incorporating I2C support, which is coming very soon
- Added pin normalization to all instance lookups
- Fixed a method name typo, causing new five.Pin(1) to crash
- Fixed a bug with board.pins[mypin].mode not reporting the correct value
- Switched from traceur to babel for ES6->ES5 compilation
- Upgraded dependencies to add support for Node 0.12
- io.js support is theoretically there too, but won't work until nodejs/node-gyp#564 is landed
- Fixed a pin normalization bug with pinMode
- Updated dependencies
- Fixed a bug with pin numbering on the B+/A+
- Refactored raspi-core usage to match the new name
- README updates
- Relaxed restrictions on calling methods with mismatched modes.
- Fixed a bug with mode checking in digitalRead
- Added error checking to the
normalize
method to make exceptions more readable
- Added support for the capability queries
- Total rewrite! Now uses wiringPi under the hood
- PWM support included
- New pin mapping scheme, see README. The pin numbering scheme has CHANGED!
- Cleaned up the README
- Migrated repo to GitHub
- Added support for the Raspberry Pi B+
- Bumped the version to 1.0.0. NO BREAKING API CHANGES, but switching the version to better conform with semver. See https://twitter.com/izs/status/494980144197402625
- Added proper API documentation
- Fleshed out default LED access from Johnny Five
- Fixed a bug with LEDs on Arch Linux
- Fixed a super embarrassing typo
- Fixed a bug where if you passed in a number as an alias, it caused a crash
- Added support for
normalize()
anddefautLed
- Re-added the root user check, but this time left it as a warning, not a hard error
Note: there was an error publishing 0.1.6 which prevented using that version number
- Removed the root user check because it's causing resin.io to break. Will fix later.
- Fixed a publishing problem (functionality same as 0.1.3)
- Added a check for superuser access
- Fleshed out error messaging for initial inclusion in Johnny-Five
- API compatibility fixes
- Reading values while in OUTPUT mode
data-read-#
event added
- Initial release including support for GPIO