I am also having a problem with class C devices. My custom devices worked fine with mLinux with 3.3.6, but fail with 4.1.6. Here is what I found:
1. The device was sending an empty unconfirmed packet after joining, but it was not working correctly to get the mac ADR response. It looks like a race condition, when I delayed the sending slightly, it started working.
2. Even when added as Class C, after rejoining and sending the empty packet, “device stats” reports class A. If I then issue “device update XXX class C”, the server will send packets immediately.
So I have two questions:
1. Is there a way to change the servers behavior so that I do not have to re-flash all my devices?
2. Why do we have to issue a device update for a device that was added as Class C?