Skip to content

Releases: elixir-circuits/circuits_i2c

v2.0.6

27 Sep 04:28
Compare
Choose a tag to compare
  • Bug fixes
    • Don't crash on ENXIO (errno 6) failures due to unresponsives I2C targets
    • Add ENXIO as a known error for easier debugging next time

v2.0.5

08 Sep 19:01
Compare
Choose a tag to compare

Only Elixir 1.13 and later are supported now. There are no known issues with
using earlier versions at the moment, but it's no longer regularly checked in
CI.

  • Bug fixes
    • Fix compilation when Erlang has been installed to a directory with spaces

v2.0.4

20 Apr 11:43
Compare
Choose a tag to compare
  • Improvements
    • Improve target detection so that setting MIX_TARGET when not
      crosscompiling does the expected thing on MacOS.

v2.0.3

19 Jan 01:17
Compare
Choose a tag to compare
  • Bug fixes
    • Remove lazy NIF loading. There's an unexplained segfault in a small example
      program that uses the same strategy. Even though it wasn't reproduceable
      here, it's not worth the risk. Thanks to @pojiro for investigating.

v2.0.2

14 Jan 15:24
Compare
Choose a tag to compare
  • Changes
    • Fix race condition when multiple processes load the NIF simultaneously that
      would cause an unnecessary crash.
    • Bump minimum supported version of Elixir to 1.11 since no longer testing
      with it due to a dependency issue.

v2.0.1

22 Oct 19:40
Compare
Choose a tag to compare
  • Changes
    • Add Circuits.I2C.bus() type back to fix a dialyzer warning on projects
      that support both Circuits.I2C 1.0 and 2.0.

v2.0.0

22 Oct 19:14
Compare
Choose a tag to compare

This is a major update to Circuits.I2C that removes the requirement to use
Nerves or Linux. The API is almost the same and the default is to compile and
use the Linux backend, so changes may not be needed.

  • Changes
    • Support alternative backends for different operating systems or for
      simulated hardware
    • For the Linux NIF, support passing a :retry count to Circuits.I2C.open/2
      that will apply to all I2C operations. This simplifies dealing with devices
      with flaky connections.
    • Defer loading the Linux NIF until Circuits.I2C.open/2 is called
    • Return error on Circuits.I2C.open/2 if the device isn't a real I2C device.
      This was previously detected on the first operation.
    • For the Linux NIF, return errno numbers rather than their strerr strings
      when they're unknown. It turned out that the strings could be more confusing
      that the numbers.

v2.0.0-pre.0

30 May 12:55
Compare
Choose a tag to compare
v2.0.0-pre.0 Pre-release
Pre-release

This is a major update to Circuits.I2C that removes the requirement to use
Nerves or Linux. The API is almost the same and the default is to compile and
use the Linux backend, so changes may not be needed.

This is a prerelease so APIs may still change before the v2.0.0 release.

  • Changes
    • Support alternative backends for different operating systems or for
      simulated hardware
    • For the Linux NIF, support passing a :retry count to Circuits.I2C.open/2
      that will apply to all I2C operations. This simplifies dealing with devices
      with flaky connections.
    • Defer loading the Linux NIF until Circuits.I2C.open/2 is called
    • Return error on Circuits.I2C.open/2 if the device isn't a real I2C device.
      This was previously detected on the first operation.
    • For the Linux NIF, return errno numbers rather than their strerr strings
      when they're unknown. It turned out that the strings could be more confusing
      that the numbers.

v1.2.2

24 Mar 20:10
Compare
Choose a tag to compare
  • Fixes
    • Add types.h compatibility header to hex package so that host MacOS builds
      work again.

v1.2.1

20 Mar 23:46
Compare
Choose a tag to compare
  • Fixes
    • Detect I2C controllers that don't support 0-byte writes and revert to the
      old detection heuristic. This fixes an issue on Beaglebones (AM335x) that
      caused devices to be missed and kernel warnings to be logged.