Hi Alex,
I have been working on doing OTA's on my coordinator, more precicely just reflashing my atmega2564rfr2 with the same firmware. My issue is, is that I supplied all the correct information:
- Channel (CS_NWK_LOGICAL_CHANNEL_ID) not mask
- Nwk Key
- Short Pan
- Ext Pan
- MAC
and I have tried to send a simple Identify ZCL Command to my router, but it doesn't respond.
My process thus far is as follows:
1. Program my Coordinator with fresh firmware
2. Store all information in EEPROM on my coord.
3. Allow a router to join
4. Send a ZCL identify command, confirmed it worked
5. Restart Coordinator
6. Send a ZCL identify command, confirmed it worked
7. Switch Coord off for several minutes then back on
8. Send a ZCL identify command, confirmed it worked
9. Read firmware to a separate (working.hex) hex file
10. reflash Coord knowing that it has no known device in any of its tables
11. Send a ZCL identify command, it doesn't work.
12. Restart Coord, try once more, doesn't work either.
I have seen every so often that at step 12 it can work *sometimes* but only once or twice in several tests and after quite a few restarts does it do anything. I then reflashed my firmware (working.hex) and noted that once more the router was actioning my ZCL Command. Then reflashed my firmware once more and did nothing once again.
I am unsure exactly why this is nor what "minor" differences both have in their frames to stop the reply from the router. Since it is active the whole time and only replies to the coordinator that has the original firmware on it. The payloads being sent to the router look pretty much exactly the same. All the same major pan etc. I even copied out some of the frames to look at them individually but couldn't see the minor differences when doing a file compare besides the general "route id" and "sequence numbers" that I *thought* were rather arbitrary.
Note in the attached wireshark log, the non-working firmware starts from packet 67 and the working firmware starts from 119. It didn't work this time but when I restarted it, it worked first go @139 (had to upload as .txt due to file extension constraints).
I know ZigBee *generally* isn't supposed to be used like this and the coordinator would have issues not knowing that a device is actually in its network. But when I wrote the working firmware on the unit, it would at least respond back almost all of the time!
Side note, my current work around is just to restart the router and it consistently works, but since this will be for OTA's on many units, I didn't really want to tell customers they have to reboot their ZigBee units after we fixed a bug for their devices to start working again
I am not sure if you can help me with this or not, but I hope so
Happy times!
Ryan.