Erro de acesso ao GPIO7 ao fazer reset do HAT

Tenho utilizado os módulos e HAT LoRaWAN da Radioenge há um tempo sem problemas. Recentemente, instalei a versão nova do OS no Raspberry e as seguintes mensagens de erro ocorrem:
Ao executar o lora_pkt_fwd:

ERROR: Failed to load fw 1
ERROR: Version of calibration firmware not expected, actual:0 expected:2
ERROR: [main] failed to start the concentrator

Ao tentar o o reset da HAT, novo erro:

pi@RaspiHome8G:~/lora_gateway $ ./reset_lgw.sh start
Accessing concentrator reset pin through GPIO7…
./reset_lgw.sh: 27: echo: echo: I/O error
./reset_lgw.sh: 30: ./reset_lgw.sh: cannot create /sys/class/gpio/gpio7/direction: Directory nonexistent
./reset_lgw.sh: 33: ./reset_lgw.sh: cannot create /sys/class/gpio/gpio7/value: Directory nonexistent
./reset_lgw.sh: 34: ./reset_lgw.sh: cannot create /sys/class/gpio/gpio7/value: Directory nonexistent
./reset_lgw.sh: 37: ./reset_lgw.sh: cannot create /sys/class/gpio/gpio7/direction: Directory nonexistent

Solução encontrada:

Adicionar a seguinte linha no arquivo /boot/config.txt


[all]
dtoverlay=spi0-cs,cs1_pin=4

Obs.: Supondo que GPIO4 esteja livre. Pode ser outro GPIO que não seja utilizado por seu hardware.

Explicação:

O novo kernel bloqueia o acesso ao GPIO7 por ele ser utilizado pela SPI. O comando dtoverlay requisita esse GPIO, liberando o acesso para essa dupla função (SPI e reset do HAT).

1 Curtida