This project is sourced from another site, not written by us — this list is our best match of their components against what we stock, not a verified bill of materials. Always check the original blog (linked above) for the actual parts list before buying.
The Hardware TOTP Token operates as a self-contained, offline cryptographic authentication device driven by an Adafruit Feather RP2040 microcontroller. Because the system lacks wireless connectivity, timekeeping is handled locally by an Adafruit DS3231 Precision RTC breakout board, which communicates via I2C to maintain an accurate, real-time clock down to the second. The DS3231 ensures that time-based one-time passwords can be accurately calculated even without network synchronization. User input is handled by a bank of 5 buttons, allowing the user to navigate menus, select accounts, or wake the device. Feedback and time-remaining visual indicators are rendered on a vibrant 2-inch 320x240 TFT display driven by an ST7789 controller, giving immediate visual confirmation of the generated codes. The entire assembly is powered by a portable Lithium battery, making the token fully mobile. Software-wise, the project runs on MicroPython, utilizing the adafruit_buttons library to easily map and debounce user interactions across the physical button interface while processing the TOTP algorithms locally in memory.
Why Build This
Develop a secure, air-gapped 2FA authentication tool that eliminates vulnerability to wireless tracking, Bluetooth sniffing, or smartphone compromises.
Gain practical experience implementing cryptographic time-based algorithms on microcontroller hardware running MicroPython.
Design an advanced embedded user interface integrating a high-resolution TFT display, real-time clock tracking, and custom button navigation.
Real-World Application
Secure, offline two-factor authentication (2FA) management for personal accounts without exposing device signatures to wireless tracking or depending on smartphones.
Skills You'll Learn
MicroPython programming
I2C communication protocol
real-time clock synchronization
TFT display driving and graphics rendering
button debouncing and UI event handling
power management with lithium batteries
Safety Precautions
Standard precautions when handling Lithium polymer batteries and soldering electronic components.
Technology Tags
MICROPYTHON
RP2040
DS3231 RTC
ST7789 TFT
TOTP
KEEPASS
3D PRINTING
EMBEDDED SYSTEMS
Frequently Asked Questions
Microcontroller internal clocks tend to drift over time and reset whenever the device loses power. The DS3231 precision RTC features temperature compensation to keep extremely accurate time, which is critical because TOTP algorithms rely on exact time synchronization to generate valid login codes.
The device stores pre-shared secret keys locally in its memory. Using the exact time provided by the RTC and the cryptographic TOTP (Time-based One-time Password) algorithm running in MicroPython, it mathematically computes the correct code on demand entirely offline.
The physical buttons act as a navigation pad and selection interface, allowing you to scroll through different accounts, wake the display from a low-power state, or manually trigger code refreshes without needing touch inputs on the ST7789 screen.
Gallery
This page is part of Kitkraft's Project Hub — a curated collection of electronics & robotics projects gathered from the maker community to help students and hobbyists discover and learn to build. Kitkraft does not claim authorship of the original project, and makes no representation as to the accuracy, completeness or safety of third-party source material. The summary and "How It Works" explanation above are AI-generated, rewritten with reference to the original tutorial — not a reproduction of it. Full credit and a direct link to the original source are provided above. If you're the original creator and have a concern about how your work is represented here, please contact us and we'll address it promptly.
Kitkraft Project Hub — curated from the maker community, credited at the source.