Is the device address automatically generated when a node joins?

I have some questions that I cannot understand.
First, is the device address automatically generated when the node joins, even though the same node is used? That is, when I reset my unique lora node, the lora node’s devaddr is different with the last time?

Second, when I try to use my lora node to transmit data to chirpstack, I see on chirpstack that the speed of receiving node data packets is very slow, however, on the gateway side, the speed of receiving data from other lora nodes is very fast.I only received data from my node in about three minutes. Why about it ? I am a beginner, thank you so much!

What kind of identifiers are used in LoRaWAN?
Each end-device is identified by a 64-bit globally unique identifier,
DevEUI, that is assigned either by the manufacturer or the owner of the
end-device. Allocation of DevEUI identifiers require the assignor to have
an Organizationally Unique Identifier (OUI) from the IEEE Registration
Each Join Server, which is used for authenticating the end-devices, is
also identified by a 64-bit globally unique identifier, AppEUI/JoinEUI, that
is assigned by either the owner or the operator of that server.
Open LoRaWAN networks and private LoRaWAN networks that are
collaborating (roaming) with the open networks are identified by a 24-bit
globally unique identifier, NetID, assigned by the LoRa Alliance.
When an end-device successfully joins a network, it gets a 32-bit
ephemeral device address, DevAddr, assigned by the serving network.

  1. That is a configuration of your node: It is probably sending every 180 seconds (3 Minutes) - I dont know which sensor or devkit you are using, but the interval might be adjustable. You should remember thou, you are not allowed (by law in your country) to send as much and as often as you like, you have to follow the rules. Depending on your country, there are limits how often/long you are able to transmit.

Thank you so much!
But for the first question, I have set up the device address on the end device, but whenever my lora node rejoins, on the chirpstack side, I found that the device address here will automatically change, as shown in the first picture, why about it?

if your endnode is OTA, every new join/activation will dynamicaly change devAddr

Is the device address automatically generated when a node joins?

Yes, ChirpStack reads 4 random bytes, it then prefixes this with NetID prefix (see LoRaWAN and Backend Interfaces specifications for more info) and uses this value as DevAddr.


I have learnt a lot! Thank you so much!

So there is a minimal chance to 2 devices sending uplinks with the same devAddr with this randomize mechanism am I right ?
Or are there any devAddr check logic in the background to prevent different devices getting the same devAddr ?

Duplicated devices addresses (DevAddr) can’t be prevented and are expected (when you have many devices). However, this is not an issue as ChirpStack also uses the MIC to assign the uplink to the correct DevEUI.