Application EUI

Hello, congratulations with the Discourse launching!

I have a question about the Application EUI. Why do we have to define an Application EUI for every Node in the Application? Shouldn’t it be static for the Application itself (and defined in its settings)?

Here are excerpts from the spec:

The AppEUI is a global application ID in IEEE EUI64 address space that uniquely identifies the application provider (i.e., owner) of the end-­device.

It’s possible my interpretation is not right, of course.

In contrast, the Application Key is mentioned to be specific for the Node (and done correctly):

The AppKey is an AES-­128 application key specific for the end-­device that is assigned by the application owner to the end-­device and most likely derived from an application-­specific root key exclusively known to and under the control of the application provider. 1 Whenever an end-­device joins a network via over-­the-­air activation, the AppKey is used to derive the session keys NwkSKey and AppSKey specific for that end-­device to encrypt and verify network communication and application data.

Off topic: minor security issue: the activation URL which came to my email wasn’t HTTPS.

The definition of the AppEUI was changed in 1.0.2.

The AppEUI is a global application ID in IEEE EUI64 address space that uniquely identifies the entity able to process the JoinReq frame.

So it does not tell anything about the application, but the entity which is able to authenticate / process the join-request (in case of OTAA). There will be some changes around this in LoRaWAN 1.1. This might mean that only the node has to know about this EUI, but for now I’ll keep it as it is.

(I’ll look into the activation link, thanks for the note!)

Thanks for the explanation. The truth is I still don’t see how it should be specific for the end-device. “Entity able to process the JoinReq frame” is the LoRa Server running the specific Application, isn’t it? I interpret it as a unique ID for the specific application, there is nothing about the node.

There will be some changes around this in LoRaWAN 1.1. This might mean that only the node has to know about this EUI, but for now I’ll keep it as it is.

OK, if you know some inside information then you know way better than me how it should be done correctly, even if I don’t see a valid reason for it :slight_smile:

Can you please share the 1.0.2 version of the spec (if you are not under an NDA of course)?.

What I understood is that they will introduce a join-server entity (which is / can be completely separate from the network). So when the network-server receives a join-request, it will use this JoinEUI / AppEUI to find out which join-server it should contact / holds the root key for that node. Then this join-server will tell the network-server which application-server should be used. Basically this makes it all a bit more distributed :slight_smile:

You should be able to request the 1.0.2 spec here:

1 Like

Hi guys, just continuing this topic, I also have a question about the AppEUI. Since I’m building a private network with this loraserver, do I have to buy some EUIs blocks from IEEE to use in my applications? Because in the definition of the AppEUI this is what looks like. So, am I right @brocaar, @yucogi? If yes, how do I buy it?

For private networks there is no need to buy any EUIs. Just pick a random one :slight_smile:

I’m currently using the hosted version of the LoRa Server, however, when I try to register my device it I’m prompted to input my devEUI, appEUI, and and appKey. Where do I get those information, or should I just generate a random one myself. Thanks

I am facing the same… Could you figure it out… ?

You can generate your own random values.

Later on, while configuring your device, you will have to provide these values again.

@anaskhansherwani, Thanj you, but now i dont see any option for generating and storing app eui anywhere in the lora app server

This is the application configuration screen…
Can u guide me a little as in where to generate and store the app eui…

First you create an application.

Then create a device within that application. For that you will be asked to enter a Device EUI. You can choose any random value of required length. Then, based on your device profile, either ABP or OTAA, you will be asked to enter further keys like AppEUI and Session keys. You can choose any random values for these. Now you have a logical device ready.

Moving forward, when you configure the actual physical device you have, you must use the values you entered in above case. Obviously, depending upon your device, configuration steps may vary. However, if it is a LoRa device, it will surely ask you to enter these values somehow, you need to figure that out.

Thanks @anaskhansherwani, I have option of entering appeui and eviceeui in my device library , and i did all th process of adding device profile etc in LoraAppServer, but in LoraApp Server its not asking AppEUI if i select activation to type OTAA.
I am attaching screenshot of the device configuration page -

AppEUI is not required in case of OTAA.

1 Like

You only need to set AppEUI if you are using a join-server. Otherwise you can set this as ‘0000000000000000’.