GPIO protocol adapters + Circuits registry for ScrapyardIO framework 0.7.
composer require scrapyard-io/gpio-framework:^0.7.0
php workshop vendor:publish --tag=gpio-circuits-configDiscovery registers GPIOServiceProvider and MagicAliases GPIO / Circuit.
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.phpCircuit 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-profileWorkshop about lists GPIO adapter availability and Integrated Circuits catalog options (not profiles).
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/*.
| Path | Packages |
|---|---|
| Native | microscrap/posix + gpio / i2c / spi / uart + ext-posi |
| USB | microscrap/ftdi → mpsse + ext-ftdi |
All ^0.7.0.
composer update
vendor/bin/phpunitMIT