Hi Lex,
I'm sure it's not a code issue, because I also re-flashed them with the original "Menu-Example" code from the FED3 library (and fully charged them), and all 5 devices still displayed the same issue.
The clock time is "fine" - meaning, up until the time the device freezes, it keeps track of the time; and after freezing if I turn it off and on again the time is still aligned with real time (so the internal clock was still running as the device was frozen).
When operating normally, if there is still a pellet in the well but the device is asleep, the clock on the display keeps ticking, and it remains responsive to pokes. The weird thing I am experiencing is that at some point, each device will freeze, on-screen clock time stops
(which also means I can see the exact time that the device froze), and nose pokes in either well won't register either on screen or in the log file.
Based on this, I figured it wasn't a sleep issue. However, you were totally right - disabling sleep prevents the issue. But I have no idea why - so any more ideas welcome! In any case, for the time being I can just run the FED with sleep disabled and buy a load of spare batteries so that I can keep running multi-day experiments. Thanks for the help!
Sam