Hi all,
Thanks for bringing this to my attention! You've identified an issue with the free-feeding programs where the Timeout is 5s longer than requested. This issue only applies to the free feeding task and I have a quick fix below. I'll integrate a permanent fix for this in the next library update.
The reason the timeout is an extra 5s long in the free-feeding task is that after each code loop FED3 goes to sleep. FED3 wakes up when either 1) a nosepoke happens; or 2) 5s elapses. So in nosepoking tasks FED3 wakes up when any nosepoke happens so this 5s sleep period does not cause any delays. But with the free-feeding task the nosepokes aren't monitored, so FED3 will not wake up until that 5s delay is over. Once it does, FED3 realizes the well is empty and dispenses the next pellet. This results in your "timeout" being 5s too long. The attached modified free-feeding sketch has a function to skip this sleep period after a pellet dispenses, so your timeout will be the correct length. If you want to integrate this into other free-feeding variants you can copy the controlSleep() function from this to your code and simply call it once per loop.
What this extra 5s delay means for mice is harder to answer conclusively. I agree with Sunny (and our experience with LOTS of inter-pellet-interval plots) that mice do not consume pellets quicker than 10s apart. It's possible they can take a pellet, drop it, and take another one within 10s, but not consume 2 pellets in 10s. Thanks again, and please keep reporting anything weird or potential bugs!
-Lex