IfyklRS

P-tomato: Mini Pocket Tomato Clock

 
Overview
P-tomato: Mini Pocket Pomodoro Timer
( ๑╹ ꇴ╹) グッ! ! ! !
Bilibili video: https://www.bilibili.com/video/BV1BM4we8EkQ/
Introduction:
A while ago, I went to the study room to study English and memorize vocabulary. In order to effectively break free from concentration and improve efficiency, I thought of using a Pomodoro timer. I browsed Taobao, and the nice-looking and fully functional ones were basically over 180 yuan. The cheaper ones weren't very elegant. So I decided to make one myself, even more mini than the ones sold in stores (Apple). (Watche not included, haha)
The Pomodoro timer needed to be small and exquisite, yet feature-rich. After some consideration, the ESP32-C3 was chosen as the main controller, which was quite suitable. Although it lacks PSRAM, it has a high-performance CPU and 4MB of built-in flash, enough to develop a multi-functional device with a UI. And here's the key point: it's cheap. There are tons of development boards on Taobao. However, one thing to note is not to be too greedy and buy refurbished boards. There will be many problems after soldering and debugging; this is a lesson learned the hard way.
Hardware Design:
The hardware part mainly referenced the e-ink device by the expert Gancao. The circuit uses a TP4054 lithium battery charging circuit, and then switches VBUS/VBAT power via diodes and PMOS.
The clock chip used is the PCF8563T, for which there are many open-source libraries available online, and it's been working fine so far. It also includes a 5020 buzzer, which is sufficient for the various alerts of the Pomodoro timer. An RGB slot was also reserved, but it wasn't used in actual use; we'll address that later if needed.
Software algorithm design:
1. ESP-IDF version 5.1 was used for development, allowing for convenient and quick access to various ESP components, making it quite powerful. LVGL version 8.4 was used, combined with Squareline and EEZ Studio for front-end design, and then run and debugged using the VSCode simulator before merging it into the project. Multitasking, such as UI, time, battery voltage monitoring, and buzzer, is run through the FreeRTOS system. The front-end UI interacts with the back-end APP tasks by producing and consuming ESP events, achieving decoupling between the front-end and back-end.
For example, in the battery monitoring task, a message is sent when the battery percentage is below 3%.
In the UI task, various registered ESP events are consumed by listening to them.
2. The device supports forward and countdown timers, i.e., reverse and forward Pomodoro timers. The forward timer can be added to the countdown timer with one click, allowing you to flexibly find your optimal focus time.
The countdown timer supports multiple sets of continuous focus/rest tasks. After the focus task ends, you can directly choose to enter the rest task or end the task.
The above process will automatically record all data, which can be viewed and reviewed in the data analysis function. Firmware
burning
1. Firmware burning can be done directly using the web-based burning tool esptool developed by Espressif:
https://espressif.github.io/esptool-js/
2. Connect to the correct serial port, fill in the corresponding firmware and address below, click Program to start burning, and wait a moment to complete the process.
Subsequent optimizations
1. Consider adding an electronic pet to increase fun
2. Optimize the UI and add different levels of animation transitions.
Note: Unauthorized use for commercial production and sale is prohibited.
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2026-03-26 18:20:41

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号