Skip to content

Instantly share code, notes, and snippets.

@lupyuen
Last active January 4, 2022 01:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lupyuen/5fc07695a6c4bb48b5e4d10eb05ca9bf to your computer and use it in GitHub Desktop.
Save lupyuen/5fc07695a6c4bb48b5e4d10eb05ca9bf to your computer and use it in GitHub Desktop.
LoRaWAN Transmit Log on Apache NuttX OS (See https://lupyuen.github.io/articles/lorawan3)
nsh> lorawan_test
init_event_queue
###### ===================================== ######
Application name : lorawan_test
Application version: 1.2.0
GitHub base version: 5.0.0
###### ===================================== ######
TimerInit: 0x4201681c
callout_handler: lock
TimerInit: 0x42016838
TimerInit: 0x42016854
TimerInit: 0x420168b8
TimerInit: 0x4201694c
TimerInit: 0x42016968
TimerInit: 0x42016984
TimerInit: 0x420169a0
TODO: RtcGetCalendarTime
TODO: SX126xReset
init_gpio
DIO1 pintype before=5
init_gpio: change DIO1 to Trigger GPIO nterrupt on Rising Edge
gpio_ioctl: Requested pintype 8, but actual pintype 5
DIO1 pintype after=5
Starting process_dio1
process_dio1 started
process_dio1: event=0x42015aa8
init_spi
TODO: SX126X interrupt init
SX126xSetTxParams: power=22, rampTime=7
SX126xSetPaConfig: paDutyCycle=4, hpMax=7, deviceSel=0, paLut=1
TimerInit: 0x420179ec
TimerInit: 0x42017b1c
RadioSetModem
RadioSetModem
RadioSetPublicNetwork: public syncword=3444
RadioSleep
DIO1 add event
TODO: EepromMcuReadBuffer
TODO: EepromMcuReadBuffer
TODO: EepromMcuReadBuffer
TODO: EepromMcuReadBuffer
TODO: EepromMcuReadBuffer
TODO: EepromMcuReadBuffer
TODO: EepromMcuReadBuffer
TODO: EepromMcuReadBuffer
RadioSetModem
RadioSetPublicNetwork: public syncword=3444
DevEui : 4B-C1-5E-E7-37-7B-B1-5B
JoinEui : 00-00-00-00-00-00-00-00
Pin : 00-00-00-00
TimerInit: 0x42016474
TimerInit: 0x42016490
TimerInit: 0x4201644c
TODO: RtcGetCalendarTime
TODO: RtcBkupRead
TODO: RtcBkupRead
RadioSetChannel: freq=923200000
RadioSetTxConfig: modem=1, power=13, fdev=0, bandwidth=0, datarate=10, coderate=1, preambleLen=8, fixLen=0, crcOn=1, freqHopOn=0, hopPeriod=0, iqInverted=0, timeout=4000
RadioSetTxConfig: SpreadingFactor=10, Bandwidth=4, CodingRate=1, LowDatarateOptimize=0, PreambleLength=8, HeaderType=0, PayloadLength=255, CrcMode=1, InvertIQ=0
RadioStandby
RadioSetModem
SX126xSetTxParams: power=13, rampTime=7
SX126xSetPaConfig: paDutyCycle=4, hpMax=7, deviceSel=0, paLut=1
SecureElementRandomNumber: 0xb4680261
RadioSend: size=23
00 00 00 00 00 00 00 00 00 5b b1 7b 37 e7 5e c1 4b 61 02 f5 fa 2a fc
RadioSend: PreambleLength=8, HeaderType=0, PayloadLength=23, CrcMode=1, InvertIQ=0
TimerStop: 0x420179ec
TimerStart2: 0x420179ec, 4000 ms
callout_reset: evq=0x42017b38, ev=0x420179ec
###### =========== MLME-Request ============ ######
###### MLME_JOIN ######
###### ===================================== ######
STATUS : OK
StartTxProcess
TimerInit: 0x42015360
TimerSetValue: 0x42015360, 42249 ms
OnTxTimerEvent: timeout in 42249 ms, event=0
TimerStop: 0x42015360
TimerSetValue: 0x42015360, 42249 ms
TimerStart: 0x42015360
TimerStop: 0x42015360
TimerStart2: 0x42015360, 42249 ms
callout_reset: evq=0x42017b38, ev=0x42015360
handle_event_queue
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_TX_DONE
TimerStop: 0x420179ec
TODO: RtcGetCalendarTime
TODO: RtcBkupRead
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioSleep
DIO1 add event
TimerSetValue: 0x42016838, 4988 ms
TimerStart: 0x42016838
TimerStop: 0x42016838
TimerStart2: 0x42016838, 4988 ms
callout_reset: evq=0x42017b38, ev=0x42016838
TimerSetValue: 0x42016854, 5988 ms
TimerStart: 0x42016854
TimerStop: 0x42016854
TimerStart2: 0x42016854, 5988 ms
callout_reset: evq=0x42017b38, ev=0x42016854
TODO: RtcGetCalendarTime
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
callout_handler: unlock
callout_handler: evq=0x42017b38, ev=0x42016838
callout_handler: lock
handle_event_queue: ev=0x42016838
TimerStop: 0x42016838
RadioStandby
RadioSetChannel: freq=923200000
RadioSetRxConfig
RadioStandby
RadioSetModem
RadioSetRxConfig done
RadioRx
TimerStop: 0x42017b1c
TimerStart2: 0x42017b1c, 3000 ms
callout_reset: evq=0x42017b38, ev=0x42017b1c
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_PREAMBLE_DETECTED
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_HEADER_VALID
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_RX_DONE
TimerStop: 0x42017b1c
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioSleep
DIO1 add event
TimerStop: 0x42016854
OnTxData
###### =========== MLME-Confirm ============ ######
STATUS : OK
OnJoinRequest
###### =========== JOINED ============ ######
OTAA
DevAddr : 019A5E3C
DATA RATE : DR_2
TODO: EepromMcuWriteBuffer
TODO: EepromMcuWriteBuffer
TODO: EepromMcuWriteBuffer
TODO: EepromMcuWriteBuffer
TODO: EepromMcuWriteBuffer
TODO: EepromMcuWriteBuffer
UplinkProcess
PrepareTxFrame: Transmit to LoRaWAN: Hi NuttX (9 bytes)
PrepareTxFrame: status=0, maxSize=11, currentSize=11
LmHandlerSend: Data frame
TODO: RtcGetCalendarTime
TODO: RtcBkupRead
RadioSetChannel: freq=923200000
RadioSetTxConfig: modem=1, power=13, fdev=0, bandwidth=0, datarate=10, coderate=1, preambleLen=8, fixLen=0, crcOn=1, freqHopOn=0, hopPeriod=0, iqInverted=0, timeout=4000
RadioSetTxConfig: SpreadingFactor=10, Bandwidth=4, CodingRate=1, LowDatarateOptimize=0, PreambleLength=8, HeaderType=0, PayloadLength=128, CrcMode=1, InvertIQ=0
RadioStandby
RadioSetModem
SX126xSetTxParams: power=13, rampTime=7
SX126xSetPaConfig: paDutyCycle=4, hpMax=7, deviceSel=0, paLut=1
RadioSend: size=22
40 3c 5e 9a 01 80 01 00 01 5d 6c 47 f8 f6 d0 f1 25 7a b2 e4 5e de
RadioSend: PreambleLength=8, HeaderType=0, PayloadLength=22, CrcMode=1, InvertIQ=0
TimerStop: 0x420179ec
TimerStart2: 0x420179ec, 4000 ms
callout_reset: evq=0x42017b38, ev=0x420179ec
###### =========== MCPS-Request ============ ######
###### MCPS_UNCONFIRMED ######
###### ===================================== ######
STATUS : OK
PrepareTxFrame: Transmit OK
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_TX_DONE
TimerStop: 0x420179ec
TODO: RtcGetCalendarTime
TODO: RtcBkupRead
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioSleep
DIO1 add event
TimerSetValue: 0x42016838, 988 ms
TimerStart: 0x42016838
TimerStop: 0x42016838
TimerStart2: 0x42016838, 988 ms
callout_reset: evq=0x42017b38, ev=0x42016838
TimerSetValue: 0x42016854, 1988 ms
TimerStart: 0x42016854
TimerStop: 0x42016854
TimerStart2: 0x42016854, 1988 ms
callout_reset: evq=0x42017b38, ev=0x42016854
TODO: RtcGetCalendarTime
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
callout_handler: unlock
callout_handler: evq=0x42017b38, ev=0x42016838
callout_handler: lock
handle_event_queue: ev=0x42016838
TimerStop: 0x42016838
RadioStandby
RadioSetChannel: freq=923200000
RadioSetRxConfig
RadioStandby
RadioSetModem
RadioSetRxConfig done
RadioRx
TimerStop: 0x42017b1c
TimerStart2: 0x42017b1c, 3000 ms
callout_reset: evq=0x42017b38, ev=0x42017b1c
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_RX_TX_TIMEOUT
TimerStop: 0x42017b1c
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioSleep
DIO1 add event
TimerStop: 0x42016854
TimerStop: 0x4201681c
OnTxData
###### =========== MCPS-Confirm ============ ######
STATUS : OK
###### ===== UPLINK FRAME 1 ===== ######
CLASS : A
TX PORT : 1
TX DATA : UNCONFIRMED
48 69 20 4E 75 74 74 58 00
DATA RATE : DR_2
U/L FREQ : 923200000
TX POWER : 0
CHANNEL MASK: 0003
TODO: EepromMcuWriteBuffer
TODO: EepromMcuWriteBuffer
UplinkProcess
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
UplinkProcess
callout_handler: unlock
callout_handler: evq=0x42017b38, ev=0x42015360
callout_handler: lock
handle_event_queue: ev=0x42015360
OnTxTimerEvent: timeout in 42249 ms, event=0x42015360
TimerStop: 0x42015360
TimerSetValue: 0x42015360, 42249 ms
TimerStart: 0x42015360
TimerStop: 0x42015360
TimerStart2: 0x42015360, 42249 ms
callout_reset: evq=0x42017b38, ev=0x42015360
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
UplinkProcess
PrepareTxFrame: Transmit to LoRaWAN: Hi NuttX (9 bytes)
PrepareTxFrame: status=0, maxSize=11, currentSize=11
LmHandlerSend: Data frame
TODO: RtcGetCalendarTime
TODO: RtcBkupRead
RadioSetChannel: freq=923200000
RadioSetTxConfig: modem=1, power=13, fdev=0, bandwidth=0, datarate=10, coderate=1, preambleLen=8, fixLen=0, crcOn=1, freqHopOn=0, hopPeriod=0, iqInverted=0, timeout=4000
RadioSetTxConfig: SpreadingFactor=10, Bandwidth=4, CodingRate=1, LowDatarateOptimize=0, PreambleLength=8, HeaderType=0, PayloadLength=128, CrcMode=1, InvertIQ=0
RadioStandby
RadioSetModem
SX126xSetTxParams: power=13, rampTime=7
SX126xSetPaConfig: paDutyCycle=4, hpMax=7, deviceSel=0, paLut=1
RadioSend: size=22
40 3c 5e 9a 01 80 02 00 01 34 25 65 a0 37 0c 51 12 b6 02 9f 23 d3
RadioSend: PreambleLength=8, HeaderType=0, PayloadLength=22, CrcMode=1, InvertIQ=0
TimerStop: 0x420179ec
TimerStart2: 0x420179ec, 4000 ms
callout_reset: evq=0x42017b38, ev=0x420179ec
###### =========== MCPS-Request ============ ######
###### MCPS_UNCONFIRMED ######
###### ===================================== ######
STATUS : OK
PrepareTxFrame: Transmit OK
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_TX_DONE
TimerStop: 0x420179ec
TODO: RtcGetCalendarTime
TODO: RtcBkupRead
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioSleep
DIO1 add event
TimerSetValue: 0x42016838, 988 ms
TimerStart: 0x42016838
TimerStop: 0x42016838
TimerStart2: 0x42016838, 988 ms
callout_reset: evq=0x42017b38, ev=0x42016838
TimerSetValue: 0x42016854, 1988 ms
TimerStart: 0x42016854
TimerStop: 0x42016854
TimerStart2: 0x42016854, 1988 ms
callout_reset: evq=0x42017b38, ev=0x42016854
TODO: RtcGetCalendarTime
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
callout_handler: unlock
callout_handler: evq=0x42017b38, ev=0x42016838
callout_handler: lock
handle_event_queue: ev=0x42016838
TimerStop: 0x42016838
RadioStandby
RadioSetChannel: freq=923200000
RadioSetRxConfig
RadioStandby
RadioSetModem
RadioSetRxConfig done
RadioRx
TimerStop: 0x42017b1c
TimerStart2: 0x42017b1c, 3000 ms
callout_reset: evq=0x42017b38, ev=0x42017b1c
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
DIO1 add event
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
IRQ_RX_TX_TIMEOUT
TimerStop: 0x42017b1c
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioSleep
DIO1 add event
TimerStop: 0x42016854
TimerStop: 0x4201681c
OnTxData
###### =========== MCPS-Confirm ============ ######
STATUS : OK
###### ===== UPLINK FRAME 2 ===== ######
CLASS : A
TX PORT : 1
TX DATA : UNCONFIRMED
48 69 20 4E 75 74 74 58 00
DATA RATE : DR_2
U/L FREQ : 923200000
TX POWER : 0
CHANNEL MASK: 0003
TODO: EepromMcuWriteBuffer
TODO: EepromMcuWriteBuffer
UplinkProcess
handle_event_queue: ev=0x42015aa8
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
RadioOnDioIrq
RadioIrqProcess
TODO: SX126xGetDio1PinState
UplinkProcess
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment