All projects

Embedded Systems · Hardware / PCB Design

Lina — Clockify Desk Time Tracker

A physical desk device for tracking work time with Clockify. It runs on an ESP32-C3 on a custom PCB, with a 240×240 round display and a rotary encoder for navigation, and it calls the Clockify REST API over HTTPS.

Prototype2026
LINA / CONNECTED DEVICE
ESP32-C3DESK TRACKERENCODERWI-FIPOWERROUND TFTREST APICLOCKIFY
Hardware → firmware → softwareConcept diagram

Problem and motivation

Starting and stopping time tracking in a browser tab is easy to forget. Lina puts it on a physical device on the desk. The project also exercises embedded networking: TLS, JSON parsing and a third-party REST API on a small microcontroller.

Requirements

  • Connect to Wi-Fi and authenticate against the Clockify API.
  • Show the user's workspace and projects on a small display.
  • Navigate and select with one physical control.

Hardware architecture

  • ESP32-C3 SuperMini module on a custom KiCad PCB, with an MCP1700 3.3 V LDO and test points for bring-up.
  • GC9A01 240×240 round TFT on SPI at 40 MHz.
  • Rotary encoder with integrated push switch as the only input.
  • 3D-printed enclosure.

Firmware architecture

  • Layered C++ design: an App coordinator uses separate WiFi, display and Clockify services, so UI code never touches HTTP directly.
  • An HttpClient wrapper over WiFiClientSecure handles HTTPS requests. Responses are parsed with ArduinoJson and mapped into typed structs.
  • Service calls return an explicit result type with success or error, instead of failing silently.
  • The API key is injected at build time from the environment and is not committed to source.
  • Wi-Fi credentials are configured through a captive portal.

Engineering decisions

  • ESP32-C3 for built-in Wi-Fi, native USB and low cost in a small footprint.
  • One rotary encoder keeps the device small and the UI predictable.
  • Clear separation between network, data mapping and rendering, so each can be tested and changed on its own.

Results

A working prototype that authenticates with Clockify and retrieves the user's workspace and projects on custom hardware.

Potential improvements

  • Cache workspace and project data in flash for faster start-up.
  • Low-power idle mode with wake on encoder input.
  • Secure on-device storage for the API key, configurable through the setup portal.