Skip to content

Instantly share code, notes, and snippets.

@mcauser
Last active April 22, 2025 00:45
Show Gist options
  • Save mcauser/47cf47e2dd89b4d2507f63dd327f70f7 to your computer and use it in GitHub Desktop.
Save mcauser/47cf47e2dd89b4d2507f63dd327f70f7 to your computer and use it in GitHub Desktop.
AU915 vs AS923

Testing AU915 and AS923

On a Seeed LoRa E5 mini aka Wio-E5 mini dev board

https://www.seeedstudio.com/LoRa-E5-mini-STM32WLE5JC-p-4869.html

Seeed's default AT firmware, version 4.0.11

AT+VER
+VER: 4.0.11

LoRaWAN protocol version 1.0.3

AT+LW=VER
+LW: VER, V103

Regional Parameter: LoRaWAN Reginal Parameters v1.0.3 revA.pdf


CFLIST profile settings in Helium Console

  • Allow ADR (recommended for stationary devices): off
  • Enable Join-Accept CF List (applicable to US915 devices only): on
  • Set Delay Before Rx1 Window (Default: 1): 1 second

Will test AU915 + AS923 with and without CFLIST enabled


Test 1 - AU915 without CFLIST

Set region to AU915.

AT+DR=AU915
+DR: AU915

Get default data rate.

AT+DR
+DR: DR0
+DR: AU915 DR0  SF12 BW125K

Get default power.

AT+POWER
+POWER=20

Attempt to set power to 30, but the max it allows is 22.

AT+POWER=30
+POWER=22

Get defaut enabled channels. Thats no good, with all 72 ch enabled, it will have a lot of failed join and uplink attempts.

AT+CH=NUM
+CH: NUM, 0-71

Set ch mask to FSB6 minus 2x AS923 join conflict channels (ch 40-41).

AT+CH=NUM, 42-47
+CH: NUM, 42-47

Check if ADR is on. It is.

AT+ADR
+ADR: ON

Attempt a join, CFLIST disabled.

AT+JOIN
+JOIN: Start
+JOIN: NORMAL
+LOG: DEBUG   979090 LW      ch 46
+LOG: DEBUG   979090 LORA    TX, 924400000, SF7, 125KHz, 8, 20
+LOG: DEBUG   979091 LORA    TX, 00xxxxxxxxxxF98160xxxxxxxxxxF98160xxxxxxxxxxxx
+LOG: DEBUG   984151 LORA    RX, 926900000, SF7, 500KHz, 84
+LOG: DEBUG   984172 LORA    RX, 2097B9xxxxxxxxxxxxxxxxxxxxxxxxxxxx, -101, 2
+JOIN: Network joined
+JOIN: NetID 326548 DevAddr 48:00:00:45
+JOIN: Done

On Helium Console Join Accept, RSSI = 30, payload size = 17

Attempt to set power to 30, but the max it allows is 22.

AT+POWER=30
+POWER=22

Send an unconfirmed uplink.

AT+MSG="Hello"
+LOG:  WARN  1036769 LW      tx 1, 48656C6C6F(5)
+MSG: Start
+LOG: DEBUG  1036770 LW      ch 44
+LOG: DEBUG  1036770 LORA    TX, 924000000, SF12, 125KHz, 8, 20
+LOG: DEBUG  1036770 LORA    TX, 404501xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+LOG: DEBUG  1039101 LORA    RX, 925700000, SF12, 500KHz, 7
+LOG: DEBUG  1040101 LORA    RX, 923300000, SF12, 500KHz, 7
+MSG: Done

Test 2 - AS923 without CFLIST

Set region to AU915.

AT+DR=AS923
+DR: AS923

Get default data rate.

AT+DR
+DR: DR2
+DR: AS923 DR2  SF10 BW125K

Get default power.

AT+POWER
+POWER: 16

Attempt to set power to 30, but the max it allows is 16.

AT+POWER=30
+POWER: 16

Get defaut enabled channels.

AT+CH=NUM
+CH: NUM, 0-1

Try to enable all AS923 channels (0-7). Doesn't let you.

AT+CH=NUM 0-7
+CH: NUM, 0-1

Check if ADR is on. It is.

AT+ADR
+ADR: ON

Attempt a join, CFLIST disabled.

AT+JOIN
+JOIN: Start
+JOIN: NORMAL
+LOG: DEBUG  1186642 LW      ch 01
+LOG: DEBUG  1186642 LORA    TX, 923400000, SF10, 125KHz, 8, 16
+LOG: DEBUG  1186643 LORA    TX, 00xxxxxxxxxxF98160xxxxxxxxxxF98160xxxxxxxxxxxx
+LOG: DEBUG  1192025 LORA    RX, 923400000, SF10, 125KHz, 7
+LOG: DEBUG  1192340 LORA    RX, 20B414xxxxxxxxxxxxxxxxxxxxxxxxxxxx, -112, -7
+JOIN: Network joined
+JOIN: NetID 326548 DevAddr 48:00:00:46
+JOIN: Done

On Helium Console Join Accept, RSSI = 16, payload size = 17

With CFLIST disabled, channel remains 0-1.

AT+CH=NUM
+CH: NUM, 0-1

Attempt to set power to 30, but the max it allows is 16.

AT+POWER=30
+POWER: 16

Send an unconfirmed uplink.

AT+MSG="Hello"
+LOG:  WARN  1253288 LW      tx 1, 48656C6C6F(5)
+MSG: Start
+LOG: DEBUG  1253288 LW      ch 00
+LOG: DEBUG  1253289 LORA    TX, 923200000, SF10, 125KHz, 8, 16
+LOG: DEBUG  1253289 LORA    TX, 404601xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+LOG: DEBUG  1254630 LORA    RX, 923200000, SF10, 125KHz, 7
+LOG: DEBUG  1255631 LORA    RX, 923200000, SF10, 125KHz, 7
+MSG: Done

Test 3 - AU915 with CFLIST

Set region to AU915.

AT+DR=AU915
+DR: AU915

Get default power.

AT+POWER
+POWER=20

Attempt to set power to 30, but the max it allows is 22.

AT+POWER=30
+POWER=22

Set ch mask to FSB6 minus 2x AS923 conflicts (ch 40-41).

AT+CH=NUM, 42-47
+CH: NUM, 42-47

Check if ADR is on. It is.

AT+ADR
+ADR: ON

Attempt a join, CFLIST enabled.

AT+JOIN
+JOIN: Start
+JOIN: NORMAL
+LOG: DEBUG  3406579 LW      ch 44
+LOG: DEBUG  3406579 LORA    TX, 924000000, SF12, 125KHz, 8, 20
+LOG: DEBUG  3406580 LORA    TX, 00xxxxxxxxxxF98160xxxxxxxxxxF98160xxxxxxxxxxxx
+LOG: DEBUG  3413074 LORA    RX, 925700000, SF12, 500KHz, 7
+LOG: DEBUG  3413485 LORA    RX, 209CBDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, -95, 3
+JOIN: Network joined
+JOIN: NetID 326548 DevAddr 48:00:00:48
+JOIN: Done

On Helium Console Join Accept, RSSI = 30, payload size = 33

Get new power, notice CFLIST reduced it from 22 to 20.

AT+POWER
+POWER: 20

Get new channels, notice CFLIST changed it from 42-47 to 40-47.

AT+CH=NUM
+CH: NUM, 40-47

Attempt to set power to 30, but the max it allows is 22.

AT+POWER=30
+POWER=22

Send an unconfirmed uplink.

AT+MSG="Hello"
+LOG:  WARN  3737738 LW      tx 1, 48656C6C6F(5)
+MSG: Start
+LOG: DEBUG  3737739 LW      ch 44
+LOG: DEBUG  3737739 LORA    TX, 924000000, SF12, 125KHz, 8, 20
+LOG: DEBUG  3737739 LORA    TX, 404801xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+LOG: DEBUG  3740069 LORA    RX, 925700000, SF12, 500KHz, 7
+LOG: DEBUG  3741070 LORA    RX, 923300000, SF12, 500KHz, 7
+MSG: Done

Test 4 - AS923 with CFLIST

Set region to AU923.

AT+DR=AS923
+DR: AS923

Get default power.

AT+POWER
+POWER: 16

Get defaut enabled channels.

AT+CH=NUM
+CH: NUM, 0-1

Check if ADR is on. It is.

AT+ADR
+ADR: ON

Attempt a join, CFLIST enabled.

AT+JOIN
+JOIN: Start
+JOIN: NORMAL
+LOG: DEBUG  4002577 LW      ch 01
+LOG: DEBUG  4002577 LORA    TX, 923400000, SF10, 125KHz, 8, 16
+LOG: DEBUG  4002578 LORA    TX, 00xxxxxxxxxxF98160xxxxxxxxxxF98160xxxxxxxxxxxx
+LOG: DEBUG  4007960 LORA    RX, 923400000, SF10, 125KHz, 7
+LOG: DEBUG  4008398 LORA    RX, 204C81xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, -100, 6
+JOIN: Network joined
+JOIN: NetID 326548 DevAddr 48:00:00:4A
+JOIN: Done

On Helium Console Join Accept, RSSI = 16, payload size = 33

Get new power, notice CFLIST didn't increase the power beyond 16.

AT+POWER
+POWER: 16

Get new channels, notice CFLIST changed it from 0-1 to 0-6. But where's 7?

AT+CH=NUM
+CH: NUM, 0-6

Attempt to set power to 30, but the max it allows is 16.

AT+POWER=30
+POWER: 16

Send an unconfirmed uplink.

AT+MSG="Hello"
+LOG:  WARN  4122780 LW      tx 1, 48656C6C6F(5)
+MSG: Start
+LOG: DEBUG  4122781 LW      ch 00
+LOG: DEBUG  4122781 LORA    TX, 923200000, SF10, 125KHz, 8, 16
+LOG: DEBUG  4122781 LORA    TX, 404A01xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+LOG: DEBUG  4124122 LORA    RX, 923200000, SF10, 125KHz, 7
+LOG: DEBUG  4125123 LORA    RX, 923200000, SF10, 125KHz, 7
+MSG: Done

What have we learned?

(about Seeed's default AT firmware)

  • AU915 region defaults to power=20, ch=0-71, channels need masking for efficent Helium usage.
  • AS923 region defaults to power=16, ch=0-1, channels need masking for efficent Helium usage.
  • max power for AU915=22, AU915=16.
  • on AS923 without CFLIST, ch is locked to ch=0-1.
  • on AS923 with CFLIST, ch is set to 0-6. Why not ch7?
  • on AU915 with CFLIST enabled, ch42-47 is reset to ch40-47, undoing mask to avoid AS923 conflicting ch40-41.
  • on AU915 with CFLIST enabled, power is reduced from 22 to 20.
  • CFLIST can reduce AU915 power, but can't increase AS923 past 16.
  • Region params 1.0.3 does not mention AS923-1C, only AS923-1. The firmware does not know about AS923-1C.
  • The AT firmware is closed source, and cant be updated with new region params. Significant number of E5's already in the wild.
@mcauser
Copy link
Author

mcauser commented Apr 8, 2023

Ideal AU915 FSB6 settings for Helium

AT+DR=AU915
AT+DR=0
AT+CH=NUM, 42-47
AT+POWER=22

Ideal AU915 FSB2 settings for Helium

AT+DR=AU915
AT+DR=0
AT+CH=NUM, 8-15
AT+POWER=22

Ideal AS923 settings for Helium

AT+DR=AS923
AT+DR=0
AT+POWER=16
Enable CFLIST profile in Helium Console to use more than 2 channels

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment