The SPI PHP Extension provides an object-oriented wrapper to the spidev Linux Kernel driver that gives users the ability to write code that interacts with external hardware using the SPI protocol.
- PHP >= 8.0 (either NTS or ZTS version);
Note: if you are using this extension on Raspbian or Raspberry Pi OS, the user executing the script must belong to the spi group or you may run into "Permission denied" errors.
On Raspbian or Raspberry Pi OS:
PHP 8.0:
sudo apt install php8.0-cli php8.0-dev php8.0-phpdbg
PHP 8.1:
sudo apt install php8.1-cli php8.1-dev php8.1-phpdbg
phpize
./configure
make
make test
Mode | Constant | Description |
---|---|---|
00 | SPI\MODE_0 | Clock idle low, data valid at beginning of pulse (low to high) |
01 | SPI\MODE_1 | Clock idle low, data valid at end of pulse (high to low) |
10 | SPI\MODE_2 | Clock idle high, data valid at beginning of pulse (high to low) |
11 | SPI\MODE_3 | Clock idle high, data valid at end of pulse (low to high) |
After changing any of the stubs, the main stub file must be updated by running the command below.
php stubs/update-main-stup.php
Once the stub is updated, the regular build process can be executed.
Note: The main stub file (phpspi.stub.php) is a generated file, edit the files on the stubs folder instead.
All namespace defined constants can be seen in the Constants.php stub.
Class | Description |
---|---|
SPI\Bus | Represents a SPI Bus. |
SPI\Exception | Base exception. |
- https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md
- https://github.com/topherCantrell/ER-OLEDM032-1
- Golang: periph/conn
- NodeJS: alexeden/spi-node
- NodeJS: fivdi/spi-device
- NodeJS: natevw/pi-spi
- Python: doceme/py-spidev
This library is licensed under the PHP License.