Not receiving anything with XIAO nRF52840 & Wio-SX1262 Kit

Hi there,
my XIAO nRF52840 & Wio-SX1262 Kit (see Get Started with XIAO nRF52840 & Wio-SX1262 Kit | Seeed Studio Wiki) doesn’t receive anything. It’s like there was no antenna connected at all. However, I already bought a big 868-Mhz-antenna which looks like a wifi-antenna. No change of problem.

I already installed newest firmware 2.7.26.54e0d8d with the linux-bash-skript (device-install.sh), included in the firmwre’s zip-file. It uses a serial-connection for flashing. The software runs fine and I get no error-output. LORA-config is like this (I used output of “meshtastic --port /dev/ttyACM0 --info”):

"lora": {
    "usePreset": true,
    "bandwidth": 250,
    "spreadFactor": 11,
    "codingRate": 5,
    "region": "EU_868",
    "hopLimit": 3,
    "txEnabled": true,
    "txPower": 13,
    "sx126xRxBoostedGain": true,
    "ignoreMqtt": true,
    "femLnaMode": "NOT_PRESENT",
    "modemPreset": "LONG_FAST",
    "frequencyOffset": 0.0,
    "channelNum": 0,
    "overrideDutyCycle": false,
    "overrideFrequency": 0.0,
    "paFanDisabled": false,
    "ignoreIncoming": [],
    "configOkToMqtt": false,
    "serialHalOnly": false

With this, no nodes are found, except the device itself.

BTW: I changed “txPower:” to “13”, since it is the correct value for max. antenna-output with lora in germany. The firmware’s preset of 25 is wrong (to high!), when choosing EU_868. The wrong preset violates government-restrictions! The programmers confused the units dBm and mW (milli-watts). 13 dBm is around 20 mW and a sufficient max value. (See broadcast-power-limit for LORA in EU LoRa — LoRa documentation ).

I use client.meshtastic.org to communicate with my device. Alternatively, I can use gtk-meshtastic-client with a serial-connection or meshsense with ip-connection over wifi. I also can get serial-output from my node with minicom. However, there are just no error-messages.

Attached is a MeshSense-screenshot. Is there anythin wrong with my config?

Hi there,

So, Meshtastic isn’t like Wi-Fi or cellular; you don’t just connect to a central tower. It relies on a peer-to-peer mesh. If there are simply no other active nodes within RF range (a few kilometers depending on line-of-sight) using the standard public channel in their area, the device will be completely silent regardless of the antenna used.

A couple of quick questions to help narrow it down:

  1. Do you have a second unit (node) to test with locally, or are you just hoping to pick up random local traffic?

  2. Are there any error codes in the serial port during boot, or does the nRF52840 seem to communicate with the radio without issue?

HTH
GL :slight_smile: PJ :v:

The configuration LQQKs correct as what I can see.
can you post console boot output?

Thank you for quick response! Unfortunately, I don’t have a 2nd node for testing. I live in the center of a big town - I think there really should be traffic. Here is the boot-up:


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

INFO  | ??:??:?? 2 Booted, wake cause 0 (boot count 1), reset_reason=reset
DEBUG | ??:??:?? 2 Filesystem files (20480/1572864 Bytes):
DEBUG | ??:??:?? 2  /prefs/channels.proto (110 Bytes)
DEBUG | ??:??:?? 2  /prefs/config.proto (269 Bytes)
DEBUG | ??:??:?? 2  /prefs/device.proto (179 Bytes)
DEBUG | ??:??:?? 2  /prefs/module.proto (106 Bytes)
DEBUG | ??:??:?? 2  /prefs/nodes.proto (524 Bytes)
DEBUG | ??:??:?? 2  /prefs/transmit_history.dat (20 Bytes)
INFO  | ??:??:?? 2 Starting Bus with (SDA) 5 and (SCL) 6:
DEBUG | ??:??:?? 2 Power::max17048Init lipo sensor is not ready yet
DEBUG | ??:??:?? 2 Use analog input -1 for battery level
INFO  | ??:??:?? 2 ADC config based on Two Point values and fitting curve coefficients stored in eFuse
INFO  | ??:??:?? 2 Scan for i2c devices
DEBUG | ??:??:?? 2 Scan for I2C devices on port 1
INFO  | ??:??:?? 2 No I2C devices found
DEBUG | ??:??:?? 2 acc_info = 0
DEBUG | ??:??:?? 2 mag_info = 0
INFO  | ??:??:?? 2 S:B:81,2.7.26.54e0d8d,seeed-xiao-s3,meshtastic/firmware
INFO  | ??:??:?? 2 Build timestamp: 1782259200
DEBUG | ??:??:?? 2 Total heap: 262608
DEBUG | ??:??:?? 2 Free heap: 217080
DEBUG | ??:??:?? 2 Total PSRAM: 8386279
DEBUG | ??:??:?? 2 Free PSRAM: 8381879
DEBUG | ??:??:?? 2 NVS: UsedEntries 151, FreeEntries 479, AllEntries 630, NameSpaces 9
DEBUG | ??:??:?? 2 Setup Preferences in Flash Storage
DEBUG | ??:??:?? 2 Number of Device Reboots: 104
INFO  | ??:??:?? 2 esp_ota_get_partition_description failed
INFO  | ??:??:?? 2 MeshtasticOTA firmware not available
INFO  | ??:??:?? 2 Init NodeDB
INFO  | ??:??:?? 2 Load /prefs/nodes.proto
INFO  | ??:??:?? 2 Loaded /prefs/nodes.proto successfully
INFO  | ??:??:?? 2 Loaded saved nodedatabase version 24, with nodes count: 1
INFO  | ??:??:?? 2 Load /prefs/device.proto
INFO  | ??:??:?? 2 Loaded /prefs/device.proto successfully
INFO  | ??:??:?? 2 Loaded saved devicestate version 24
INFO  | ??:??:?? 2 Load /prefs/config.proto
INFO  | ??:??:?? 2 Loaded /prefs/config.proto successfully
INFO  | ??:??:?? 2 Loaded saved config version 24
INFO  | ??:??:?? 2 Load /prefs/module.proto
INFO  | ??:??:?? 2 Loaded /prefs/module.proto successfully
INFO  | ??:??:?? 2 Loaded saved moduleConfig version 24
INFO  | ??:??:?? 2 Load /prefs/channels.proto
INFO  | ??:??:?? 2 Loaded /prefs/channels.proto successfully
INFO  | ??:??:?? 2 Loaded saved channelFile version 24
ERROR | ??:??:?? 2 Could not open / read /prefs/uiconfig.proto
DEBUG | ??:??:?? 2 cleanupMeshDB purged 0 entries
DEBUG | ??:??:?? 2 Use nodenum 0xXXXXXXXX
DEBUG | ??:??:?? 2 Number of Device Reboots: 104
DEBUG | ??:??:?? 2 Expand short PSK #1
INFO  | ??:??:?? 2 Wanted region 3, using EU_868
DEBUG | ??:??:?? 2 Coerce telemetry to role-aware minimum on defaults
DEBUG | ??:??:?? 2 Coerce position broadcasts to role-aware minimum and smart broadcast min of 5 minutes on defaults
INFO  | ??:??:?? 2 Sort took 0 milliseconds
DEBUG | ??:??:?? 2 Save to disk 4
DEBUG | ??:??:?? 2 Opening /prefs/device.proto, fullAtomic=1
INFO  | ??:??:?? 2 Save /prefs/device.proto
INFO  | ??:??:?? 3 TransmitHistory: loaded 2 entries from disk
WARN  | ??:??:?? 3 Packet History - Invalid size -1, using default 400
DEBUG | ??:??:?? 3 SPI.begin(SCK=7, MISO=8, MOSI=9, NSS=41)
DEBUG | ??:??:?? 3 Use compiled/slipstreamed tzplaceholder
DEBUG | ??:??:?? 3 Saved TZ: CET-1CEST,M3.5.0,M10.5.0/3
DEBUG | ??:??:?? 3 Set Timezone to CET-1CEST,M3.5.0,M10.5.0/3
DEBUG | ??:??:?? 3 Seed time from system clock: 2
DEBUG | ??:??:?? 3 Start multicast thread
ERROR | ??:??:?? 3 Could not open / read /prefs/cannedConf.proto
INFO  | ??:??:?? 3 CannedMessageModule is enabled
INFO  | ??:??:?? 3 External Notification Module Disabled
DEBUG | ??:??:?? 3 Rescan for I2C keyboard
DEBUG | ??:??:?? 3 Scan for I2C devices on port 1
DEBUG | ??:??:?? 3 Scan address 0x1f
DEBUG | ??:??:?? 3 Scan address 0x34
DEBUG | ??:??:?? 3 Scan address 0x55
DEBUG | ??:??:?? 3 Scan address 0x5a
DEBUG | ??:??:?? 3 Scan address 0x5f
DEBUG | ??:??:?? 3 SX126xInterface(cs=41, irq=39, rst=42, busy=40)
DEBUG | ??:??:?? 3 SX126X_DIO3_TCXO_VOLTAGE defined, using DIO3 as TCXO reference voltage at 1.800000 V
INFO  | ??:??:?? 3 Start meshradio init
INFO  | ??:??:?? 3 Radio freq=869.525, config.lora.frequency_offset=0.000
INFO  | ??:??:?? 3 Set radio: region=EU_868, name=LongFast, config=0, ch=0, power=13
INFO  | ??:??:?? 3 myRegion->freqStart -> myRegion->freqEnd: 869.400024 -> 869.650024 (0.250000 MHz)
INFO  | ??:??:?? 3 numChannels: 1 x 250.000kHz
INFO  | ??:??:?? 3 channel_num: 1
INFO  | ??:??:?? 3 frequency: 869.525024
INFO  | ??:??:?? 3 Slot time: 28 msec, preamble time: 131 msec
INFO  | ??:??:?? 3 Final Tx power: 13 dBm
INFO  | ??:??:?? 3 SX126x init result 0
INFO  | ??:??:?? 3 Frequency set to 869.525024
INFO  | ??:??:?? 3 Bandwidth set to 250.000000
INFO  | ??:??:?? 3 Power output set to 13
DEBUG | ??:??:?? 3 Current limit set to 140.000000
DEBUG | ??:??:?? 3 Current limit set result 0
DEBUG | ??:??:?? 3 Set DIO2 as RF switch, result: 0
DEBUG | ??:??:?? 3 Use MCU pin 38 as RXEN and pin -1 as TXEN to control RF switching
INFO  | ??:??:?? 3 Set RX gain to boosted mode; result: 0
INFO  | ??:??:?? 3 Applied SX1262 register 0x8B5 patch for RX improvement
INFO  | ??:??:?? 3 SX1262 init success
DEBUG | ??:??:?? 3 Waiting for SSL Cert to be generated
INFO  | ??:??:?? 3 Checking if we have a saved SSL Certificate
INFO  | ??:??:?? 3 Existing SSL Certificate found!
DEBUG | ??:??:?? 3 Retrieved Private Key: 1192 Bytes
DEBUG | ??:??:?? 3 Retrieved Certificate: 792 Bytes
INFO  | ??:??:?? 3 SSL Cert Ready!
DEBUG | ??:??:?? 3 JOINING WIFI soon: ssid=SSID
DEBUG | ??:??:?? 3 LoRA bitrate = 116.967873 bytes / sec
INFO  | ??:??:?? 3 PowerFSM init, USB power=1
DEBUG | ??:??:?? 3 Set CPU to 240MHz because WiFi is in use
DEBUG | ??:??:?? 3 Free heap  :  164304 bytes
DEBUG | ??:??:?? 3 Free PSRAM : 8317027 bytes
DEBUG | ??:??:?? 3 Node status update: 1 online, 1 total
INFO  | ??:??:?? 3 [Power] Power: battery hardware detected
INFO  | ??:??:?? 3 [WifiConnect] Reconnecting to WiFi access point SSID
DEBUG | ??:??:?? 10 Network-Event 4:
INFO  | ??:??:?? 10 Connected to access point
DEBUG | ??:??:?? 10 Network-Event 7:
INFO  | ??:??:?? 10 Obtained IP address: 192.168.0.3
INFO  | ??:??:?? 10 Start network services
INFO  | ??:??:?? 10 mDNS Host: Meshtastic.local
INFO  | ??:??:?? 10 Start NTP time client
DEBUG | ??:??:?? 10 Init Web Server
INFO  | ??:??:?? 10 Start Secure Web Server
INFO  | ??:??:?? 10 Start Insecure Web Server
INFO  | ??:??:?? 10 Web Servers Ready! :-)
INFO  | ??:??:?? 10 API server listen on TCP port 4403
DEBUG | ??:??:?? 10 [WifiConnect] Update NTP time from pool.ntp.org
DEBUG | ??:??:?? 11 [WifiConnect] NTP Request Success - Setting RTCQualityNTP if needed
DEBUG | ??:??:?? 11 [WifiConnect] Upgrade time to quality NTP
DEBUG | 23:44:24 11 [WifiConnect] Ignore system clock fallback (1785275064); current RTC quality is NTP
DEBUG | 23:44:24 11 [WifiConnect] Time source acquired (None -> NTP), triggering NodeInfo recheck
DEBUG | 23:44:24 11 [WifiConnect] NodeInfo: scheduling immediate periodic check
INFO  | 23:44:24 11 [NodeInfo] Send our nodeinfo to mesh (wantReplies=0)
DEBUG | 23:44:24 11 [NodeInfo] Skip send NodeInfo since we sent it <600s ago
DEBUG | 23:45:00 48 [Position] TransmitHistory: saved 2 entries to disk
INFO  | 23:45:00 48 [Position] Send pos@0:6 to mesh (wantReplies=0)
DEBUG | 23:45:00 48 [Position] Set local position: lat=999999999 lon=99999999 time=0000000000 timestamp=0
DEBUG | 23:45:00 48 [Position] Send location with precision 10
INFO  | 23:45:00 48 [Position] Position packet: time=0000000000 lat=999999999 lon=99999999
DEBUG | 23:45:00 48 [Position] Initial packet id 999999999
DEBUG | 23:45:00 48 [Position] Partially randomized packet id 999999999
DEBUG | 23:45:00 48 [Position] Ignore update from self
DEBUG | 23:45:00 48 [Position] handleReceived(LOCAL) (id=0x99999999 fr=0xd9999999 to=0xffffffff, transport = 0, WantAck=0, )
DEBUG | 23:45:00 48 [Position] No modules interested in portnum=3, src=LOCAL
INFO  | 23:45:00 48 [Position] Packet History - insert: Using new slot @uptime 48.188s TRACE NEW
DEBUG | 23:45:00 48 [Position] Expand short PSK #1
DEBUG | 23:45:00 48 [Position] Use AES128 key!
DEBUG | 23:45:00 48 [Position] enqueue for send (id=0x99999999 fr=0x99999999 to=0xffffffff, transport = 0, WantAck=0, HopLia
DEBUG | 23:45:00 48 [Position] txGood=0,txRelay=0,rxGood=0,rxBad=0
DEBUG | 23:45:00 48 [Position] Use channel 0 (hash 0x8)
DEBUG | 23:45:00 48 [Position] Expand short PSK #1
DEBUG | 23:45:00 48 [Position] Use AES128 key!
DEBUG | 23:45:00 48 [Position] decoded message (id=0x99999999 fr=0x99999999 to=0xffffffff, transport = 0, WantAck=0, HopLimi
DEBUG | 23:45:00 48 [RadioIf] Started Tx (id=0x99999999 fr=0x99999999 to=0xffffffff, transport = 0, WantAck=0, HopLim=3 Ch=o
DEBUG | 23:45:00 48 [RadioIf] 0 packets remain in the TX queue
DEBUG | 23:45:01 48 [RadioIf] Packet TX: 559ms
DEBUG | 23:45:01 48 [RadioIf] Completed sending (id=0x99999999 fr=0x99999999 to=0xffffffff, transport = 0, WantAck=0, HopLix
DEBUG | 23:45:12 60 SX126x AGC reset: warm sleep + Calibrate(0x7F)
WARN  | 23:45:14 62 SX126x AGC reset: calibration did not complete within 50ms
DEBUG | 23:45:15 63 [Power] Battery: usbPower=1, isCharging=1, batMv=6218, batPct=100
DEBUG | 23:48:12 240 Ignore false preamble detection
DEBUG | 23:48:12 240 SX126x AGC reset: warm sleep + Calibrate(0x7F)
DEBUG | 23:48:15 243 [Power] Battery: usbPower=1, isCharging=1, batMv=5568, batPct=100
DEBUG | 23:49:15 303 [Power] Battery: usbPower=1, isCharging=1, batMv=6111, batPct=100
DEBUG | 23:50:12 360 Ignore false preamble detection
DEBUG | 23:50:12 360 SX126x AGC reset: warm sleep + Calibrate(0x7F)
DEBUG | 23:50:15 363 [Power] Battery: usbPower=1, isCharging=1, batMv=6146, batPct=100


I have heard that “long_fast” is most common mode and the choice critical for mesh-connection. Should I change it to something else?

Hi there,

SO, :face_with_monocle: Ah, look closely at line 20 of your boot log!

INFO | ... seeed-xiao-s3,meshtastic/firmware

It looks like you flashed the XIAO ESP32-S3 firmware build onto your kit instead of the XIAO nRF52840 target!

Because the pinouts for SPI, IRQ, and BUSY differ between the ESP32-S3 and nRF52840 MCU, the radio chip isn’t being driven properly (which is why you see the SX126x AGC reset: calibration did not complete warnings down further in your log). :face_with_hand_over_mouth:

A couple of quick tips:

  1. Firmware: Re-flash the board using the specific xiao-nrf52840 firmware image.

  2. Preset: Stick with LONG_FAST! That is the standard default used by ~95% of the community public channels.

  3. Placement: Even in a busy city, indoor RF signals suffer heavy attenuation from concrete and glass. Once the correct firmware is running, placing the antenna near a window or up high will make a massive difference in picking up nearby mesh traffic.

Hope that gets the packets flowing for you!

HTH
GL :slight_smile: PJ :v:

And when they do…Do US a solid and mark this post as the solution.
so others can find it FAST! :+1: