- Added support for missing i2cWrite method
- Fixed incorrect i2cWrite signature
- Reworked how I2C commands are issued to fix rwaldron/johnny-five#1639
- Added support for missing i2cWrite method
- Fixed a marginally broken TypeScript import (if you tried to use this from TypeScript, it may have given you an error)
- Fixed an odd bug by hand (possibly a bug in tsc itself) where the declaration emitted by tsc didn't compile in Raspi IO.
- POTENTIALLY BREAKING CHANGE: Rewrote this module from the ground up in TypeScript
- Removed any Raspberry Pi specific code and renamed this module from raspi-io-core to j5-io
- Added unit tests, yay!
- Changed the
digitalRead
update interval to be every 18ms instead of every 19ms to get it spec compliant in practice, not just in theory (must be at least 50Hz/20ms in practice) - Removed some dead code (no change to behavior)
- Changed error handling in the constructor to throw a more intelligible error if a primitive is passed for options
- Changed
servoConfig
so that it only changes pin mode if it's not already in Servo mode. - Added better error checking so that all serial* calls
- Now throws a readable error when
portId
is not included
- Now throws a readable error when
- Fixed a theoretical bug where i2cRead continues to read after the peripheral is destroyed, which never happens in practice except in unit tests.
- BREAKING CHANGE: Removed
includePins
andexcludePins
, which is replaced withpinInfo
- BREAKING CHANGE: Now, only base, gpio, and pwm platform modules are required. The rest are optional
- BREAKING CHANGE: Removed support for software PWM here (it should be handled by Raspi IO, not J5 IO)
- 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
- Rewrote the I2C infrastructure to use serial's architecture. This new architecture both gaurantees order of operations while using asynchronous method calls, increasing performance.
- Added a lot of internal infrastructure to support multiple I2C ports, even if it's mostly not supported in the IO Plugin spec (for now?)
- BREAKING CHANGE: Removed the ability to pass a number to
i2cConfig
as its only argument. This was not documented and is not part of the IO Plugin spec. - BREAKING CHANGE: Added new
i2cIds
property which is required when including I2C support - BREAKING CHANGE: The expected values in
options.platform
were renamed to be platform independent, andraspi-board
andraspo-soft-pwm
were removed entirely
- Added ability to take in servo values greater than 544 as part of servo class rewrite (thanks @dtex!)
- Fixed a bug where the
digital-read-${pin}
event was being fired even when there was no change (thanks @boneskull!)
- Fixed a bug in Servo duty cycle calculation
- BREAKING CHANGE: Updated PWM value calculation to match breaking changes in raspi-pwm 4.0.0
- Republishing because I accidentally had git out of sync
- Added the
enableSerial
configuration option, which works the same asenableSoftPwm
- Improved error messaging around unsupported pin modes
- Fixed a bug with not being able to kill the process when run within Johnny-Five
- Spun off raspi-io into raspi-io-core
- Reworked this module so that Raspi.js is passed in to the constructor of raspi-io-core
- The idea is that raspi-io will pass raspi.js to this module.
Note: this codebase derives from the Raspi IO codebase, so consider the raspi-io changelog to be historically precede this changelog up to version 7.1.0 of raspi-io.