PHPackages                             neuronlight/pinout - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. neuronlight/pinout

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

neuronlight/pinout
==================

Electronic device pinout renderer

v1.1.0(7y ago)17GPL-3.0-or-laterPHPPHP &gt;=7.0

Since Mar 21Pushed 7y ago1 watchersCompare

[ Source](https://github.com/neuronlight/pinout)[ Packagist](https://packagist.org/packages/neuronlight/pinout)[ Docs](https://github.com/neuronlight/pinout)[ RSS](/packages/neuronlight-pinout/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (3)Used By (0)

Pinout
======

[](#pinout)

Pinout facilitates the rendering of integrated circuit pinout diagrams from a JSON file.

Installation
------------

[](#installation)

`$ composer require neuronlight/pinout`

Test the installation by browsing to `/vendor/neuronlight/pinout/examples/index.php`

You should see a pinout diagram for the PIC12F675 microcontroller.

Simple usage
------------

[](#simple-usage)

Include the javascript in your web page:

```

```

To have a pinout diagram rendered from a JSON use an element with a `data-device` attribute:

```

```

where (in this case) `pic12f675` is the filename (sans `.json` extension - although it can be included) of the JSON file defining the device.

**You'll also need to include jQuery; either locally or via one of the many CDNs available**

Defining a device
-----------------

[](#defining-a-device)

A JSON file for a device takes the form:

```
{
	"name": "Serial Infrared Decoder",
	"description": "Serial Infrared Decoder based on PIC12F675 8-Bit Microcontroller",
	"package-type": "SDIP",
	"pin-count": 8,
	"pinout": {
	    "undefined": "NC",
		"pins": {
			"1": {
				"name": "VDD",
				"signal-direction": "none",
				"description": "Positive supply"
			},
			"2": {
				"name": "IR IN",
				"signal-direction": "in",
				"description": "Infrared module input"
	        },
			"3": {
				"name": "IR IN",
				"signal-direction": "in",
				"description": "Infrared module input"
	        },
			"4": [
					{
						"name": "MCLR",
						"inverted": true,
						"signal-direction": "in",
						"description": "Master clear"
					},
					{
						"name": "VPP",
						"signal-direction": "in",
						"description": "Programming voltage"
					}
			],
			"5": {
				"name": "Serial Out",
				"signal-direction": "both",
				"description": "Serial data output"
	        },
			"8": {
				"name": "VSS",
				"signal-direction": "none",
				"description": "Ground reference"
			}
		}
	}
}
```

Package types currently supported are DIP, PDIP, CERDIP, SDIP &amp; SPDIP.

(Devices with less than 24 pins that are defined as DIP sized packages are rendered as SDIP)

Changing the appearance of the diagram
--------------------------------------

[](#changing-the-appearance-of-the-diagram)

The diagram is rendered using paramters in the default configuration file:

```
{
	"color": "000",
	"background": "fff",
	"width": 640,
	"height": 480,
	"scale": 10
}
```

Some, or all of the paramters can be overridden in one of two ways.

1. An alternative configuration file (named `pinout_config.json`) can be created and placed in the same directory as the device JSON file (parameters defined this way override those defined in the default configuration file)
2. Other attributes can be added to the HTML element (any parameters define in this way override those defined in any configuration file)

Element attributes supported are:

`data-width` - width of diagram in pixels

`data-height` - height of digram in pixels

`data-scale` - scale of diagram (number of pixels per mm)

`data-color` - diagram color (in hex M, RGB or RRGGBB format)

`data-background` - background color

Direct use
----------

[](#direct-use)

The device image can be called directly. The example image is called, for example, with the form:

```
/vendor/neuronlight/pinout/pinout.php?f=/vendor/neuronlight/pinout/examples/pic12f675.json&w=600&h=300&c=f40

```

The file parameter can be omitted when calling directly; the device JSON being sent as a POST parameter called 'dev' instead. When called in such a way the appearance can only be changed from that defined in the default configuration file by way of `$_GET` parameters (i.e. no custom config file will be loaded).

Experimenter
------------

[](#experimenter)

There's a basic tool included for experimenting with the pinout functions that can be found at `/vendor/neuronlight/pinout/examples/experimenter.php` (html5 browser required).

Share and enjoy.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~57 days

Total

2

Last Release

2919d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/50ead769488c5d02af756d7d8a4549686c59450a262efcf64b12a0548b562d6d?d=identicon)[neuronlight](/maintainers/neuronlight)

---

Top Contributors

[![neuronlight](https://avatars.githubusercontent.com/u/2183586?v=4)](https://github.com/neuronlight "neuronlight (4 commits)")

---

Tags

icpinout

### Embed Badge

![Health badge](/badges/neuronlight-pinout/health.svg)

```
[![Health](https://phpackages.com/badges/neuronlight-pinout/health.svg)](https://phpackages.com/packages/neuronlight-pinout)
```

###  Alternatives

[rashid2538/php-htmldiff

A library for comparing two HTML files/snippets and highlighting the differences using simple HTML.

71129.8k](/packages/rashid2538-php-htmldiff)[tchoulom/view-counter-bundle

The "View Counter" bundle

1731.3k](/packages/tchoulom-view-counter-bundle)[edofre/laravel-fullcalendar-scheduler

Laravel component for fullcalendar scheduler module

251.5k](/packages/edofre-laravel-fullcalendar-scheduler)

PHPackages © 2026

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