I'd been eyeing the IV-18 transistor for a long time, and after browsing LCSC's open-source projects, I couldn't find a design that perfectly suited my needs. So, I decided to make one myself.
The hardware and software are largely based on @AmamiyaYukoDesu's design. The ESP32 still has many pins left, allowing me to modify the schematic to add features like a buzzer, temperature and humidity control.
The
RTC uses an RX8025T, the VFD driver is an HV5812, and it incorporates a TEMT6000 ambient light. Considering I'm too lazy to constantly charge a clock, I opted for wired power instead of a lithium battery. The micro-USB port provides power and allows for programming, while the Type-C port only provides power. This design offers flexibility in power supply, and the Type-C port only requires 6 pins, making soldering easier.
I used a two-layer stacked board design, connected by header pins in the middle. The two boards on the left are left unsoldered for aesthetic symmetry. The four boards are connected by four M3*160 threaded rods and secured with several M3 nuts.
The program
is written in Arduino, and the main framework uses FreeRTOS.
Currently, the button display shows the date for two seconds with a short press of the KEY key; a long press of the KEY key enters the time/date setting mode, where a short press of the KEY key selects the currently set digit, and short presses of the UP/DOWN keys adjust the value of the current digit. The current version may contain a few bugs.
Solutions to potential problems: 1. Check if the Onebutton and RX8025 libraries are installed. 2. If the digital tube display is incorrect, try jumping to the definition of RX8025_init() and modifying the I2C pin to: Wire.begin(22,23);
ESP32 can also achieve network-synchronized clock and IoT control effects. I may continue to update the program in the future if I feel like it.