# Wpi issues in function node for controling gpio pins from function node

**URL:** <https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272>\
**Category:** General\
**Created:** [17 December 2019 19:09 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272 "2019-12-17T19:09:10Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![vv3Ak](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/vv3ak/32/15259_2.png) [@vv3Ak](https://discourse.nodered.org/u/vv3Ak)\
**Post date:** [17 December 2019 19:09 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/1 "2019-12-17T19:09:10Z")

</div>

hey,  
I have an issue with wpi.setup();

var wpi = context.global.wpi;

wpi.setup();

17.12.2019, 20:18:43[node: Move!](http://192.168.0.103:1880/#)function : (error)

"TypeError: Cannot read property 'Setup' of undefined"

can anyone help me with some info?  
Thx

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [17 December 2019 19:17 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/2 "2019-12-17T19:17:18Z")

</div>

What is wpi ?

We really need more info if you want assistance.

---

<div class="post-metadata">

**Author:** ![vv3Ak](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/vv3ak/32/15259_2.png) [@vv3Ak](https://discourse.nodered.org/u/vv3Ak)\
**Post date:** [17 December 2019 19:29 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/3 "2019-12-17T19:29:28Z")

</div>

here is my cod in the Move! function node to control gpio pins

var front = 18;  
var back = 16;

var right =11;  
var left = 13;

var led1 = 1;

var wpi = context.global.wpi;

wpi.setup();

wpi.pinMode(front, wpi.modes.OUTPUT);  
wpi.pinMode(back, wpi.modes.OUTPUT);  
wpi.pinMode(right, wpi.modes.OUTPUT);  
wpi.pinMode(left, wpi.modes.OUTPUT);  
wpi.pinMode(led1, wpi.modes.OUTPUT);

wpi.digitalWrite(front, wpi.LOW);  
wpi.digitalWrite(back, wpi.LOW);  
wpi.digitalWrite(right, wpi.LOW);  
wpi.digitalWrite(left, wpi.LOW);  
wpi.digitalWrite(led1, wpi.LOW);

if (msg.payload == "Forward"){  
console.log("Forward");  
wpi.digitalWrite(back, wpi.HIGH);  
wpi.digitalWrite(back, wpi.LOW);  
wpi.digitalWrite(right, wpi.LOW);  
wpi.digitalWrite(left, wpi.LOW);  
wpi.digitalWrite(led1, wpi.LOW);  
} else if (msg.payload == "Reverse"){  
console.log("Reverse");  
wpi.digitalWrite(front, wpi.LOW);  
wpi.digitalWrite(back, wpi.HIGH);  
wpi.digitalWrite(right, wpi.LOW);  
wpi.digitalWrite(left, wpi.LOW);  
wpi.digitalWrite(led1, wpi.LOW);  
} else if (msg.payload == "Right"){  
console.log("Right");  
wpi.digitalWrite(front, wpi.LOW);  
wpi.digitalWrite(back, wpi.LOW);  
wpi.digitalWrite(right, wpi.HIGH);  
wpi.digitalWrite(left, wpi.LOW);  
wpi.digitalWrite(led1, wpi.LOW);  
} else if (msg.payload == "Left"){  
console.log("Left");  
wpi.digitalWrite(front, wpi.LOW);  
wpi.digitalWrite(back, wpi.LOW);  
wpi.digitalWrite(right, wpi.LOW);  
wpi.digitalWrite(left, wpi.HIGH);  
wpi.digitalWrite(led1, wpi.LOW);  
} else{  
console.log("Stop");  
wpi.digitalWrite(front, wpi.LOW);  
wpi.digitalWrite(back, wpi.LOW);  
wpi.digitalWrite(right, wpi.LOW);  
wpi.digitalWrite(left, wpi.LOW);  
wpi.digitalWrite(led1, wpi.LOW);  
}

return msg;

---

<div class="post-metadata">

**Author:** ![vv3Ak](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/vv3ak/32/15259_2.png) [@vv3Ak](https://discourse.nodered.org/u/vv3Ak)\
**Post date:** [17 December 2019 19:32 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/4 "2019-12-17T19:32:11Z")

</div>

![Untitled1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/0/05cd9c078c12c609bf9a0f7ed4883eea20e0d20a.png)

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [17 December 2019 21:26 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/5 "2019-12-17T21:26:00Z")

</div>

Where did you get the

```auto
var wpi = context.global.wpi;

wpi.setup();

```

from ?

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [18 December 2019 07:31 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/6 "2019-12-18T07:31:00Z")

</div>

Maybe wpi is a node version of the old wiring-pi C library????

---

<div class="post-metadata">

**Author:** ![vv3Ak](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/vv3ak/32/15259_2.png) [@vv3Ak](https://discourse.nodered.org/u/vv3Ak)\
**Post date:** [18 December 2019 09:57 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/7 "2019-12-18T09:57:32Z")

</div>

I saw it in a youtube video.  
How can i control gpio pins in function node?  
I have no knowledge in using raspberry gpio pins unfortunately and i need it for my license project

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [18 December 2019 10:31 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/8 "2019-12-18T10:31:35Z")

</div>

Have you considered using...

# node-red-node-pi-gpio

Gives you input and output capability to control the Pi's GPIO pins.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [18 December 2019 10:35 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/9 "2019-12-18T10:35:08Z")

</div>

> [@vv3Ak](#):
>
> I saw it in a youtube video.

Can you post a link to the video?

@dynamicdave That won't let them control pins within a function node

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [18 December 2019 10:37 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/10 "2019-12-18T10:37:15Z")

</div>

> [@cymplecy](#):
>
> That won't let them control pins within a function node

I've just read the thread in more detail and can now see what the person is trying/hoping to do.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [18 December 2019 10:52 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/11 "2019-12-18T10:52:40Z")

</div>

Right - found this

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/8/8dbc29fcbc72c379ac9c29543976c84cb4585879.png)

@vv3Ak

have you done this step

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/e/eb9647c9cdf2bf2d31baf32e0904350ea2c3f06c.png)

Even then it might not work as wiring-pi project has been discontinued so you might have to use the normal Pi nodes as @dynamicdave has mentioned

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [18 December 2019 11:26 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/12 "2019-12-18T11:26:04Z")

</div>

This is what I'd do... although I've not tried it.

![ScreenShot045](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/8/83c4b9689ee5f248ddabf4cbaa3ab2f3ae77b1c3.png)

PS: I've never had to control the Pi's GPIO pins as I use a Wemos D1 Mini (ESP8266) to interface to external devices (as I think it's safer - no chance of destroying your valuable RPi).

PPS: Oops - forgot to include the LED as one of the outputs in the sketch.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [18 December 2019 11:39 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/13 "2019-12-18T11:39:48Z")

</div>

And that would - if only there was a consistent pin numbering scheme for Pi 🙂  
[http://wiringpi.com/pins/](http://wiringpi.com/pins/)

---

<div class="post-metadata">

**Author:** ![vv3Ak](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/vv3ak/32/15259_2.png) [@vv3Ak](https://discourse.nodered.org/u/vv3Ak)\
**Post date:** [18 December 2019 12:54 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/14 "2019-12-18T12:54:32Z")

</div>

I'm going to try this later when i get home.  
Thx for helping

---

<div class="post-metadata">

**Author:** ![vv3Ak](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/vv3ak/32/15259_2.png) [@vv3Ak](https://discourse.nodered.org/u/vv3Ak)\
**Post date:** [24 December 2019 07:40 UTC](https://discourse.nodered.org/t/wpi-issues-in-function-node-for-controling-gpio-pins-from-function-node/19272/15 "2019-12-24T07:40:08Z")

</div>

Hello,  
the wiring-pi didn't work, I resolved it with function with 4 outputs.  
Thank you for helping
