Version 2.3.0 is released!

This is a feature and user improvement update with new packages in preparation for v3. This is the last v2 release (for real!). As of now, the v3 branch has been merged into master so if you go get periph, you will get the v3 changes, not v2.3.0.

The new release contains 34 changes for a diff stat of 72 files changed, 3043 insertions(+), 742 deletions(-).

New packages for v3

Two new packages were added right away to reduce the delta with v3:

  • image14bit: added in preparation for lepton v3 changes.
  • physic: new package with fixed point units to represent the physical world. It replaces the units that were defined in package devices in v2.


A slew of improvements were done in the past month:

  • allwinner and bcm283x: add automatic fallback to sysfs GPIO if the CPU driver failed to load. This means users can still use these Pin definition even if only sysfs access is available.
  • chip, pine64, odroid, rpi: Made the header drivers load even if the CPU driver failed, so the headers are defined, and will fallback to sysfs GPIO if needed.
  • bcm283x: added PinsSetup0To27(), Drive(), SlewLimit() and Hysteresis().
  • sysfs: performance improvements in I2C and SPI by removing memory allocation in the common path.
  • apa102: removed memory allocation in Halt().
  • bmxx80: added benchmarks to compare the different calibration function implementations.
  • Added more GPIO benchmarks, yet accelerated gohci cycle time by skipping partially redundant ones.
  • Fixed Kelvin to not use the ° symbol.
  • Internal refactoring to help maintenance.

Special thanks

Thanks to Menno for help with Lepton design improvements and contribution of the image14bit package

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

Found bugs? Have questions?

Follow for news and updates!