gitmyhub

Peak

C ★ 1.8k updated 3y ago

Tiny Mobile Terminal Device Kit.

Peak: A Tiny Smart Terminal Device

Peak is a miniature smart terminal built on the ESP32 chip that combines a color screen, wireless connectivity, and an application framework into a package small enough to fit in your pocket. Think of it as a programmable control device—like a simplified smartwatch or IoT controller—that can display information, respond to buttons, and connect to WiFi and Bluetooth. The README describes it as a tiny intelligent terminal that brings together graphics, messaging, and wireless capabilities in one place.

The project started as a port of an earlier design called X-Track, moving it from older microcontroller chips to the more capable and widely available ESP32. The creator chose the ESP32-PICO-D4 chip because it strikes a practical balance: it's fast enough (over 150MHz), has enough memory (at least 200KB of RAM), and crucially, includes built-in WiFi and Bluetooth. The device has a 240x240 pixel color screen and the firmware is structured in three clean layers—hardware drivers at the bottom, a framework in the middle, and applications on top—which makes it easier to build new features and adapt to different hardware.

Under the hood, Peak uses LVGL (an open-source graphics library designed for embedded systems) to handle everything displayed on the screen, a page manager inspired by iOS to organize different screens and transitions, and a publish-subscribe messaging system so different parts of the software can pass information around. For example, a GPS module publishes location data, which the movement tracker subscribes to and uses to calculate distance and speed. The README notes the creator is also working on a tiny 3D rendering engine to display dynamic 3D models on the screen.

The detailed technical documentation in the README focuses heavily on the practical challenges of porting the firmware to ESP32—specifically how to configure the display driver to refresh at 60 frames per second, how to manage the tight memory constraints, and which SPI pins and clock speeds to use. This level of detail suggests the project is aimed at developers and hobbyists who want to understand or modify the hardware and firmware themselves, rather than use it as a finished product.