Skip to content

Instantly share code, notes, and snippets.

@lanefu
Last active July 31, 2024 22:22
Show Gist options
  • Save lanefu/f16a67195c9fa35c466c6b50cdaeadea to your computer and use it in GitHub Desktop.
Save lanefu/f16a67195c9fa35c466c6b50cdaeadea to your computer and use it in GitHub Desktop.
How to get wiring Pi Python libraries on Orange PI with armbian

Overview

Use my fork of the Wiring-Pi Python library which checks out the WiringOP fork of the WiringPi library as a submodule to build everything. yes that's a little confusing

The WiringPI library is the original C library that RaspGPIO is somewhat based on. WiringPi was built to replicate arduino GPIO functions

In Raspberry Pi Land there are 2 normal python paths for GPIO. One is Raspi.GPIO and the other is WiringPI

Known Success

I built this on an Orange Pi One running Armbian Jessie

Pieces

WiringOP C library

WiringOP is a fork of the Banana Pi fork of the WiringPI Library

https://github.com/zhaolei/WiringOP

WiringPi-Python Library

WiringPi-Python is python binding to the C library. The github release uses a submodule and checks out the WiringPi library directly. My fork updates the submodule ot the wiringOP library, and removes a few incompatible includes that keeps the python library from building

https://github.com/lanefu/WiringPi-Python-OP

Install

Build / Install Commands

# install build requirements
sudo apt-get install python-dev python-setuptools swig -y

# download my fork of the wiringpy-python build that contains submodile to wiringOP library
git clone --recursive https://github.com/lanefu/WiringPi-Python-OP.git

# build C and install both Wiring Pi C library and Python
cd WiringPi-Python-OP
cd WiringPi/
sudo ./build
cd ..
export CFLAGS="-lwiringPi -lwiringPiDev"
swig2.0 -python wiringpi.i
sudo python setup.py install

# enable gpio kernel module
sudo sed -i 's/\#gpio_sunxi/gpio_sunxi/g' /etc/modules
sudo modprobe gpio_sunxi
@thk4711
Copy link

thk4711 commented Nov 5, 2016

Hi,
i have managed to install a wiring Pi version for my Orange Pi lite following this tutorial. The basic examples with inputs and outputs are working fine. Since I want to use a rotary encoder and not loose any steps I want to use a interrupt driven callback. There is an example as well but that does not work.
I get: wiringPiISR: unable to open /sys/class/gpio/gpio25/value: No such file or directory
Anything I could do here ?
Thanks - Thomas

@marksev1
Copy link

Will there be also a version for Orange Pi Zero please? From zhaolei and from you lanefu. Lanefu do you maybe know how I could contact zhaolei to ask him regarding version for Orange Pi Zero?

@DaniyalGeek
Copy link

@marksev1

did it work on your zero ?

@infeeeee
Copy link

Change the requirements line pls, swig to swig2.0.
sudo apt-get install python-dev python-setuptools swig2.0 -y

@eadmaster
Copy link

eadmaster commented Dec 11, 2017

Hi, is it possible to control the GPIO pins as a regular user (without sudo)?
I've tried commenting the root check in wiringpi.c, and now it fails because it cannot access /dev/mem.

EDIT: i had a better luck with the gpio command + setuid, so i've made a wrapper library for it.

@abstract17
Copy link

Does it work for Orange Pi 2g-Iot board??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment