# Controlling GPIO pins of arduino nicla vision board using openMV IDE

**URL:** <https://forums.openmv.io/t/controlling-gpio-pins-of-arduino-nicla-vision-board-using-openmv-ide/7533>\
**Category:** Arduino Boards\
**Created:** [September 27, 2022, 8:40am UTC](https://forums.openmv.io/t/controlling-gpio-pins-of-arduino-nicla-vision-board-using-openmv-ide/7533 "2022-09-27T08:40:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![altairve](https://avatars.discourse-cdn.com/v4/letter/a/a88e57/32.png) [@altairve](https://forums.openmv.io/u/altairve)\
**Post date:** [September 27, 2022, 8:40am UTC](https://forums.openmv.io/t/controlling-gpio-pins-of-arduino-nicla-vision-board-using-openmv-ide/7533/1 "2022-09-27T08:40:46Z")

</div>

I have just started using micropython running on an Arduino Nicla vision board. I am trying to detect april tags and turn a GPIO pin high. I am able to detect april tags using one of the examples provided. I am using the following code to turn one of the GPIO pin(D3 as per Arduino [pinout diagram](https://docs.arduino.cc/hardware/nicla-vision))

```auto
import pyb
import time

ledGreen = pyb.LED(2)

ledRed = pyb.LED(1)
g = pyb.Pin('D3', pyb.Pin.OUT_PP)
print( g.value())
g.value(1)
print( g.value())
while(True):
    ledGreen.on()
    ledRed.off()
    time.sleep(0.5)
    ledGreen.off()
    ledRed.on()
    time.sleep(0.5)

```

While running the script I can see the LED is changing colour, but measuring the voltage across D3 and GND pin, I a not seeing any voltage. What am I doing wrong, any help is much appreciated. Thanks

---

<div class="post-metadata">

**Author:** ![altairve](https://avatars.discourse-cdn.com/v4/letter/a/a88e57/32.png) [@altairve](https://forums.openmv.io/u/altairve)\
**Post date:** [October 3, 2022, 3:58pm UTC](https://forums.openmv.io/t/controlling-gpio-pins-of-arduino-nicla-vision-board-using-openmv-ide/7533/3 "2022-10-03T15:58:17Z")

</div>

Turns out the mapping I was using for the GPIO pins were wrong. If I use `pyb.Pin.board.x` where `x` being the main part( I think it is supposed to port) in the Arduino docs pin-out [diagram](https://docs.arduino.cc/hardware/nicla-vision), its working as expected. So for example to turn on GPIO0/D0 I used the following code snippet

```auto
import pyb
import time

pin0 = pyb.Pin(pyb.Pin.board.PG12, pyb.Pin.OUT_PP)

pin0.on()
while(True):
    print("starting loop")
    time.sleep(5)
    print("turning high")
    pin0.on()

    time.sleep(5)
    print("turning low")
    pin0.off()

    time.sleep(5)

```

---

<div class="post-metadata">

**Author:** ![iabdalkader](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/iabdalkader/32/1169_2.png) [@iabdalkader](https://forums.openmv.io/u/iabdalkader)\
**Post date:** [October 3, 2022, 5:57pm UTC](https://forums.openmv.io/t/controlling-gpio-pins-of-arduino-nicla-vision-board-using-openmv-ide/7533/4 "2022-10-03T17:57:16Z")

</div>

You should use `machine.Pin` then you can use pin names:

```python
from machine import Pin
pin = Pin("PG12", Pin.OUT_PP, Pin.PULL_UP))

```

This is from the examples and the docs.
