
In my pull request for Nyan Cat to go in the Hackaday Superconference 2018 badge, I included a way to launch it by typing ‘nya’ at the main menu. I might go back and fix these bugs in the future, but they’re not horrendous embarrassments (and Nyan Cat in hyperdrive is pretty hilarious) so I’m content to leave them as-is for now.

As a result, when the badge wakes up, the loops in charge of animation and timing will frantically try to catch up. What this means is that, if the badge is running Nyan Cat when it goes into low power mode, the timer will advance even though the animation & music does not. During this check, the main system timer (running on timer #1) clicks upwards even though the rest of the badge is asleep. Called by timer #5 every 15 milliseconds to check the status of the power button. I believe this is a side effect of loop_badge() in badge.c. It appears that when the badge is asleep, the main timer still advances at some rate. Somewhat related to the above, there’s a problem with timer synchronization upon wake. The badge will go to sleep and need to be awakened for animation to resume. What this means is that Nyan Cat couldn’t just keep running on a badge forever. My life was filled with rows and rows of badges.
#Nyan cat lost in space hacked code
So I didn’t have the chance to add code to keep the badge from going to sleep while Nyan Cat is running. I knew this power saving feature was going in but I was busy with badge production.

The auto-sleep feature was added after my code was merged into master, shortly before the badges started getting flashed en masse. The first problem was that it does not tell the badge it is running, which is required to prevent automatic power-down. I’m happy with it, even though I found two minor problems with my Nyan Cat app during the weekend.

I had a great time at 2018 Hackaday Superconference and I think Nyan Cat was a success as part of the conference badge.
