Announcing v3.4.0

physic types now implement flag.Value

Version 3.4.0 is released!

This is a feature and bug fix release, the last one for 2018.

Special thanks to NeuralSpaz for his outstanding contributions to the physic package.

This is the last version supporting go1.6 and lower. periph v3.5.0 will require go1.7 or later.

The new release contains 53 changes from 8 contributors for a diff stat of 80 files changed, 10425 insertions(+), 1629 deletions(-).

New packages

  • sn3218: experimental support for sn3218 LED driver.
  • mcp9808: experimental support for digital temperature sensor.


Stable packages

  • gpiostream: make PinIn/PinOut implement pin.Pin. This is technically a breaking change but we do not expect any consumer to have implemented this interface.
  • i2c: Adds i2c.Addr type, it implements flag.Value. This will make it possible to directly accept an I²C address in command line tools.
  • gpio: fix PWM example to show up in godoc.
  • physic: make all types implement flag.Value; add Frequency RPM; add 4 new Energy constants; improve Angle.String(); performance improvements.
  • sysfs: incude thermal sensors from hwmon.
  • gpiosmoketest: test that Halt unblocks WaitForEdge; make sysfs.Pin detection work with aliases

Experimental packages

  • analog: improve PinADC and PinDAC, rename Reading to Sample.
  • hx711: implement analog.PinADC.
  • bitbang: make i2c use physic.Frequency.
  • ina219: Fix currentLSB calculation.
  • pca9548: i2c multiplexer.
  • nrzled: clean up NRZ encoded as 3 or 4 bits; merge SPIDev into Dev.
  • ads1x15: fixed synchronization, added cmd tool.


  • gohci: run periph-smoketest gpio smoketest on both RPi and BeagleBone.
  • Reduce the number of golint reports.
  • Stop using t.Fail() and FailNow.
  • Add github templates for bug report and pull request.

Special thanks

Thanks to:

I (@maruel) did the rest, including the release process and the gohci test lab.

Found bugs? Have questions?

Follow for news and updates!