I am getting downlink for every cnf uplink


I noticed that whenever I send CNF uplink, I receive a downlink with the same port as uplink but no data. Is that expected? I thought downlink will be sent if it is queued by user/app.

I am using Microchip mote RN2903 with RisingHF conecentrator (RHF0M301).


An ACK for a confirmed uplink is a downlink, with the ACK bit set.

By the way: you should not send more than 10 confirmed uplinks per day.


Thanks for your reply.
Noted on limit of daily uplinks. I was not aware of this limit and probably have sent quite a number of uplinks while testing.

As for the downlink that i am receiving, it seems it is not ACK. Below is what the tx command response for the mote I am using. I am getting "mac_rx " for the confirmed uplinks and the port number is usually the same as tx port number. So, it looks really the downlink without data.

Response after the uplink transmission:
• mac_tx_ok if uplink transmission was successful and no downlink data was
received back from the server;
• mac_rx if transmission was successful, : port
number, from 1 to 223; : hexadecimal value that was received from the


What does https://runkit.io/avbentem/lorawan-packet-decoder/branches/master give you?

Note that an ACK can also carry true downlink data:

The third ACK frame in this example also carries an application payload. A downlink frame can carry any combination of ACK, MAC control commands and payload.

Last year there was an issue with staging exhibiting the same behaviour. There was a issue for it on github which you could check…