PHPackages                             dept-of-scrapyard-robotics/hc-sr04 - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. dept-of-scrapyard-robotics/hc-sr04

ActiveLibrary[Framework](/categories/framework)

dept-of-scrapyard-robotics/hc-sr04
==================================

Drive HC-SR04 ultrasonic distance sensors over GPIO with PHP

0.4.3(yesterday)02↑2900%MITPHPPHP ^8.3

Since Dec 28Pushed yesterdayCompare

[ Source](https://github.com/DeptOfScrapyardRobotics/HC-SR04)[ Packagist](https://packagist.org/packages/dept-of-scrapyard-robotics/hc-sr04)[ Docs](https://dosr.projectsaturnstudios.com)[ RSS](/packages/dept-of-scrapyard-robotics-hc-sr04/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (3)Versions (5)Used By (0)

Basic Usage
-----------

[](#basic-usage)

### Native (POSIX) driver. (Single Board Computers)

[](#native-posix-driver-single-board-computers)

```
use DeptOfScrapyardRobotics\Sensors\HCSR04;
use RealityInterface\Sensors\Enums\LengthUnit;

$native_sensor = HCSR04::connection('native', 0)
    ->echo(22)
    ->trig(24)
    ->create();

// Trigger a Pulse
$native_sensor->fire();

// Pull a reading
$distance = $native_sensor->distance(LengthUnit::CM);
```

### USB (MPSSE) driver. (Linux and MacOS)

[](#usb-mpsse-driver-linux-and-macos)

Not Recommended or Supported.

Alternative Usage
-----------------

[](#alternative-usage)

### Using Through the Sensor Library (as an Ultrasonic Distance Sensor)

[](#using-through-the-sensor-library-as-an-ultrasonic-distance-sensor)

```
use RealityInterface\Sensors\Enums\LengthUnit;
use DeptOfScrapyardRobotics\Sensors\HCSR04\HCSR04;
use RealityInterface\Sensors\Applied\Distance\UltrasonicDistanceSensor;

$hc_sr04 = HCSR04::connection('native', 0)
    ->echo(22)
    ->trig(24)
    ->create();

$sensor = UltrasonicDistanceSensor::as($hc_sr04)->units(LengthUnit::FT);

// Get a distance measurement
$sensor->pulse();
$feet_away = $sensor->readDistance();

// Get a measurement object
$event = $sensor->measure();
```

### Using Through the Sensor Library (as a Generic Distance Sensor)

[](#using-through-the-sensor-library-as-a-generic-distance-sensor)

```
use RealityInterface\Sensors\Enums\LengthUnit;
use DeptOfScrapyardRobotics\Sensors\HCSR04\HCSR04;
use RealityInterface\Sensors\Applied\Distance\DistanceSensor;

$hc_sr04 = HCSR04::connection('native', 0)
    ->echo(22)
    ->trig(24)
    ->create();

$sensor = DistanceSensor::as($hc_sr04)->units(LengthUnit::FT);

// Get a distance measurement
$feet_away = $sensor->getDistance();

// Get a measurement object
$event = $sensor->measure();
```

### Using Through the Sensor Framework (with an autoloaded config) (as an Ultrasonic Distance Sensor)

[](#using-through-the-sensor-framework-with-an-autoloaded-config-as-an-ultrasonic-distance-sensor)

```
use RealityInterface\Sensors\Applied\Distance\UltrasonicDistanceSensor;

$sensor = UltrasonicDistanceSensor::using('hc-sr04')

// Get a distance measurement
$sensor->pulse();
$feet_away = $sensor->readDistance();

// Get a measurement object
$event = $sensor->measure();
```

### Using Through the Sensor Framework (with an autoloaded config) (as a Generic Distance Sensor)

[](#using-through-the-sensor-framework-with-an-autoloaded-config-as-a-generic-distance-sensor)

```
use RealityInterface\Sensors\Applied\Distance\DistanceSensor;

$sensor = DistanceSensor::using('hc-sr04')

// Get a distance measurement
$sensor->pulse();
$feet_away = $sensor->readDistance();

// Get a measurement object
$event = $sensor->measure();
```

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance100

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~55 days

Total

4

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10563160?v=4)[Angel Gonzalez](/maintainers/projectsaturnstudios)[@projectsaturnstudios](https://github.com/projectsaturnstudios)

---

Tags

frameworkscrapyard-io

### Embed Badge

![Health badge](/badges/dept-of-scrapyard-robotics-hc-sr04/health.svg)

```
[![Health](https://phpackages.com/badges/dept-of-scrapyard-robotics-hc-sr04/health.svg)](https://phpackages.com/packages/dept-of-scrapyard-robotics-hc-sr04)
```

###  Alternatives

[pestphp/pest-plugin-stressless

Stressless plugin for Pest

68943.9k18](/packages/pestphp-pest-plugin-stressless)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
