Raspberry Pi library for GPIO, 1-Wire, SPI, System Time Counter (STC) access. There have been provided APIs for handling various popular devices like wireless nRF24L01 transceiver, DHT temperature sensors (DHT11/22), Dallas family of temperature sensors (e.g. DS18B20, DS1822, DS1825), HC-SR04 distance sensor, PISO shift register...
BSD-2-CLAUSE License
Raspberry Pi library for GPIO, 1-Wire, SPI, System Time Counter (STC) access. As an example of usage there have been provided APIs for handling various popular devices like wireless nRF24L01 transceiver, DHT temperature sensors (DHT11/22), Dallas family of temperature sensors (e.g. DS18B20, DS1822, DS1825), HC-SR04 distance sensor, PISO shift register...
API specification contained in the library headers (see src/inc/librasp
).
For examples look in examples
.
NOTE: 1-wire and SPI API bases on generic Linux interfaces (ioctl(2)
, netlink(3)
)
and doesn't relay on any RPi platform specific details. For this reason the
1-wire and SPI services may be used on any embedded Linux platform (e.g.
dsth_list
and dsth_list2
examples may be used to read-out connected Dallas sensors).
make
produces static library src/librasp.a
which may be linked into an application.
make examples
will compile examples.
There is possible to cross-compile the library by setting CROSS_COMPILE
(for
the project Makefile
) to the tool-chain prefix:
CROSS_COMPILE=<tool-chain-prefix> make
The original Linux kernel 1-wire driver (the wire
module) doesn't provide
proper interface for parasite powering of 1-wire slaves via userland's netlink
protocol.
To handle this issue there has been provided a patch for the kernel allowing
the library to fully support the parasite mode. Look in src/kernel
directory for more info.
Configure the library with CONFIG_WRITE_PULLUP
parameter while building
the library (see src/config.h
header for details).
RPi uses w1-gpio
module as a 1-wire bus master driver. The driver needs
to be configured to support bit-banged strong pull-up on the data wire,
required for parasite powering of the connected slaves. Add the following
line in /boot/config.txt
to turn it on via the device-tree overlay (reboot
is required):
dtoverlay=w1-gpio,pullup=on
NOTE: This step is not required when using w1-gpio-cl
driver instead of w1-gpio
.
To reach for the full power of the library, it is strongly recommended
to use the w1-gpio-cl
driver instead of the standard one. The primary
benefit is support for more than one bus master simultaneously and much
more mature parasite powering handling. See the above link for more
details.
Refer examples/dsth_list*
samples for details on probing the parasite
powered Dallas family of temperature sensors.
2 clause BSD license. See LICENSE file for details.