Skip to content

[Bug]: RPI Zero 2W Linux Native meshtasticd freezes after constant Can not send yet, busyRx #9580

Description

@Luigi-Pizzolito

Category

Hardware Compatibility

Hardware

Linux Native

Is this bug report about any UI component firmware like InkHUD or Meshtatic UI (MUI)?

  • Meshtastic UI aka MUI colorTFT
  • InkHUD ePaper
  • OLED slide UI on any display

Firmware Version

2.7.15

Description

I am trying to setup Meshtastic on a RPI Zero 2W using the Linux native firmware and meshtasticd. I have a MeshAdv Pi Hat equivalent using the same pinout and the E22-900M30S.

I've been able to reproduce this issue on both the alpha and beta releases of meshtasticd, currently using alpha.

Below is my config.yaml output from meshtasticd:

Lora:
  Module: sx1262
  CS:
    pin: 21
    line: 21
    gpiochip: 0
  IRQ:
    pin: 16
    line: 16
    gpiochip: 0
  Busy:
    pin: 20
    line: 20
    gpiochip: 0
  Reset:
    pin: 18
    line: 18
    gpiochip: 0
  TXen:
    pin: 13
    line: 13
    gpiochip: 0
  RXen:
    pin: 12
    line: 12
    gpiochip: 0
  DIO2_AS_RF_SWITCH: false
  DIO3_TCXO_VOLTAGE: 1.8
  spidev: /dev/spidev0.0
  spiSpeed: 2000000
Input:
  {}
Logging:
  LogLevel: info
Webserver:
  RootPath: /usr/share/meshtasticd/web
  SSLKey: /etc/meshtasticd/ssl/private_key.pem
  SSLCert: /etc/meshtasticd/ssl/certificate.pem
  Port: 443
General:
  ConfigDirectory: /etc/meshtasticd/config.d/
  AvailableDirectory: /etc/meshtasticd/available.d/
  MaxMessageQueue: 100
  MaxNodes: 200

This problem happens right after trying to transmit a packet, e.g. when running the following CLI command: meshtastic --host 192.168.8.199 --sendtext "This is a longer test message for radio verification". After running and getting the [RadioIf] Can not send yet, busyRx warning, the API interface stops working until a meshtasticd restart. While it is stuck meshtasticd uses 100% of one CPU core. I have tried resetting the transceiver through the GPIO reset pin, as well as power cycling the entire system.

I haven't been able to compile meshtasticd from source on the pi as pio run exits mid-compilation with no warning/error. I'm using the trixie image on the pi with the Lite install of Raspbian.

I can provide any other needed logs or tests, please help me resolve this issue.
I have 2 other nodes on esp32s3 and those have been working flawlessly. Checking with an RTL-SDR the pi has never managed to send any packets, and this error persists even when absolutely no LoRa packets have been on air / received since a power up (there are 0 nodes in my area).

Relevant log output

# /usr/bin/meshtasticd --verbose
Portduino is starting, VFS root at /root/.portduino/default
Using /etc/meshtasticd/config.yaml as config file
Also using "/etc/meshtasticd/config.d/config.yaml" as additional config file
MAC ADDRESS: B8:27:EB:59:1A:B4
Initializing GPIO21 on chip gpiochip0
Initializing GPIO16 on chip gpiochip0
Initializing GPIO20 on chip gpiochip0
Initializing GPIO18 on chip gpiochip0
Initializing GPIO13 on chip gpiochip0
Initializing GPIO12 on chip gpiochip0
DEBUG | ??:??:?? 0 Upgrade time to quality Device
INFO  | 12:16:03 0 

//\ E S H T /\ S T / C

DEBUG | 12:16:03 0 Filesystem files:
DEBUG | 12:16:03 0  /. (0 Bytes)
DEBUG | 12:16:03 0  /.. (0 Bytes)
DEBUG | 12:16:03 0  /prefs/module.proto (97 Bytes)
DEBUG | 12:16:03 0  /prefs/. (0 Bytes)
DEBUG | 12:16:03 0  /prefs/.. (0 Bytes)
DEBUG | 12:16:03 0  /prefs/config.proto (177 Bytes)
DEBUG | 12:16:03 0  /prefs/nodes.proto (445 Bytes)
DEBUG | 12:16:03 0  /prefs/channels.proto (57 Bytes)
DEBUG | 12:16:03 0  /prefs/device.proto (96 Bytes)
INFO  | 12:16:03 0 No I2C device configured, Skip
INFO  | 12:16:03 0 No I2C devices found
DEBUG | 12:16:03 0 acc_info = 0
INFO  | 12:16:03 0 S:B:37,2.7.15,native-tft,unknown
INFO  | 12:16:03 0 Build timestamp: 1764374400
INFO  | 12:16:03 0 Init NodeDB
INFO  | 12:16:03 0 Load /prefs/nodes.proto
INFO  | 12:16:03 0 Loaded /prefs/nodes.proto successfully
INFO  | 12:16:03 0 Loaded saved nodedatabase version 24, with nodes count: 1
INFO  | 12:16:03 0 Load /prefs/device.proto
INFO  | 12:16:03 0 Loaded /prefs/device.proto successfully
INFO  | 12:16:03 0 Loaded saved devicestate version 24
INFO  | 12:16:03 0 Load /prefs/config.proto
INFO  | 12:16:03 0 Loaded /prefs/config.proto successfully
INFO  | 12:16:03 0 Loaded saved config version 24
INFO  | 12:16:03 0 Load /prefs/module.proto
INFO  | 12:16:03 0 Loaded /prefs/module.proto successfully
INFO  | 12:16:03 0 Loaded saved moduleConfig version 24
INFO  | 12:16:03 0 Load /prefs/channels.proto
INFO  | 12:16:03 0 Loaded /prefs/channels.proto successfully
INFO  | 12:16:03 0 Loaded saved channelFile version 24
/root/.portduino/default/prefs/uiconfig.proto does not exist
ERROR | 12:16:03 0 Could not open / read /prefs/uiconfig.proto
DEBUG | 12:16:03 0 cleanupMeshDB purged 0 entries
DEBUG | 12:16:03 0 Use nodenum 0xeb591ab4 
DEBUG | 12:16:03 0 Expand short PSK #1
INFO  | 12:16:03 0 Wanted region 7, using KR
DEBUG | 12:16:03 0 Coerce telemetry to min of 30 minutes on defaults
INFO  | 12:16:03 0 Sort took 0 milliseconds
DEBUG | 12:16:03 0 Save to disk 0
INFO  | 12:16:03 0 Running without TFT display!
WARN  | 12:16:03 0 Packet History - Invalid size -1, using default 400
DEBUG | 12:16:03 0 Use compiled/slipstreamed tzplaceholder                                         
DEBUG | 04:16:03 0 Set Timezone to GMT0
DEBUG | 04:16:03 0 Start multicast thread
INFO  | 04:16:03 0 External Notification Module Disabled
DEBUG | 04:16:03 0 Activate sx1262 radio on SPI port /dev/spidev0.0
DEBUG | 04:16:03 0 SX126xInterface(cs=21, irq=16, rst=18, busy=20)
DEBUG | 04:16:03 0 SX126X_DIO3_TCXO_VOLTAGE defined, using DIO3 as TCXO reference voltage at 1.800000 V
INFO  | 04:16:03 0 Start meshradio init
INFO  | 04:16:03 0 Radio freq=922.875, config.lora.frequency_offset=0.000
INFO  | 04:16:03 0 Set radio: region=KR, name=LongFast, config=0, ch=11, power=8
INFO  | 04:16:03 0 myRegion->freqStart -> myRegion->freqEnd: 920.000000 -> 923.000000 (3.000000 MHz)
INFO  | 04:16:03 0 numChannels: 12 x 250.000kHz
INFO  | 04:16:03 0 channel_num: 12
INFO  | 04:16:03 0 frequency: 922.875000
INFO  | 04:16:03 0 Slot time: 28 msec, preamble time: 131 msec
INFO  | 04:16:03 0 Final Tx power: 8 dBm
INFO  | 04:16:03 0 SX126x init result 0
INFO  | 04:16:03 0 Frequency set to 922.875000
INFO  | 04:16:03 0 Bandwidth set to 250.000000
INFO  | 04:16:03 0 Power output set to 8
DEBUG | 04:16:03 0 Current limit set to 140.000000
DEBUG | 04:16:03 0 Current limit set result 0
DEBUG | 04:16:03 0 Set DIO2 as not RF switch, result: 0
DEBUG | 04:16:03 0 Use MCU pin 12 as RXEN and pin 13 as TXEN to control RF switching
INFO  | 04:16:03 0 Set RX gain to boosted mode; result: 0
INFO  | 04:16:03 0 sx1262 init success
INFO  | 04:16:03 0 Use webserver port from yaml config 443 
INFO  | 04:16:03 0 Webserver started
INFO  | 04:16:03 0 Web Server framework started on port: 443 
INFO  | 04:16:03 0 Web Server root /usr/share/meshtasticd/web
INFO  | 04:16:03 0 API server listen on TCP port 4403
DEBUG | 04:16:03 0 LoRA bitrate = 116.967873 bytes / sec
INFO  | 04:16:03 0 PowerFSM init, USB power=1
DEBUG | 04:16:03 0 State: BOOT
DEBUG | 04:16:03 0 Node status update: 0 online, 1 total
INFO  | 04:16:09 6 [ApiServer] Incoming API connection
INFO  | 04:16:09 6 [ApiServer] Incoming wifi connection
INFO  | 04:16:09 6 [ServerAPI] Client wants config, nonce=1391459788
DEBUG | 04:16:09 6 [ServerAPI] Got 5 files in manifest
INFO  | 04:16:09 6 [ServerAPI] Start API client config millis=6512
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_MY_INFO
INFO  | 04:16:09 6 [ServerAPI] getFromRadio=STATE_SEND_UIDATA
DEBUG | 04:16:09 6 [ServerAPI] Send My NodeInfo
DEBUG | 04:16:09 6 [ServerAPI] Send device metadata
DEBUG | 04:16:09 6 [ServerAPI] Send channels 8
DEBUG | 04:16:09 6 [ServerAPI] Send config: device
DEBUG | 04:16:09 6 [ServerAPI] Send config: position
DEBUG | 04:16:09 6 [ServerAPI] Send config: power
DEBUG | 04:16:09 6 [ServerAPI] Send config: network
DEBUG | 04:16:09 6 [ServerAPI] Send config: display
DEBUG | 04:16:09 6 [ServerAPI] Send config: lora
DEBUG | 04:16:09 6 [ServerAPI] Send config: bluetooth
DEBUG | 04:16:09 6 [ServerAPI] Send config: security
DEBUG | 04:16:09 6 [ServerAPI] Send config: sessionkey
DEBUG | 04:16:09 6 [ServerAPI] Send module config: mqtt
DEBUG | 04:16:09 6 [ServerAPI] Send module config: serial
DEBUG | 04:16:09 6 [ServerAPI] Send module config: ext notification
DEBUG | 04:16:09 6 [ServerAPI] Send module config: store forward
DEBUG | 04:16:09 6 [ServerAPI] Send module config: range test
DEBUG | 04:16:09 6 [ServerAPI] Send module config: telemetry
DEBUG | 04:16:09 6 [ServerAPI] Send module config: canned message
DEBUG | 04:16:09 6 [ServerAPI] Send module config: audio
DEBUG | 04:16:09 6 [ServerAPI] Send module config: remote hardware
DEBUG | 04:16:09 6 [ServerAPI] Send module config: neighbor info
DEBUG | 04:16:09 6 [ServerAPI] Send module config: ambient lighting
DEBUG | 04:16:09 6 [ServerAPI] Send module config: detection sensor
DEBUG | 04:16:09 6 [ServerAPI] Send module config: paxcounter
DEBUG | 04:16:09 6 [ServerAPI] Done sending 1 of 1 nodeinfos millis=6516
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_FILEMANIFEST
DEBUG | 04:16:09 6 [ServerAPI] File: /prefs/module.proto (97) bytes
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_FILEMANIFEST
DEBUG | 04:16:09 6 [ServerAPI] File: /prefs/config.proto (177) bytes
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_FILEMANIFEST
DEBUG | 04:16:09 6 [ServerAPI] File: /prefs/nodes.proto (445) bytes
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_FILEMANIFEST
DEBUG | 04:16:09 6 [ServerAPI] File: /prefs/channels.proto (57) bytes
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_FILEMANIFEST
DEBUG | 04:16:09 6 [ServerAPI] File: /prefs/device.proto (96) bytes
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_FILEMANIFEST
INFO  | 04:16:09 6 [ServerAPI] Config Send Complete millis=6518
DEBUG | 04:16:09 6 [ServerAPI] FromRadio=STATE_SEND_PACKETS
DEBUG | 04:16:09 6 [ServerAPI] PACKET FROM PHONE (id=0xf67d61ad fr=0x00000000 to=0xffffffff, transport = 0, WantAck=1, HopLim=3 Ch=0x0 Portnum=1 priority=70)
DEBUG | 04:16:09 6 [ServerAPI] handleReceived(USER) (id=0xf67d61ad fr=0x00000000 to=0xffffffff, transport = 0, WantAck=1, HopLim=3 Ch=0x0 Portnum=1 priority=70)
DEBUG | 04:16:09 6 [ServerAPI] Module 'text' wantsPacket=1
INFO  | 04:16:09 6 [ServerAPI] Received text msg from=0x0, id=0xf67d61ad, msg=This is a longer test message for radio verification
DEBUG | 04:16:09 6 [ServerAPI] Module 'text' considered
DEBUG | 04:16:09 6 [ServerAPI] Module 'ExternalNotificationModule' wantsPacket=1
INFO  | 04:16:09 6 [ServerAPI] External Notification Module Disabled or muted
DEBUG | 04:16:09 6 [ServerAPI] Module 'ExternalNotificationModule' considered
DEBUG | 04:16:09 6 [ServerAPI] Module 'routing' wantsPacket=1
INFO  | 04:16:09 6 [ServerAPI] Received routing from=0x0, id=0xf67d61ad, portnum=1, payloadlen=52
DEBUG | 04:16:09 6 [ServerAPI] Routing sniffing (id=0xf67d61ad fr=0x00000000 to=0xffffffff, transport = 0, WantAck=1, HopLim=3 Ch=0x0 Portnum=1 priority=70)
DEBUG | 04:16:09 6 [ServerAPI] Module 'routing' considered
DEBUG | 04:16:09 6 [ServerAPI] Setting next retransmission in 7676 msecs: 
DEBUG | 04:16:09 6 [ServerAPI]  (id=0xf67d61ad fr=0x00000000 to=0xffffffff, transport = 0, WantAck=1, HopLim=3 Ch=0x0 Portnum=1 priority=70)
INFO  | 04:16:09 6 [ServerAPI] Packet History - insert: Using new slot @uptime 6.536s TRACE NEW
DEBUG | 04:16:09 6 [ServerAPI] Expand short PSK #1
DEBUG | 04:16:09 6 [ServerAPI] Use AES128 key!
DEBUG | 04:16:09 6 [ServerAPI] enqueue for send (id=0xf67d61ad fr=0xeb591ab4 to=0xffffffff, transport = 0, WantAck=0, HopLim=3 Ch=0x8 encrypted len=74 hopStart=3 relay=0xb4 priority=70)
DEBUG | 04:16:09 6 [ServerAPI] txGood=0,txRelay=0,rxGood=0,rxBad=0
DEBUG | 04:16:09 6 [ServerAPI] Got client heartbeat
INFO  | 04:16:09 6 [ServerAPI] Disconnect from phone
DEBUG | 04:16:09 6 [ServerAPI] PhoneAPI::close()
INFO  | 04:16:09 6 [ServerAPI] Client dropped connection, suspend API service
WARN  | 04:16:09 6 [RadioIf] Can not send yet, busyRx
WARN  | 04:16:09 6 [RadioIf] Can not send yet, busyRx
DEBUG | 04:16:09 6 [RadioIf] Ignore false preamble detection

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions