From b02fcae87d42363cd64c3eaa87b53fc0dd5c8985 Mon Sep 17 00:00:00 2001 From: Wu Jiang Date: Thu, 21 Jan 2016 15:42:27 -0500 Subject: [PATCH] Give rpi some time to link digital pin property It looks like Raspberry pi needs some time to get a digital pin link properly after it is being exported. Sample code to run: ```go package main import ( "fmt" "github.com/kidoman/embd" _ "github.com/kidoman/embd/host/rpi" ) func main() { defer embd.CloseGPIO() fmt.Println(embd.SetDirection(10, embd.Out)) } ``` - before the change, the output is: `open /sys/class/gpio/gpio10/direction: permission denied` - after the change, the output is `` Close #52 --- host/generic/digitalpin.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/host/generic/digitalpin.go b/host/generic/digitalpin.go index 80a81ea..4168676 100644 --- a/host/generic/digitalpin.go +++ b/host/generic/digitalpin.go @@ -47,6 +47,8 @@ func (p *digitalPin) init() error { if err = p.export(); err != nil { return err } + // give rpi some time to link digital pin property + time.Sleep(100 * time.Millisecond) if p.dir, err = p.directionFile(); err != nil { return err }