Do you develop apps with Python? Banana Pi GPIO Python test is OK. Code uploaded to Github

With all the hard work being done by the BPI team, BPI Github now officially releases BPI-WiringPi2-Python. We’ve customized WiringPi for BPI products with the latest WiringPi2-Python version, V1.1.1

1 Like

Hi, I was unable tu use Wiringpi-Python. I’ve installed BPI-WiringPi.git -b BPI_M2 and then BPI-WiringPi2-Python.git -b BPI_M1_M1Plus I’ve successfully run blink.sh ,meaning that WiringPi is working but unable tu run test.py. When tried to run test.py I’ve got the following error, that seems to expect RaspberryPi instead of BPI-M2 I’m using raspbian and followed all steps listed at README.md (or I think so) but keep having the same error Can you help me please?

bananapi@BPI-M2 ~/ports/BPI-WiringPi2-Python $ sudo python test.py Unable to determine hardware version. I see: Hardware : sun6i ,

Regards Martin

Hi Guy’s, nobody can help me with Python GPIO. I’m still stuck the same error about harware version. Please, need help!! Regards Martin

HI: The WiringPi2 Python currently supports M1/M1 Plus only; M2 has not yet been supported. We’ll get the code done to support M2 as soon as we can.

Is this the reason why it reads on Github and also in your first post here in this thread: “Supports BananaPi BPI -M1 / M1Plus / M2 /”. You write the M2 is supported and if one wastes hours of lifetime to get the stuff working it’s not supported any longer?

But hey, this is the usual style how the ‘team Banana Pi’ deals with informations. You simply don’t give a sh*t whether any information/announcement here or on any of the other ‘official’ sites is true or not.

This is the situation one and a half year after the release of the first Banana Pi: The manufacturer produces two more totally incompatible boards also called Banana Pi only creating confusion since they’re are marketed as being somewhat identical/compatible to the original Banana Pi M1 which they obviously aren’t.

There is no support any longer available after LeMaker gave up the Bananas, you abandoned the former ‘official’ forum over at bananapi.com and most likely you will do the same with this forum in a few months and the Banana community is shrinking more and more.

Well done… :frowning:

1 Like

Hi Justin, any update about M2 WiringPi2? I’m still waiting! Regards

Hi banana-pi Unfortunately, I have the same problem. I selected M2 for its operating temperature (-15 ~ 70) but now I should return back to raspberry because of its safety and working properly (python GPIO)! :disappointed:

Hi Justin, more than a month from last reply. Are you really working on Python GPIO?. We are still waiting. Regards Martin

Why on earth are you waiting? Still not realized what (non existent) software/support mean for a piece of hardware?

Click on the link in the first post, then select the “BPI-M2” branch and then click on the commit log:

Since 4 months no code commits only adjustments of README.md. Doesn’t that look promising? :joy:

But it gets even better since this is the initial commit in this branch: Initial commit · BPI-SINOVOIP/BPI-WiringPi2-Python@a27a156 · GitHub

Woohoo! The whole contents are just one file. And that’s README.md again. In other words: There is nothing at all. :joy: :joy: :joy:

All they have for the M2 since 4 months is a misleading README.md tricking users into believing there would be software. And who is to blame for? You users that still buy from a vendor that sells hardware without any useable software or support. Because this is the proof of evidence for the manufacturer of boards called ‘Banana Pi’ that there are no efforts needed since you buy hardware even when it’s not useable :slight_smile:

They do not even hide that they don’t support the M2. You just have to click on the link in the 1st post of this thread.

1 Like

HI martinmatias: you can try it. This is beta version for M2 (Python GPIO). We will improve it as soon as possible.

commit in this branch ==>https://github.com/BPI-SINOVOIP/BPI-WiringPi2-Python/commit/ce0b067cc2143217e42a348f96b5f71c2241508b

git clone https://github.com/BPI-SINOVOIP/BPI-WiringPi.git -b BPI-M2

It’s again unbelievable.

The fixes are from 2015-11-02: https://github.com/BPI-SINOVOIP/BPI-WiringPi2-Python/commits/ce0b067cc2143217e42a348f96b5f71c2241508b/WiringPi/VERSION

And it took you 5 weeks only to merge the pull request? 5 weeks? Really?

1 Like

Hi Justin, I’m still stuck with wiringPi:

git clone https://github.com/BPI-SINOVOIP/BPI-WiringPi.git -b BPI-M2
Cloning into 'BPI-WiringPi'...
fatal: Remote branch BPI-M2 not found in upstream origin
Unexpected end of command stream

I’ve downloaded the zip file into the brunch (I’m not familiar with github) and then run the installation script:

sudo python setup.py install

and failed: please, let me know if I’m doing something wrong or its bad code

wiringPi.c -o build/temp.linux-armv7l-2.7/WiringPi/wiringPi/wiringPi.o
WiringPi/wiringPi/wiringPi.c:671:3: warning: excess elements in array initializer [enabled by default]
WiringPi/wiringPi/wiringPi.c:671:3: warning: (near initialization for ‘pinTobcm_BP’) [enabled by default]
WiringPi/wiringPi/wiringPi.c:754:3: warning: excess elements in array initializer [enabled by default]
WiringPi/wiringPi/wiringPi.c:754:3: warning: (near initialization for ‘BP_PIN_MASK’) [enabled by default]
WiringPi/wiringPi/wiringPi.c: In function ‘sunxi_gpio_unexports’:
WiringPi/wiringPi/wiringPi.c:796:13: warning: assignment makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:796:56: warning: comparison between pointer and integer [enabled by default]
WiringPi/wiringPi/wiringPi.c:805:5: warning: passing argument 1 of ‘fprintf’ makes pointer from integer without a cast [enabled by default]
/usr/include/stdio.h:353:12: note: expected ‘struct FILE * __restrict__’ but argument is of type ‘int’
WiringPi/wiringPi/wiringPi.c:806:5: warning: passing argument 1 of ‘fclose’ makes pointer from integer without a cast [enabled by default]
/usr/include/stdio.h:234:12: note: expected ‘struct FILE *’ but argument is of type ‘int’
WiringPi/wiringPi/wiringPi.c: In function ‘sunxi_pwm_set_all’:
WiringPi/wiringPi/wiringPi.c:1212:5: warning: ‘return’ with a value, in function returning void [enabled by default]
WiringPi/wiringPi/wiringPi.c:1221:21: error: ‘PWM_CLK_DIV_64’ undeclared (first use in this function)
WiringPi/wiringPi/wiringPi.c:1221:21: note: each undeclared identifier is reported only once for each function it appears in
WiringPi/wiringPi/wiringPi.c: In function ‘pwmWrite’:
WiringPi/wiringPi/wiringPi.c:2655:6: warning: unused variable ‘pwm_ch’ [-Wunused-variable]
WiringPi/wiringPi/wiringPi.c:2654:14: warning: unused variable ‘a_val’ [-Wunused-variable]
WiringPi/wiringPi/wiringPi.c: In function ‘wiringPiSetup’:
WiringPi/wiringPi/wiringPi.c:3236:27: error: lvalue required as left operand of assignment
WiringPi/wiringPi/wiringPi.c:3261:7: warning: passing argument 1 of ‘wiringPiFailure’ makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:1503:5: note: expected ‘int’ but argument is of type ‘char *’
WiringPi/wiringPi/wiringPi.c:3266:2: warning: passing argument 1 of ‘wiringPiFailure’ makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:1503:5: note: expected ‘int’ but argument is of type ‘char *’
WiringPi/wiringPi/wiringPi.c:3271:6: warning: passing argument 1 of ‘wiringPiFailure’ makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:1503:5: note: expected ‘int’ but argument is of type ‘char *’
WiringPi/wiringPi/wiringPi.c:3293:7: warning: passing argument 1 of ‘wiringPiFailure’ makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:1503:5: note: expected ‘int’ but argument is of type ‘char *’
WiringPi/wiringPi/wiringPi.c:3298:6: warning: passing argument 1 of ‘wiringPiFailure’ makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:1503:5: note: expected ‘int’ but argument is of type ‘char *’
WiringPi/wiringPi/wiringPi.c:3303:7: warning: passing argument 1 of ‘wiringPiFailure’ makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:1503:5: note: expected ‘int’ but argument is of type ‘char *’
WiringPi/wiringPi/wiringPi.c:3308:7: warning: passing argument 1 of ‘wiringPiFailure’ makes integer from pointer without a cast [enabled by default]
WiringPi/wiringPi/wiringPi.c:1503:5: note: expected ‘int’ but argument is of type ‘char *’
WiringPi/wiringPi/wiringPi.c: At top level:
WiringPi/wiringPi/wiringPi.c:721:12: warning: ‘physToGpioR3’ defined but not used [-Wunused-variable]
WiringPi/wiringPi/wiringPi.c: In function ‘sunxi_pwm_get_channel’:
WiringPi/wiringPi/wiringPi.c:1196:1: warning: control reaches end of non-void function [-Wreturn-type]
error: command 'gcc' failed with exit status 1

Regards Martin

It’s easy: You have to follow these instructions first they say: https://github.com/BPI-SINOVOIP/BPI-WiringPi2-Python/blob/BPI-M2/README.md

If you don’t do this first, the next step can’t work. The problem is: The first doesn’t work either. Because they don’t give a sh*t about correctness of their informations (as usual, it’s everytime the same). The instructions are wrong as they are everytime unless a customer complains again and again so they correct it a few weeks/months later if at all (in this case it’s just “-” vs. “_”)

Why don’t you give up? You bought a paperweight with non-functional software. Throw it in the trashbin. It’s the best you can do.

1 Like

HI: We’ll have our R&D fix this issue as soon as possible

C’mon Justin, don’t fool your customers.

Here you write the prerequisits to build BPI-WiringPi2-Python are to build BPI-WiringPi first using this command:

git clone https://github.com/BPI-SINOVOIP/BPI-WiringPi.git -b BPI-M2

But there is no branch called “BPI-M2”, there’s only BPI_M2 ("-" vs. “_”). For stuff like this there’s no “R&D” needed. Only accuracy. But unfortunately all your ‘instructions’ are just sloppy copy&paste from somewhere else and none of the stuff you provide here has ever been tested. ‘Team BPi’ simply doesn’t care. Neither about accuracy nor that your customers have to waste hours and days of their live when they try to follow any of these crappy ‘instructions’.

Hi Banana-pi

I have exactly the problem as martinmatias had!

“WiringPi/wiringPi/wiringPi.c: In function ‘sunxi_pwm_get_channel’: WiringPi/wiringPi/wiringPi.c:1196:1: warning: control reaches end of non-void function [-Wreturn-type] error: command ‘gcc’ failed with exit status 1”

Banana PI M1+, Python 3.4 (2.7 works, but I am not using it):

import wiringpi2 Traceback (most recent call last): File “/home/djmanas/BPI-WiringPi2-Python/wiringpi2.py”, line 18, in swig_import_helper fp, pathname, description = imp.find_module(’_wiringpi2’, [dirname(file)]) File “/usr/lib/python3.4/imp.py”, line 297, in find_module raise ImportError(_ERR_MSG.format(name), name=name) ImportError: No module named ‘_wiringpi2’

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File “”, line 1, in File “/home/djmanas/BPI-WiringPi2-Python/wiringpi2.py”, line 28, in _wiringpi2 = swig_import_helper() File “/home/djmanas/BPI-WiringPi2-Python/wiringpi2.py”, line 20, in swig_import_helper import _wiringpi2 ImportError: /usr/local/lib/python3.4/dist-packages/wiringpi2-1.1.1-py3.4-linux-armv7l.egg/_wiringpi2.cpython-34m.so: undefined symbol: PyString_FromStringAndSize

But I am really glad, that readme.md is getting updated :smiley: :smiley::smiley: