• Stars
    star
    595
  • Rank 75,217 (Top 2 %)
  • Language
    Python
  • Created over 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Source files for the Raspberry Pi Pinout documentation website.

Pinout.xyz

Creative Commons License

Pinout.xyz is the successor to the popular Pi pinout website originally hosted on http://pi.gadgetoid.com/pinout.

To support translation efforts, and allow people to build tools with the data in this repository, Pinout.xyz is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

This license excludes the 'pinout-graphic-horizontal' files located in the graphics directory and the 'pi-orientation' graphic located in resources, which are provided under a Creative Commons Attribution-ShareAlike 4.0 International License to permit commercial use; specifically publication in books and magazines with appropriate attribution.

This license also excludes all board photography which is pinched from various sources in the hope that using it for documentation/promotional purposes will not raise any hackles.

About this project

The contents of this GitHub repository are used to build http://pinout.xyz and its translated subdomains.

This project aims to build a consistent workflow behind the Pinout.xyz front-end, gather useful information about the Raspberry Pi GPIO interface and add-on boards, and invite board manufacturers to produce their own "overlay" files which describe which pins their Pi add-ons use.

We hope that by making this project open and extensible we will invite not only contributions of board pinouts, but translations too.

Reporting Issues & Making Suggestions

If you've spotted an error, ommission or have a suggestion, raise an issue. Feedback on every aspect of the site or this repository is welcome!

Contributing

If you have a board you'd like to contribute, the preferred method for submission is to create a modified version of the overlay template and create a pull request. Please ensure the files you submit are being pushed to the /draft folder, where it will be reviewed before publication.

Note that as part of the submission, a top-down view of the board in the form of a png is expected. If you can't produce the png file yourself, just duplicate and rename template.png but make sure to include a url somewhere in the overlay where we can fetch a suitable graphic.

Once your draft has been made, before filing a pull request, you should try to render the page and make sure it build and appears as intended. To do so:

./draft/publish.sh myboard
make serve LANG=en

And then open: http://127.0.0.1:5000 in your browser.

Once you are happy with the result,

./draft/unpublish.sh myboard

(this will file the overlay back into the draft folder, ready for review)

note 1: you will need several python modules installed on your system to render and serve a local version of the site, run
pip install -r requirements.txt from the top of the repository tree to install the required modules.

note 2: if you are facing issues with your preview (board not showing, text update not appearing, etc.), you can fix it by erasing your browser's cache (image and cache file only).

If you feel that the requirements for submissions is beyond your current possibilities, you may raise an issue requesting the addition of a specific board instead and we'll consider it!

Running in Docker

The webserver can also be run in a Docker container. To do this, you first need to build the Docker image:

docker build -t pinout.xyz .

Next, you can start the containerized webserver:

docker run -p 5000:5000 -e PINOUT_LANG=en pinout.xyz

Now you can access the webserver at http://127.0.0.1:5000.

Translating

If you would like to provide support for a language not yet in the repository you should start by duplicating the src/en directory to the appropriate language-code. For example, if you want to create a Czech translation you would create the folder src/cs. Note that there are no plans to support cultures (it would just get out of hand), so you can't have src/fr-CA (sorry!).

The first resources we recommend you translate are the language-specific strings found in the settings.yaml file, pi-pinout.md, index.md, 404.md and the footer.html template, as well as the content of the /pin folder, preferably.

Once that's done, rename the /overlay folder to /translate and start translating the boards markdown files (pick any you fancy translating, it does not have to be the first board in alphabetical order). Leave those translations in the /translate folder when finished.

Please do not attempt to translate the /resources folder, or anything not specifically mentioned in this section of the README - all files outside your <languagecode> directory are shared between the subdomains and are meant to be generic. Feel free to modify the template with links relevant to your country, and / or your Twitter handle however, but don't fiddle with the structure!

Once you've made your translation, you can build and preview it with, for example:

make serve LANG=de

And then open: http://127.0.0.1:5000 in your browser.

The last step will be to submit your finished translation as a pull request (this can include any number of boards, it does not have to be the entire line-up) and we'll get it live on its own <languagecode>.pinout.xyz subdomain.

If you wish to provide a translation for an existing subdomain, or correct a typo in an existing markdown file, just edit the file in place (leaving the files in the translate folder for review, if you are pushing a translation).

If you have a question about translations, raise an issue and we'll be happy to help you get past whatever hurdle you may face!

Roadmap & wishlist

  • Redesign HTML generation and unify HTML templates into a single, translatable file
  • Add functionality to compare two or more boards, to visualise pin compatibility
  • Tool to convert WiringPi to GPIO to BCM and back
  • Add as many boards as possible!

Acknowledgement

Maintainers: @Gadgetoid and @RogueM

GPIO Zero code examples by: @bennuttall

Notable contributions:

More Repositories

1

pi400kb

Raw HID keyboard forwarder to turn the Pi 400 into a USB keyboard
C
231
star
2

galactic-bluetooth-audio

C++
34
star
3

py-smbus

Python bindings for Linux SMBus access through i2c-dev
C
27
star
4

pico.pinout.xyz

Raspberry Pi Pico Pinout Page
HTML
20
star
5

python-airmash

Python client API for Airma.sh
Python
19
star
6

Pinout

Raspberry Pi Pinout micro-site, provided for translation, fact checking and suggestions under CC3.0
HTML
19
star
7

RPi.version

Raspberry Pi version information module for Python, useful for debugging and model detection
Python
12
star
8

python-sidchip

Python-SIDChip represents the Commodore 64 SID chip in a clean, concise way. It's able to produce a list of registers for sending to real or emulated chips.
C++
12
star
9

DfuSE

Mirror of ST DfuSe USB device firmware upgrade (DFU) software source & third party enhancements
C++
10
star
10

PiGlow-Web-Remote

PiGlow remote using RaphaelJS front-end and Python/Flask with WiringPi2-Python back-end
JavaScript
10
star
11

wallpaper

A collaborative wallpaper project. Somewhere between art and insanity. Includes tools to build a tiled wallpaper at any resolution/tile size. Contribute your tiles to make your mark.
Python
9
star
12

microbit.pinout.xyz

Everything you know and love about Pinout.xyz, now for the BBC micro:bit
HTML
7
star
13

Arduino-DueVGA-Tools

Tools and code examples for converting/displaying bitmapped graphics on the Arduino Due using the DueVGA library.
C
7
star
14

dir2uf2

Python
6
star
15

32blit-dots

C++
6
star
16

Yubi2WSL

Windows 10 to WSL Linux bridge setup for YubiKey SSH and GPG services
Shell
6
star
17

Arduino-SerialVGA

Arduino Library for the Hobbytronics.co.uk Serial VGA driver board
C++
5
star
18

pirate-mp3

Basic MP3 Player for the Pimoroni Pirate Audio boards
Python
5
star
19

Gadgetoid

(ノ◕ヮ◕)ノ*:・゚✧ README
4
star
20

gu-multiverse

USB Serial framebuffer for Galactic Unicorn
C++
4
star
21

pgfutil

Pico Graphics Font Util - A tool for converting and pixel'ing bitmap fonts for PicoGraphics
Python
4
star
22

PiGlow-Arduino

Arduino Library for the PiGlow
C++
4
star
23

picade-ps3

PS3/sixaxis compatible firmware for the Picade Kickstarter and 2015 editions
C++
3
star
24

displayhatmini-fbdev-dts

dtoverlay for Pimoroni Display HAT Mini, using the obsolete fbdev driver from staging
Python
3
star
25

SIDStream

Decode SID files and stream them over a serial port for Parallax Propeller SIDcog emulator.
C
3
star
26

enviro-picow-experiments

Python
3
star
27

picovision-micro-computer

C++
3
star
28

Ruby-mcapi

Ruby client library for the Minecraft Raspberry Pi edition API
Ruby
2
star
29

rocks-and-diamonds-32blit

A clone of rocks-and-diamonds/boulderdash
C++
2
star
30

jquery-gaat

Google Analytics Advanced Tracking JS/JQuery
JavaScript
2
star
31

BASH-by-example

Learn the mystical powers of BASH, and take your command of Linux to the next level
2
star
32

rp2040-lcd-fft

Adapted from Hunter Adams Pico FFT - https://vanhunteradams.com/Pico/VGA/FFT.html
C++
2
star
33

Ruby-RPi-Binary-Clock

A binary clock for the Raspberry Pi, written in Ruby and designed to drive 14 LEDs to indicate day of week, hours and minutes.
Ruby
2
star
34

i2c-tools

Distribution of smbus to pypi- aims to relieve package dependency issues with libraries using smbus that were previously relying on `python-smbus` from apt.
Perl
2
star
35

pico-universal-flash-nuke

C
2
star
36

jqueryformstyle

Automatically exported from code.google.com/p/jqueryformstyle
1
star
37

pico-rgb-keypad-debounce

Button debounce example for the Pimoroni Pico RGB Keypad Base
C++
1
star
38

jquery-further-tags

Automatically exported from code.google.com/p/jquery-further-tags
1
star
39

doglcd-arduino

Automatically exported from code.google.com/p/doglcd
C++
1
star
40

test-boilerplate-releases

C++
1
star
41

Serial-TFT-Python

Python examples for the HobbyTronics Serial-TFT board.
Python
1
star
42

actions-testing

1
star
43

Due-Megadrive-Controller

Basic Megadrive controller bridge for the Arduino Due. Bring your own 9-pin D-Sub socket and soldering.
Arduino
1
star
44

libgpiod-python

Python
1
star
45

scratchio

Extensible, plugin-based IO framework for Scratch
Python
1
star
46

resources

1
star
47

python-sn3218

Basic sn3218 18 channel, i2c LED driver, driver for Python. Uses SMBUS.
Python
1
star
48

pico-graphics-advanced-techniques

Various scrappy examples showing off more ambitious drawing techniques in PicoGraphics
Python
1
star
49

picodocs

1
star
50

32blit-infinimap

C++
1
star
51

pico-zoetrope

C++
1
star
52

Mopidy-HVSC

1
star
53

pico-tinyusb-i2s-speaker

C
1
star
54

sandbox

1
star
55

Bonescript-Bonesched

Scheduler for Bonescript
JavaScript
1
star
56

raphaeljs-dots

Browser-based Dot matching game implemented in RaphaelJS
JavaScript
1
star
57

micropython-cppmem

A very basic tracked allocator to replace new/delete on RP2040 MicroPython for C++ modules
C++
1
star
58

arm-gnu-toolchain-build

Shell
1
star
59

SinatraStrap

Tidy Ruby website boilerplate including Sinatra, Bootstrap CSS, DataMapper, SQLite
Ruby
1
star
60

rtkmcb-python

Ryanteck Motor Controller Board Python Library
Python
1
star
61

OpenBookAPI-Ruby

API for the OpenBook API
Ruby
1
star
62

svg.brushstroke.js

Animate line drawing of SVG paths.
JavaScript
1
star
63

32blit-pico-graphics-toy

C++
1
star
64

python-piglow

Module for driving the PiGlow Raspberry Pi add-on board
Python
1
star
65

Snippy

Python snippets
Python
1
star
66

ArduinoDueGame

C
1
star
67

slicepy

Python library for Slice LEDs
Python
1
star
68

seas-the-day-32blit

1
star
69

32BlitFlashTest

Test binaries and instructions for testing external flashing.
C++
1
star
70

oled-backlight

Python
1
star
71

rpi2c

Raspberry Pi I2C Library
Python
1
star
72

DogLCD

Raspberry Pi DogLCD driver library
Python
1
star
73

FFsockeT

Record from a microphone, apply an FFT and output to a UNIX socket
C++
1
star
74

st7565

Experimental Raspberry Pi drivers for the st7565 LCD with 2-bit greyscale support ( simulated 4 colours )
Python
1
star
75

pico-rgb-keypad-lights-out

CMake
1
star
76

pico-multi-endpoint-gamepads

C
1
star