fhunleth/elixir_ale
Interact with hardware in Elixir - GPIOs, I2C and SPI
21 Releases
Latest: 7y ago
v1.2.1Latest
📋 Changes
- Bug fixes
- Fixed incorrect edge notifications when registering for only rising or
v1.2.0
📋 Changes
- New features
- Add `GPIO.pin/1` to get the pin number back. Thanks to @jjcarstens
- Add `child_specs/1` to support creating GPIOs in supervisors
- Improvements
- Various spec improvements
v1.1.0
📋 Changes
- Improvements
- Add `:start_value` to initialize a GPIO. Thanks to @jjcarstens for this
v1.0.3
📋 Changes
- Bug fixes
- Remove catchall receive handlers that would capture GenServer.call
- Timeout all port calls just in case. This hasn't been observed to my
- Pass errors detected by C code to Elixir rather than crashing
v1.0.2
📋 Changes
- Bug fixes
- Fix memory overrun when using large I2C transfers. This only affected a
- Improvements
- Increase max SPI transfer size to 4096. This aligns it with py-spidev and
v1.0.1
📋 Changes
- Bug fixes
- Fixed typespec for `set_int/2`. Thanks to tmecklem for catching the
- Improvements
- Various documentation and code formatting updates
v1.0.0
📋 Changes
- No changes since v0.7.0.
v0.7.0
📋 Changes
- New features
- Added and improved helper functions for finding I2C devices and I2C and
v0.6.2
📋 Changes
- Bug fixes
- Fix message buffer size that was too small for really large I2C transfers
- Many documentation improvements from Axel Clark.
v0.6.1
📋 Changes
- Bug fixes
- Enlarge I2C buffer size to support some OLED displays
- Support compilation on non-Linux platforms. It won't work, but this makes
v0.6.0
*Backwards incompatible changes* This release cleans up the naming of every module. All modules are now in the `ElixirALE` namespace and capitalized since they are acronyms. For example, if you were using the `I2c` module, it's now `ElixirALE.I2C`. You may want to `alias ElixirALE.I2C` in your programs to save typing.
v0.5.7
📋 Changes
- Bug fixes
- Clean up warnings especially the Elixir 1.4 bare function ones
v0.5.6
📋 Changes
- Bug fixes
- I2C transfers may now be up to 512 bytes. Thanks to bendiken for this fix.
v0.5.5
📋 Changes
- New features
- `true` and `false` can now be passed to `Gpio.write/2`
- Bug fixes
- Include i2c-dev.h to avoid incompatible version on Raspbian 8. This also
- Include asm/ioctl.h for a MIPS platform that doesn't include it
v0.5.4
📋 Changes
- Force version of elixir_make to workaround OTP 19 ports issue
v0.5.3
📋 Changes
- Use elixir_make instead of custom mix task
v0.5.1
📋 Changes
- Bug fixes
- Fixed race condition when calling `Gpio.read/1` with interrupts
v0.5.0
📋 Changes
- New features
- Add `I2c.detect_devices/1` to scan the I2C bus
- Add `I2c.read_device/3`, etc. to support devices on more than one I2C
v0.4.1
📋 Changes
- Bug fixes
- Previous fix for `priv` directory in v0.4.0 was insufficient. This
v0.4.0
📋 Changes
- Bug fixes
- Fix issue where `priv` directory symlink wasn't created with `mix`
- Add support for retries when bringing up GPIO interfaces. This should be a
v0.3.0
📋 Changes
- New features
- Use I2C RDWR ioctl so that write/read combinations are atomic. See
