Using GPIO pins
#1
I am sure this is a basic question, but where can I get the python libraries for the Rockpro64.

I have tried the Rock64 from Laepo's github but I do not think they are right for the pro64 board.

When I did try them in Ubuntu 18.04 Bionic lxde OS build I am getting the following errors when I try to access the pins:

>>>Unable to export GPIO
>>>Unable to set GPIO Direction

Programming is fairly new to me, but I try to google everything before asking questions

Thanks

Dave
  Reply
#2
Are you running under root ?
Try it from bash under root user.
Code:
# cd /sys/class/gpio
# ### chose pin to use - pinheader pin 11 == GPIO1_C6 == should be CPU pin 54 (1*32+2*8+6)
# echo 54 > export
# ls gpio54
active_low  device  direction  edge  power  subsystem  uevent  value
# echo out > gpio54/direction
# echo 0 > gpio54/value
# echo 1 > gpio54/value
# echo 0 > gpio54/value
# echo 1 > gpio54/value
# echo in > gpio54/direction
# cat gpio54/value
# echo 54 > unexport
I left this community in Aug 2019 due to PINE64 refusal to produce/deliver ROCK64-1G version 3 after one year of changing statuses to "planning", "evaluating", "releasing", "availability", "estimated availability" and finally "no schedule". Angry
Away
  Reply
#3
This is what I get when I run the script

[email protected]:~/gpio$ sudo ./test.sh
active_low  device  direction  edge  power  subsystem  uevent  value
./test.sh: 5: ./test.sh: active_low: not found
0
[email protected]:~/gpio$
  Reply
#4
Oh, no. Not this way. "#" indicate interactive root prompt (but comment in scripts). Your way:
Code:
[email protected]:~/gpio$ sudo bash
[email protected]:~# cd /sys/class/gpio
[email protected]:/sys/class/gpio# echo 54 > export
[email protected]:/sys/class/gpio# ls gpio54
active_low  device  direction  edge  power  subsystem  uevent  value
[email protected]:/sys/class/gpio# echo out > gpio54/direction
[email protected]:/sys/class/gpio# echo 0 > gpio54/value
[email protected]:/sys/class/gpio# echo 1 > gpio54/value
...
This was write "interactively" so you can check pin with voltmeter or simple low power LED diode (something like this but diode on pin 11 on pinheader (marked as BCM_cpu_pin_17 in demo link, demo link uses BCM_cpu_pin_18 (pin 12 on pinheader))) ... some learning path before you.
I left this community in Aug 2019 due to PINE64 refusal to produce/deliver ROCK64-1G version 3 after one year of changing statuses to "planning", "evaluating", "releasing", "availability", "estimated availability" and finally "no schedule". Angry
Away
  Reply
#5
Thanks, I will try this later on today with a multimeter. I did try the above commands to make sure they work in the OS, and they do work in my rockpro64.

Thanks

ps I have done the light blinking and some other coding on the RP3 and arduinos, but getting the GPIO pins working on the Rockpro seems to be a little more involved
  Reply
#6
So I have this all figured out now. I have spoken with Allison (leapo), given her the new array values and she will be updating her python scripts to include the Rockpro64 board. Thanks for everyone's help, especially Mcerveny

Until the new python scripts get updated you can use these values in the _GPIO.py file


ROCK_valid_channels = [52,53,152,54,50,33,48,39,41,43,155,156,125,122,121,148,147,120,36,149,153,42,45,44,124,126,123,127]

BOARD_to_ROCK = [0,0,0,52,0,53,0,152,148,0,147,54,120,50,0,33,36,0,149,48,0,39,153,41,42,0,45,43,44,155,0,156,124,125,0,122,126,121,123,0,127]

BCM_to_ROCK = [43,44,52,53,152,155,156,45,42,39,48,41,124,125,148,147,124,54,120,122,123,127,33,36,149,153,121,50]
  Reply
#7
Thanks smartdave for your work.

What I do not understand? How do I get the numbers out? http://files.pine64.org/doc/rockpro64/Ro...ver0.2.png

My script


Code:
#!/usr/bin/env python

# Frank Mankel, 2018, LGPLv3 License
# Rock 64 GPIO Library for Python
# Thanks Allison! Thanks smartdave!

import R64.GPIO as GPIO
from time import sleep

print("Output Test R64.GPIO Module...")

# Set Variables
var_gpio_out = 52
#var_gpio_in = 18


# GPIO Setup
GPIO.setwarnings(True)
GPIO.setmode(GPIO.ROCK)
GPIO.setup(var_gpio_out, GPIO.OUT, initial=GPIO.HIGH)       # Set up GPIO as an output, with an initial state of HIGH
#GPIO.setup(var_gpio_in, GPIO.IN, pull_up_down=GPIO.PUD_UP)  # Set up GPIO as an input, pullup enabled

# Test Output
print("")
print("Testing GPIO Input/Output:")

while True:
       var_gpio_state = GPIO.input(var_gpio_out)       # Return State of GPIO
       if var_gpio_state == str(0):
               GPIO.output(var_gpio_out,1)                         # Set GPIO to LOW
               print("Output State IF : " + str(var_gpio_state))              # Print results
       else:
               GPIO.output(var_gpio_out,0)                         # Set GPIO to LOW
               print("Output State ELSE: " + str(var_gpio_state))
       sleep(0.5)
exit()


More infos here -> https://forum.frank-mankel.org/topic/292...-rp64-gpio (sry, only german)
Sorry for any mistakes. English is not my native language

1. RP64 v2.0 / PCIe NVMe as root / sd-card as boot / 2,5 Zoll HDD 1TB (USB3) using as Webserver .... (Kernel 4.4.167-1140-rockchip-ayufan-g6f266fb5d677)
2. RP64 v2.1 / PCIe SATA Marvell 88SE9230 Chipsatz / sd-card / 2 * 2,5 Zoll 2TB HDD (raid1) / using as NAS / Kernel 5.0.0-1101-ayufan-g41eeb7cd789e
3. RP64 v2.1 / testing.....testing....testing

https://forum.frank-mankel.org/category/14/rockpro64



  Reply
#8
What do you mean get the numbers out?

I did all the conversions and came up with the following for CPU pin numbers.

[Image: rockpro64.jpg]
  Reply
#9
That's what I meant. Thank You!
Sorry for any mistakes. English is not my native language

1. RP64 v2.0 / PCIe NVMe as root / sd-card as boot / 2,5 Zoll HDD 1TB (USB3) using as Webserver .... (Kernel 4.4.167-1140-rockchip-ayufan-g6f266fb5d677)
2. RP64 v2.1 / PCIe SATA Marvell 88SE9230 Chipsatz / sd-card / 2 * 2,5 Zoll 2TB HDD (raid1) / using as NAS / Kernel 5.0.0-1101-ayufan-g41eeb7cd789e
3. RP64 v2.1 / testing.....testing....testing

https://forum.frank-mankel.org/category/14/rockpro64



  Reply
#10
Quick test. All pins works except pin # 19 & 26 Undecided
Sorry for any mistakes. English is not my native language

1. RP64 v2.0 / PCIe NVMe as root / sd-card as boot / 2,5 Zoll HDD 1TB (USB3) using as Webserver .... (Kernel 4.4.167-1140-rockchip-ayufan-g6f266fb5d677)
2. RP64 v2.1 / PCIe SATA Marvell 88SE9230 Chipsatz / sd-card / 2 * 2,5 Zoll 2TB HDD (raid1) / using as NAS / Kernel 5.0.0-1101-ayufan-g41eeb7cd789e
3. RP64 v2.1 / testing.....testing....testing

https://forum.frank-mankel.org/category/14/rockpro64



  Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  SPI support in GPIO mr_rabbit 2 157 07-21-2019, 11:42 PM
Last Post: Wom the Bat
  DSI connector is 30 pins NOT 32 ( be aware) AmroIb 3 172 05-25-2019, 06:15 AM
Last Post: dukla2000
  No Hardware Interrupts for GPIO pantera 0 221 10-24-2018, 05:09 AM
Last Post: pantera
  UART pins and settings for ROCKPRO64 frewind 2 1,042 07-27-2018, 03:25 PM
Last Post: frewind

Forum Jump:


Users browsing this thread: 1 Guest(s)