Hello, my 6-year old son & I just built this product and he loves it! He especially likes the moon-phase function. However, he's just learning to tell time, and we find that the time scrolls by a little fast for him. I think I have an FTDI cable somewhere, so I should be able to reprogram the watch, but I am wondering if someone can point me to where in the code I can go to slow down the display?
I found a couple of references to "FPS" which I assume is Frames per Second, which may be a place to start. Has anyone else tried this?
Regards,
-Steve
TimesSquare Display Slowdown
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- pburgess
- Posts: 4161
- Joined: Sun Oct 26, 2008 2:29 am
Re: TimesSquare Display Slowdown
Hi Steve,
FPS is calculated based on other factors; it's not something that can be explicitly set.
We can make some tweaks to 'Marquee.pde' to have it scroll at half speed though. We'll just add a second frame counter around the first. This will keep other calculations from getting messed up.
In the variable declarations near the top, add:
Around line 228 (or 229 after the above line is added), double the timeout period:
And a couple lines later, initialize both f and f2:
Finally, near the bottom of the file, only increment the 'f' counter on every second frame:
(Explanation: every frame, increment f2 and check if the result is even (bit 0 is clear). If so, increment f (the normal frame counter) which controls the sub-pixel scrolling of the text. f2 is never reset to zero because we're just checking the least bit...it's perfectly okay that it 'rolls over' on its own, the result is the same.)
FPS is calculated based on other factors; it's not something that can be explicitly set.
We can make some tweaks to 'Marquee.pde' to have it scroll at half speed though. We'll just add a second frame counter around the first. This will keep other calculations from getting messed up.
In the variable declarations near the top, add:
Code: Select all
static uint8_t f2 = 0;
Code: Select all
watch.setTimeout((sum + 8) * 4 * 2); // Sleep after time/date scrolls off left edge
Code: Select all
f = f2 = 0;
Code: Select all
if((++f2 & 1) == 0) {
if(++f >= 4) {
curX--;
f = 0;
}
}
Please be positive and constructive with your questions and comments.