scrapyard-io / gpio-framework
The ScrapyardIO GPIO Framework.
Requires
- php: ^8.4|^8.5|^8.6
- scrapyard-io/framework: ^0.7.0
Requires (Dev)
- pestphp/pest: ^4
Suggests
- microscrap/ftdi: ^0.7.0 - FTDI USB Drivers
- microscrap/gpio: ^0.7.0 - POSIX Digital IO
- microscrap/i2c: ^0.7.0 - POSIX I2C
- microscrap/mpsse: ^0.7.0 - MPSSE USB Drivers
- microscrap/spi: ^0.7.0 - POSIX SPI
- microscrap/uart: ^0.7.0 - POSIX UART
Replaces
- gpio/circuits: 0.7.0
- gpio/common: 0.7.0
- gpio/contracts: 0.7.0
- gpio/digital: 0.7.0
- gpio/i2c: 0.7.0
- gpio/pwm: 0.7.0
- gpio/spi: 0.7.0
- gpio/uart: 0.7.0
This package is auto-updated.
Last update: 2026-08-11 18:20:48 UTC
README
GPIO protocol adapters + Circuits registry for ScrapyardIO framework 0.7.
Install
composer require scrapyard-io/gpio-framework:^0.7.0 php workshop vendor:publish --tag=gpio-circuits-config
Discovery registers GPIOServiceProvider and MagicAliases GPIO / Circuit.
Basics
Protocol connection
use GeneralPurposeIO\Core\MagicAliases\GPIO; use GeneralPurposeIO\I2C\I2C; $slave = I2C::adapter('posix')->device(1)->bus()->slave(0x3C); // or via GPIO::protocol('i2c') when configuring adapters from gpio.php
Circuit bootstrap
use GeneralPurposeIO\Core\MagicAliases\Circuit; Circuit::addCircuit('aht20', \DeptOfScrapyardRobotics\Sensors\AHTx0\AHT20\AHT20::class); $sensor = Circuit::ic('aht20') ->protocol('i2c') ->driver('posix') ->device(1) ->slave(0x38) ->make(); // or a named profile from config/circuits.php $sensor = Circuit::profile('climate_lab');
Scaffold profiles from #[Pinout]:
php workshop circuit:make-profile
Workshop about lists GPIO adapter availability and Integrated Circuits catalog options (not profiles).
Component splits
This umbrella replaces the general-purpose-io read-only subtree packages at self.version:
| Composer | Subtree |
|---|---|
gpio/common |
general-purpose-io/common |
gpio/contracts |
general-purpose-io/contracts |
gpio/digital |
general-purpose-io/digital |
gpio/i2c |
general-purpose-io/i2c |
gpio/spi |
general-purpose-io/spi |
gpio/uart |
general-purpose-io/uart |
gpio/pwm |
general-purpose-io/pwm |
gpio/circuits |
Umbrella replace (no public subtree yet) |
Analog scaffolding lives under GeneralPurposeIO\Analog in this tree; general-purpose-io/analog is the read-only mirror when split.
Prefer requiring scrapyard-io/gpio-framework. The subtree repos stay read-only mirrors of src/GeneralPurposeIO/*.
Carriers
| Path | Packages |
|---|---|
| Native | microscrap/posix + gpio / i2c / spi / uart + ext-posi |
| USB | microscrap/ftdi → mpsse + ext-ftdi |
All ^0.7.0.
Tests
composer update vendor/bin/phpunit
License
MIT