Today Google open sourced PebbleOS and it makes me incredibly happy. That codebase and that team I still have so much pride in. I remember typing `git init` during the Kickstarter campaign in 2012 and worked on it until we were acquired by Fitbit in 2016:
Brad Murray
3,404 posts
ChatGPT @ OpenAI
previously Pebble, Fitbit, Faire, Beeper, and other things
Waterloo, Ontario
Joined January 2008
- Hey Google, thoughts on open sourcing that PebbleOS firmware you're going to own soon? Asking for a friend. @pebble_dev
- It's awesome how many messsages of support we're getting at @onbeeper. We're on it, we'll figure it out.
- RIP Pebble. It was a fantastic experience and I'm so thankful for everything that happened over the past 4 years. #pebbleXfitbit
- Replying to @bradtgmurrayWe were an awesome, inexperienced, but determined and optimistic team of software developers that made this happen. This photo was from our firmware offsite in early 2016, and there's just so much talent here.
- Replying to @bradtgmurrayThe solution? Purposefully clock the RTC 1024x faster than real time, so every second on the RTC (which was broken into hour, minute and second fields) was actually only 1/1024th of a second. Call these "ticks" and you've made a high resolution clock that worked in stop mode.
- Replying to @bradtgmurrayThis required some other hacks to handle "rollovers" because you could lose track of the real time with your RTC running so quickly, but it worked and a going into stop mode for fractions of a second with accurate timing saved a ton of battery life.
- So now that all my Fitbit friends are at Google, what do you say? Sounds like a pretty awesome idea, no?Hey Google, thoughts on open sourcing that PebbleOS firmware you're going to own soon? Asking for a friend. @pebble_dev
- Replying to @bradtgmurrayThe original microcontroller we used, the STM32F2, had a "stop mode" where most of the chip would shut off, saving power. It was pretty quick to go in and out of, so we ended up going in and out of stop mode multiple times every second to stay in stop mode as much as possible.
- Replying to @bradtgmurrayGoing into "fast mode": github.com/google/pebble/… Flattening the RTC values into "ticks": github.com/google/pebble/…
- Replying to @bradtgmurrayIt's fun to dig through the codebase as well, there's some fun stuff in there. The build system is weird (sorry team) but powerful, the sandbox/syscall system is pretty cool, and there's just a ton of really solid code that I'm still proud of today.
- Replying to @bradtgmurrayFound one of the crazier hacks we did, the "Retina RTC". Called that because the iPhone 4 with it's high resolution "Retina display" only came out a few years prior.
- Replying to @bradtgmurrayHowever, any interrupt would wake you out of it (good) but the only timing component that kept time during the stop was the RTC (Real Time Clock), which only had second resolution (bad). This meant you actually had no idea how long you've been stopped for.


