RK3566, Armbian and the wrong SPI bus

The Bobcat 300 is a cheap enclosure, 64 GB of eMMC, an RK3566, and a perfectly useful SX1302. The catch: almost every assumption in a Raspberry Pi-oriented installer is wrong.

Bobcat G295, 2 GB RAM, 64 GB eMMC, community Armbian, onboard SX1302. Meshtastic receive and transmit confirmed.

  • RK3566
  • Armbian
  • SX1302
  • SPI5
  • systemd
  • Meshpoint
Hardware
Bobcat Miner 300 G295
Concentrator
Onboard SX1302-class radio
SPI device
/dev/spidev5.0
GPIO
147 PA enable · 149 reset
Status
TX/RX validated · July 2026
01

First rule: do not “upgrade” it.

The Bobcat Armbian image carries the device-tree and kernel combination that exposes the miner hardware correctly. A generic distro upgrade can replace that kernel and make the SPI overlay disappear.

I hold the Rockchip kernel, DTB, and U-Boot packages before doing anything else.

sudo apt-mark hold linux-image-current-rockchip64 \
  linux-dtb-current-rockchip64 \
  linux-u-boot-bobcat-29x-current
02

The concentrator is on SPI5.

Meshpoint's normal Raspberry Pi path expects /dev/spidev0.0. The Bobcat carrier puts the SX1302 on SPI5. Armbian needs the spi5-m1 overlay before the device exists.

# /boot/armbianEnv.txt
overlays=spi5-m1

sudo reboot
ls -l /dev/spidev5.*

After reboot, the primary concentrator device is /dev/spidev5.0. A secondary chip select may appear as /dev/spidev5.1.

03

Tell Meshpoint what it actually has.

Autodetection is intentionally conservative and does not pretend this is a Pi. The local configuration names the concentrator, its real SPI path, and the Bobcat reset line.

capture:
  sources:
    - concentrator
  concentrator:
    board: "sx1302"
    spi_path: "/dev/spidev5.0"
    reset_pin: 149
04

GPIO is part of service startup.

GPIO 147 enables the transmit amplifier rail. GPIO 149 resets the concentrator. A systemd drop-in exports both pins, asserts the PA rail, pulses reset, fixes SPI permissions, and creates spidev0.x symlinks for Pi-oriented HAL code.

This is the difference between “the chip probes once from a shell” and “the radio comes back correctly after every reboot.”

Bring me the strange problem.

Discuss a
project