Support for Orange Pi and Armbian OS #32

Closed
opened 2026-10-27 09:29:23 +01:00 by adam · 5 comments
Owner

i prefer to use orange Pi with EMMC or NVME storage, I tried to modify the existing manage.sh but installation does not finish, Since all is Debian based i think it would be rather easy for a dev to have it tweeked for usage on other brands of boards.
Install on (the one) raspberry I have works great but for the other locations I would love to upgrade them from Heltec boards on 20dbm to the meshadv boards in combination with the dozens of Orange Pi's i have laying arround.

i prefer to use orange Pi with EMMC or NVME storage, I tried to modify the existing manage.sh but installation does not finish, Since all is Debian based i think it would be rather easy for a dev to have it tweeked for usage on other brands of boards. Install on (the one) raspberry I have works great but for the other locations I would love to upgrade them from Heltec boards on 20dbm to the meshadv boards in combination with the dozens of Orange Pi's i have laying arround. <!-- github-sync-id:3910170699 -->
adam closed this issue 2026-10-27 09:29:23 +01:00
Author
Owner

Try the dev branch. Should work for you.

Try the dev branch. Should work for you. <!-- github-comment-id:3864715361 -->
Author
Owner

@tokio69 I just managed to run this project (dev branch) under Orange Pi Zero 3 and Armbian 25.11.2 bookworm. I didn't use any hat, I just connected the E22 900M30S to the GPIO header by some random cables.

This was just a quick and ramshackle setup, just to test things. SPI + CS was connected in normal way, the rest of the GPIOs:

Signal Pin
BUSY PC10
DIO1 (IRQ) PC7
NRST PC14
RXEN PC15
TXEN PC11

https://einhugur.com/GPIO/OrangePiZero3Pins.html describes how to calculate GPIO line number from the port number. The LoRa setup in the config.yaml.

sx1262:
  bus_id: 0
  busy_pin: 20
  cs_id: 0
  cs_pin: 21
  irq_pin: 16
  is_waveshare: false
  reset_pin: 18
  rxen_pin: 12
  rxled_pin: -1
  txen_pin: 13
  txled_pin: -1
  use_dio3_tcxo: true

This is not enough, the source code needed to be modified too.
I had to force to use /dev/gpiochip1 in the pymc_core/hardware/sx1262_wrapper.py:

self._gpio_manager = GPIOPinManager("/dev/gpiochip1")

and also force to use GPIO line 198 for CS pin in file pymc_core/hardware/lora/LoRaRF/SX126x.py:

self._cs_define = 198 

Since this is not straightforward, I'll be writing a short tutorial about it on my website in the near future.
I might send the patch to the project to allow setting these pins from the config file.

@tokio69 I just managed to run this project (`dev` branch) under Orange Pi Zero 3 and Armbian 25.11.2 bookworm. I didn't use any hat, I just connected the E22 900M30S to the GPIO header by some random cables. This was just a quick and ramshackle setup, just to test things. SPI + CS was connected in normal way, the rest of the GPIOs: | Signal | Pin | |------------|------| | BUSY | PC10 | | DIO1 (IRQ) | PC7 | | NRST | PC14 | | RXEN | PC15 | | TXEN | PC11 | https://einhugur.com/GPIO/OrangePiZero3Pins.html describes how to calculate GPIO line number from the port number. The LoRa setup in the `config.yaml`. ```yaml sx1262: bus_id: 0 busy_pin: 20 cs_id: 0 cs_pin: 21 irq_pin: 16 is_waveshare: false reset_pin: 18 rxen_pin: 12 rxled_pin: -1 txen_pin: 13 txled_pin: -1 use_dio3_tcxo: true ``` This is not enough, the source code needed to be modified too. I had to force to use `/dev/gpiochip1` in the `pymc_core/hardware/sx1262_wrapper.py`: ```python self._gpio_manager = GPIOPinManager("/dev/gpiochip1") ``` and also force to use GPIO line 198 for CS pin in file `pymc_core/hardware/lora/LoRaRF/SX126x.py`: ```python self._cs_define = 198 ``` Since this is not straightforward, I'll be writing a short tutorial about it on my website in the near future. I might send the patch to the project to allow setting these pins from the config file. <!-- github-comment-id:3868788663 -->
Author
Owner

It seems the setting of the gpio chip is implemented in https://github.com/rightup/pyMC_core/pull/35.

It seems the setting of the gpio chip is implemented in https://github.com/rightup/pyMC_core/pull/35. <!-- github-comment-id:3868794233 -->
Author
Owner

The board i am using is based on the Pinout for MeshAdv board. So if it works on rasp, it should also work on Orange with the same GPIO? i will try your workarround next weekend and see if i can get it working.

The board i am using is based on the Pinout for MeshAdv board. So if it works on rasp, it should also work on Orange with the same GPIO? i will try your workarround next weekend and see if i can get it working. <!-- github-comment-id:3874450626 -->
Author
Owner

I looked at the pinout and and it should work. Orange Pi exposes hardware SPI CS on different pin, so you'll need to select the proper device overlay (without CS). The CS will be software-driven.

I looked at the pinout and and it should work. Orange Pi exposes hardware SPI CS on different pin, so you'll need to select the proper device overlay (without CS). The CS will be software-driven. <!-- github-comment-id:3874511191 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/pyMC_Repeater#32