Skip to content
Pebble-based TOTP implementation.
Branch: master
Clone or download
Aleksandyr Merge pull request #2 from bitdeli-chef/master
Add a Bitdeli Badge to README
Latest commit ea8d523 Jan 7, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
google-authenticator @ a096a62
resources Initial changes for SDK 2 Dec 12, 2013
src Use persistent storage to remember time zone Dec 12, 2013
webapp Fixing webapp TZ indices to match timezone.c Sep 19, 2013
.gitignore Long overdue update to reflect the live version. Sep 10, 2013
.gitmodules Initial commit using secret key LUDNVCE536YNCDV3 - shhh\! Apr 13, 2013
LICENSE Add a Bitdeli badge to README Jan 7, 2014
appinfo.json Initial changes for SDK 2 Dec 12, 2013


I don't use this as my primary TOTP source and neither should you. I have not yet fully tested this with an actual Google account - while the implementation is a trivial modification of the Google Authenticator sources, it's possible something unique to the Pebble platform may cause issues.

This is meant to be used WITH another, reliable, mobile authenticator - no warranty express or implied.

Simple Pebble TOTP


This is presented purely for academic interest and should probably not be installed on a Pebble.

Note that a customized wscript is used - the WAF equivalent of Makefile - this is necessary in order to define _LITTLE_ENDIAN and link the appropriate google-authentication headers in to the user source directory.


Reconstruct the symlinks using ~/pebble-dev/pebble-sdk-release-001/tools/ --symlink-only ~/pebble-dev/pebble-sdk-release-001/sdk/ pTOTP

Copy the modified to wscript: cp wscript - will fail with an odd-looking error if any of the files already exist.

Modify src/config.h to match your timezone (remember to adjust for DST) and your base32-encoded secret key (the four groups of four letters from - make sure to remove the spaces and capitalize the letters.)


Up/down will change the GMT offset; note that due to current limitations of the Pebble SDK the watch does not know its own time zone and app settings do not persist. The current code in the new timezone will then be displayed.

Center will cause the current code to be displayed.

The second line is the code; the third line is the current GMT offset; the fourth line is the countdown to code expiry. When the code expires, the display is cleared as a security measure.

Bitdeli Badge

You can’t perform that action at this time.