Buttons
| Button | Description |
|---|---|
| ▲ Top | Navigate up / increment digit |
| ▼ Bottom | Navigate down / next digit |
| RST | Hardware reboot — same as power cycling the device |
First Boot
Step 1 — Create PIN
On first power-on the device prompts you to create a PIN code. This PIN encrypts the master device key — it is required on every startup.
Step 2 — Connect to WiFi
After PIN creation the device starts an Access Point. Connect to it from your phone or computer. A captive portal opens automatically — select your WiFi network and enter the password. The device reboots after saving.
Step 3 — Web cabinet starts automatically
On first boot after WiFi setup, the web server starts automatically. Enter the device IP or mDNS address in your browser to complete registration.
Operating Modes
After entering the PIN on every boot, the device shows a mode selection prompt. Two buttons appear on screen — they represent the two non-default network modes. The third mode (your configured default) starts automatically after a 2-second timeout if no button is pressed.
The default mode on timeout is configurable in Settings → Boot Mode. Factory default is WiFi Client. Each button press resets the timeout by 2 seconds.
- Passwords
- HOTP codes
- Web cabinet
- HID transfer (BLE / USB on S3)
- TOTP (DS3231 required)
- Passwords
- HOTP codes
- HID transfer (BLE / USB on S3)
- TOTP (DS3231 required)
- Web cabinet
- Passwords
- HOTP codes
- TOTP codes
- Web cabinet (opt.)
- HID transfer (BLE / USB on S3, no web server)
WiFi Mode — Web Server
After connecting to WiFi and syncing time via NTP, the device asks: enable web server?
| State | Available |
|---|---|
| Web server OFF | TOTP, HOTP, passwords, HID transfer (BLE / USB on S3) |
| Web server ON | TOTP, HOTP, passwords, web cabinet — HID transfer disabled |
HID Password Transfer
The device acts as a hardware keyboard and types the selected password directly — no app required on the receiving device.
T-Display ESP32 (classic): BLE HID only.
T-Display-S3: BLE HID or USB HID. When both buttons are held, a prompt appears on screen to select the output mode. The device pre-selects the configured default — wait for the auto-selection timer, or press a button to switch before transmission begins. USB HID requires no pairing or drivers.
| Mode | BLE Available |
|---|---|
| Offline | ✓ Yes |
| AP | ✓ Yes |
| WiFi — web server OFF | ✓ Yes |
| WiFi — web server ON | ✗ No |
First Connection (Bonding)
- In the password manager screen, hold both buttons
- A PIN code appears on the device display
- On your phone, select the device in Bluetooth settings and enter that PIN
- Bonding is saved — next time no PIN is needed
Sending a Password
- Navigate to the desired password using ▲ / ▼
- The password is transmitted to the phone as keyboard input
- Press ▲ Top to exit BLE and return to passwords
Factory Reset
- Press RST
- Immediately after reboot — hold both buttons simultaneously
Web Cabinet — Access & Login
How to Open
Open the device IP address in your browser, or use the mDNS address: http://t-disp-totp.local (hostname configurable in Settings).
In AP mode a captive portal opens automatically when you connect to the device's WiFi network.
Registration
On first access the device redirects to the registration page. Create a username and password, then log in with the same credentials.
Widget Bar
The widget bar is a thin strip at the top of the web cabinet interface. It contains two elements on opposite sides.
| Element | Location | Description |
|---|---|---|
| 🔋 Battery | Left side | Shows current battery charge level (device must have a 3.7V LiPo battery connected). Displays percentage and voltage. While charging, an animated icon is shown. |
| 🌐 Language | Right side | Flag icon with a dropdown — switch the web cabinet interface language. Available languages: English, Russian, German, Chinese, Spanish. Selection is saved in the browser and persists across sessions. |
Keys — TOTP & HOTP
Adding a Key
Enter a name and the secret key. Default settings: TOTP, SHA1, 6 digits, 30 second interval.
Click Additional Settings to change:
| Parameter | Options |
|---|---|
| Type | TOTP, HOTP |
| Algorithm | SHA1, SHA256, SHA512 |
| Code length | 6 or 8 digits |
| TOTP interval | 30 or 60 seconds |
You can also add a key by uploading a screenshot of its QR code.
Key Actions
| Action | Result |
|---|---|
| Tap the code | Copy code to clipboard |
| QR button | Display QR code on device screen for 30 seconds — scan to export to another authenticator app |
| Next (HOTP only) | Advance counter and generate next code |
| Delete | Remove key permanently |
Export & Import
- Click Activate Export and enter your web cabinet password
- Select the keys to export and click Export — a
.encfile downloads - To import: activate export again, click Import, upload the
.encfile
The .enc file can also be opened in decrypt_export.html (project root) — an offline editor for viewing, decrypting, and editing keys on your computer.
Passwords
Adding a Password
Enter a name and password. Use the generator icon to create one:
| Control | Function |
|---|---|
| Slider | Password length: 1 – 64 characters |
| Regenerate | Generate a new random password |
| Save | Copy generated password into the input field |
Click Save Password to add it to the list.
Password Categories
Each password can be assigned a category to organise your vault. A category badge appears above the password name in the list.
| Category | Use for |
|---|---|
| 📋 None | Uncategorised (default) |
| 🌐 Web | Website logins |
| 📱 App | Mobile or desktop applications |
| 🖥 Local | Local system / device credentials |
| 🔑 Key / Token | API keys, tokens, secrets |
To assign a category:
- Quick change: click the category badge directly on a password row — a small popup appears, select a new category, it saves immediately.
- Edit modal: open Edit for any password — the category selector appears above the strength indicator. Change and click Save.
- Add form: select a category before clicking Add Password.
Use the category filter bar above the password table to show only entries from a selected category. Click 📋 All to show everything.
Auto-Send (Enter)
When enabled, the device automatically presses Enter after typing the password via BLE or USB HID keyboard. Useful for login forms where the password field is the last input. Enable only when the target application expects Enter to submit — in other contexts it may trigger unintended actions.
The badge ENT appears on the device screen when a password has Auto-Send enabled.
Password Actions
| Button | Action |
|---|---|
| Copy | Securely fetch password from device and copy to clipboard |
| Edit | Open edit form — change name or password and save |
| Remove | Delete password permanently |
Password Security Badges
While browsing passwords on the device screen, a row of security indicators is shown below the masked password. Badges appear only when relevant — a clean screen means no issues detected.
| Badge | Meaning |
|---|---|
| 🔒🔒🔒 Locks | Password strength: 1 lock (red) = weak, 2 locks (yellow) = medium, 3 locks (yellow) = strong. Based on length and character diversity. |
| 🌐 📱 🖥 🔑 | Category badge — shown above the password name. Click to change category inline. |
| DUP | Another entry in the vault has an identical password. Detected without decrypting other entries. |
| PIN | Password consists entirely of digits — significantly reduced entropy regardless of length. |
| NAME | Password contains the entry name (or part of it) as a substring, case-insensitive. |
Export & Import
Works identically to key export — activate, enter password, download .enc file. Compatible with decrypt_export.html.
Display Settings
| Setting | Options |
|---|---|
| Theme | Light, Dark |
| Timezone | Used for the clock widget shown on device screen |
| Splash screen | Image shown on boot: SecureGen (original), Blade Runner 2044, Combs |
| Auto-dim | Time until the display brightness drops to 20%. Useful for saving battery while keeping the screen on. Must be shorter than Screen timeout. Set to Never to disable. |
| Screen timeout | Time until the display turns off and the device enters low-power pseudo-sleep (CPU slowed to 40 MHz, TFT controller suspended). Press either button to wake — no PIN required. Set to Never to keep the screen on indefinitely. |
| Auto Lock | Time after which the device enters deep sleep and wipes all sensitive data from RAM. Requires PIN on wake. Counted from last activity — starts after the device enters pseudo-sleep when screen timeout is enabled, or directly from last button press when screen timeout is Never. Must be longer than screen timeout when both are non-zero. Set to Never to disable. Wake from deep sleep: press ▼ Bottom. |
| Screen Orientation | Normal (landscape) — default, USB port on the right. Flipped (180°) — rotates the display 180°. Button mappings are automatically swapped when flipped. Change takes effect immediately — no restart required. Available on both T-Display ESP32 and T-Display-S3. |
| DS3231 RTC Module | External hardware clock. When enabled, the device keeps accurate time without WiFi. Required for TOTP in AP and Offline modes. Configure I2C pins (default SDA=21, SCL=22) and press Sync & Save to set time from browser clock. |
| Screen Timeout | Auto Lock | Behaviour |
|---|---|---|
| 30 seconds | 5 minutes | Screen off after 30 s → deep sleep after 5 min of no activity |
| Never | 5 minutes | Screen stays on → deep sleep after 5 min of no button press |
| 30 seconds | Never | Screen off after 30 s → stays in pseudo-sleep indefinitely, wake on button |
| Never | Never | Screen always on, no automatic sleep or lock |
PIN Settings
Device PIN (Startup Encryption)
Controls the PIN requested on every boot. This PIN encrypts the master device key — all stored data depends on it. Enabled by default, created on first boot.
| State | Effect |
|---|---|
| Enabled | PIN required on startup. Master key encrypted on disk. |
| Disabled | No PIN on startup. Master key stored unencrypted — if the device is stolen, data can be extracted. |
BLE Hardware Confirmation PIN
An additional PIN prompted on the device itself before any BLE password transfer. Prevents unauthorized transfers if someone else has access to the device.
Duress PIN
A separate emergency PIN that triggers an immediate, silent wipe of all device data when entered during startup instead of the normal PIN.
| Property | Detail |
|---|---|
| Length | Must match the Startup PIN length (4–10 digits). Configured automatically. |
| Value | Must differ from your normal Startup PIN. |
| Behaviour | Device displays PIN OK — indistinguishable from normal unlock — then silently erases all data and restarts. |
| Storage | Stored as a separate PBKDF2-HMAC-SHA256 hash. Never stored in plaintext. |
| Board support | Both T-Display ESP32 and T-Display-S3. |
What is erased
When the Duress PIN is entered, the following is permanently destroyed before restart:
- All TOTP / HOTP keys
- All passwords
- Device master key (
/device.key) - WiFi credentials
- BLE bonding data (NVS partition)
- All sessions, web admin credentials, PIN configuration
- The Duress PIN hash itself
- The entire filesystem partition (~3.9 MB) — erased at the hardware level
via
esp_partition_erase_range, making file recovery impossible even with direct flash access
How to enable
In the web cabinet, open the Pin tab and scroll to the Duress PIN section. Toggle the switch on, enter and confirm the PIN, then click Save Duress PIN. To disable, toggle the switch off — the hash file is removed from the device.
There is no confirmation prompt. Entry of the Duress PIN immediately and permanently destroys all data. Use only in situations where device compromise is imminent and you must prevent data extraction.
Settings
Change Web Cabinet Password
Requirements: minimum 8 characters, uppercase letter, lowercase letter, number, special character (!@#$%).
Change AP Password
Password for the device's own WiFi access point.
WiFi Network
Change the WiFi network credentials the device connects to in WiFi Client mode. Enter the network SSID (use the Scan button to find available networks), password, and confirm password, then click Save WiFi Credentials.
Bluetooth
BLE device name — maximum 15 characters. This is the name visible when pairing.
mDNS
Hostname for local network access. After saving, the device is reachable at http://<hostname>.local.
Startup Mode
Default screen on boot: TOTP/HOTP view or password manager.
HID Mode
T-Display-S3 only. Default output mode when sending passwords via hardware keyboard emulation: BLE HID or USB HID. This is the pre-selected option shown in the HID prompt — the other mode remains selectable before transmission begins. Factory default: BLE HID.
Boot Mode
Default network mode on boot: WiFi Client, AP Mode, or Offline. The selected mode becomes the timeout default during the boot prompt — the other two modes remain selectable via buttons. Changes take effect on next reboot. Factory default: WiFi Client.
Web Server Auto-Shutdown
Automatically stops the web server after inactivity: 5 min, 10 min, 1 hour, or never.
Auto-Logout Timer
| Option | Behaviour |
|---|---|
| Until reboot | Session ends on every device reboot — fresh login required |
| 1 hour / 6 hours / 24 hours / 3 days | Session persists across reboots for the selected duration |
Timed modes (1 hour – 3 days) require synchronized system time to validate session age across reboots. Time is synchronized automatically via NTP in WiFi mode, or manually via DS3231 RTC in AP/Offline modes (Display Settings → DS3231 RTC → Sync & Save).
In AP mode without RTC, timed modes automatically fall back to until-reboot behavior — sessions remain valid for the current boot only, subject to the 15-minute inactivity timeout.
Device Controls
| Button | Action |
|---|---|
| Reboot | Restart the device |
| Reboot with web server | Restart and automatically enable the web server on next boot |
| Clear BLE clients | Remove all saved Bluetooth bondings |
| Logout | End current web cabinet session |