# ODROID N2+ compatibility

**URL:** <https://community.zymbit.com/t/odroid-n2-compatibility/1417>\
**Category:** ZYMKEY4\
**Created:** [May 5, 2022, 11:23pm UTC](https://community.zymbit.com/t/odroid-n2-compatibility/1417 "2022-05-05T23:23:21Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![amplitude](https://avatars.discourse-cdn.com/v4/letter/a/aca169/32.png) [@amplitude](https://community.zymbit.com/u/amplitude)\
**Post date:** [May 5, 2022, 11:23pm UTC](https://community.zymbit.com/t/odroid-n2-compatibility/1417/1 "2022-05-05T23:23:21Z")

</div>

Hi,

I’ve seen this thread from 2018:

> [@Odroid compatibility](https://community.zymbit.com/t/odroid-compatibility/274):
>
> I wonder if any of your products(I2C/USB) is suitable for Odroid XU4. Have you got any kind experience or feedback on this? Modules are debian-supported or raspbian only?

and other places where ZymBit has said they have prototyped and gotten the ZymKey working on an ODROID. I’m looking to use it on an ODROID N2+ running Ubuntu 20.04. The bullseye installer runs fine, but then the system log is filled with this error:  
`May 05 23:18:59 odroid kernel: export_store: invalid GPIO 4`  
I’ve poked around and it looks like the code to interface with the GPIO pins is in `/usr/lib/libzk.so`, according to `strings`:

```auto
root@odroid:/usr/lib# strings libzk.so | grep "gpio"
/sys/class/gpio/gpio%d/%s
/sys/class/gpio/gpio%d
/sys/class/gpio/export
/sys/class/gpio/gpio%d/value

```

My `/sys/class/gpio/` does not look like this though:

```auto
root@odroid:/sys/class/gpio# ls *
export unexport

gpiochip410:
base device label ngpio power subsystem uevent

gpiochip496:
base device label ngpio power subsystem uevent
root@odroid:/sys/class/gpio# ls gpiochip410/*
gpiochip410/base gpiochip410/label gpiochip410/ngpio gpiochip410/uevent

gpiochip410/device:
driver driver_override gpio gpiochip1 modalias of_node power subsystem uevent

gpiochip410/power:
autosuspend_delay_ms control runtime_active_time runtime_status runtime_suspended_time

gpiochip410/subsystem:
export gpiochip410 gpiochip496 unexport

```

I’m not sure which `gpiochip` I need to use, but I think I’ll need a patched version of libzk.so in order to make this work. Does anyone else have experience using a ZymKey on a more recent ODROID with the same `/sys/class/gpio/` layout?  
Thanks!

---

<div class="post-metadata">

**Author:** ![amplitude](https://avatars.discourse-cdn.com/v4/letter/a/aca169/32.png) [@amplitude](https://community.zymbit.com/u/amplitude)\
**Post date:** [May 5, 2022, 11:26pm UTC](https://community.zymbit.com/t/odroid-n2-compatibility/1417/2 "2022-05-05T23:26:55Z")

</div>

This document explains how to access and address the ODROID N2+ GPIO pins using the sysfs interface:  
[https://wiki.odroid.com/odroid-n2/application\_note/gpio/enhancement\_40pins#tab\_\_odroid-n2](https://wiki.odroid.com/odroid-n2/application_note/gpio/enhancement_40pins#tab__odroid-n2)

---

<div class="post-metadata">

**Author:** ![amplitude](https://avatars.discourse-cdn.com/v4/letter/a/aca169/32.png) [@amplitude](https://community.zymbit.com/u/amplitude)\
**Post date:** [May 12, 2022, 6:18pm UTC](https://community.zymbit.com/t/odroid-n2-compatibility/1417/3 "2022-05-12T18:18:47Z")

</div>

My mistake here, the normal Hardkernel image is actually compatible with the ZymKey. I had just misunderstood how to setup the /sys/class/gpio/ file. All I needed to do was create /var/lib/zymbit/zkenv.conf with the contents `ZK_GPIO_WAKE_PIN=473`, and now it’s working.
