How to use GPIO on ODROID-N2+?

Hi Forum,

I am running Home Assistant on the ODROID-N2+ board (the nice blue one!) and would like to use the onboard GPIO ports, but how to take control? Or would it be more easy to get I/O with an extended or remote GPIO solution?

These boards seems to be fully ready for GPIO usage:
BeagleBone Black GPIO (bbb_gpio)
Orange Pi GPIO (orangepi_gpio)
Raspberry Pi GPIO (rpi_gpio)
remote_rpi_gpio (remote_rpi_gpio)

1 Like

Did you ever figure this out?

I’m in the same boat and have been running a secondary HA install on a RPi 3 just for gpio support.

Hi Jonathan, i still didn’t figure out how to access the the onboard GPIO of the Odriod-N2+ … When I bought the Blue box last year I was expecting a full adoption of this powerfull board and that the GPIO support will come any soon, but unfortunately. I am planning to start using ESPHome, I might start with the Olimex ESP32-POE-ISO to get myself started… now i need to find spare time.

Thank you for the update.

I was also considering using an ESP32 as a solution since the GPIO pins on the ODROID still are not functioning.

As of update 2022.2 all integrations interfacing with GPIO directly, have been deprecated. It might happen that GPIO (for RasPi) will return in HACS, but it seems to be better to move to external hardware to make GPIO possible.

Update, GPIO for RasPi is available in HACS:
https://github.com/thecode/ha-rpi_gpio

Waste of time.
RuntimeError: This module can only be run on a Raspberry Pi!

2023-06-01 19:56:25.808 ERROR (MainThread) [homeassistant.loader] Unexpected exception importing platform custom_components.rpi_gpio.switch
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 833, in get_platform
cache[full_name] = self._import_platform(platform_name)
File "/usr/src/homeassistant/homeassistant/loader.py", line 850, in _import_platform
return importlib.import_module(f"{self.pkg_path}.{platform_name}")
File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/config/custom_components/rpi_gpio/__init__.py", line 3, in <module>
from RPi import GPIO # pylint: disable=import-error
File "/usr/local/lib/python3.10/site-packages/RPi/GPIO/__init__.py", line 23, in <module>
from RPi._GPIO import *
RuntimeError: This module can only be run on a Raspberry Pi!

An other easy to use GPIO solution is Firmata.