A collection of ESP32 and Arduino tools and utilities for embedded systems development, focusing on display interfaces and digital potentiometer control.
This repository contains four distinct projects designed to simplify embedded systems development:
- CYD Nixie Clock - Wi-Fi connected NTP clock for the Cheap Yellow Display (CYD)
- SD1306 Image Editor - Image to bitmap converter for OLED displays
- TFT Display Bitmaps Tool - JPEG to RGB565 converter for TFT displays
- TPL-0501-100 ESP32 - Digital potentiometer control library
An ESP32-based clock sketch that renders a retro Nixie tube theme on the 320×240 TFT included with the Cheap Yellow Display (CYD). The firmware uses Wi-Fi to sync with public NTP servers, keeps time locally using millis(), and only redraws digits when they change for flicker-free visuals.
Features:
- Wi-Fi and NTP powered time keeping with hourly resync
- Custom Nixie style digits with blinking colon animation
- Tunable timezone offset, NTP servers, and refresh intervals
- Compatible with Bodmer's TFT_eSPI library and CYD pinout
Location: CYD_Clock/
Quick Start:
cd CYD_Clock
open NixieClockCYD.ino in the Arduino IDE- Configure the TFT_eSPI
User_Setup.hfor your panel/pinout - Add your Wi-Fi credentials and timezone offset in the sketch
- Upload to a CYD (ESP32-2432S028R) or similar ESP32+ST7789 board
A bitmap converter tool for SD1306 OLED displays compatible with Arduino, ESP32, and ESP8266 using the Adafruit GFX Library.
Features:
- Convert images to C arrays for SD1306 displays
- Built with Python tkinter for easy GUI interaction
- Direct integration with Adafruit GFX Library
- Visual image preview and editing
Location: SD1306-Image-Editor/
Quick Start:
python editor3.pyA Python utility that converts JPEG images into RGB565 format C arrays suitable for embedded systems with TFT displays.
Features:
- JPEG to RGB565 C array conversion
- Little-endian byte order for ESP32 compatibility
- Automatic output file generation
- Optimized for TFT_eSPI and Adafruit_GFX libraries
- Memory-efficient 16-bit color format
Location: TFT_Display_Bitmats_Tool/
Requirements:
- Python 3.x
- Pillow library
Quick Start:
pip install Pillow
python rbg.py <image_file.jpg>Arduino sample code for controlling the TPL0501 Digital Potentiometer with ESP32. Includes examples for both single and dual digital potentiometer configurations.
Features:
- Single digital potentiometer control
- Dual digital potentiometer control
- I2C communication examples
- Part of a next-generation joystick project for the Color Computer
Location: TPL-0501-100ESP32/
Files:
singledigipot.ino- Single digipot exampledualdigipotTPL0501.ino- Dual digipot example
Quick Start:
- Open
.inofile in Arduino IDE - Select your ESP32 board
- Upload to your device
- Embedded Display Development: Convert images for OLED and TFT displays
- IoT Timekeeping: Build Wi-Fi synchronized clocks for the Cheap Yellow Display
- Retro Computing: Digital potentiometer control for vintage hardware interfaces
- ESP32 Projects: Ready-to-use utilities for common ESP32 display and I/O tasks
- Arduino Development: Cross-platform tools for Arduino-based projects
- ESP32 or Arduino-compatible board
- Arduino IDE or PlatformIO
- Python 3.x
- Pillow library (for TFT tool)
- tkinter (for SD1306 editor)
- TPL0501 Digital Potentiometer (for digipot project)
- SD1306 OLED Display (128x64) or TFT Display
-
Clone this repository:
git clone https://github.com/reyco2000/ESP32-Chipshift.git cd ESP32-Chipshift -
Navigate to the project folder you need:
cd CYD_Clock # For the Wi-Fi Nixie clock cd SD1306-Image-Editor # For SD1306 tools cd TFT_Display_Bitmats_Tool # For TFT tools cd TPL-0501-100ESP32 # For digital potentiometer
-
Follow the specific README in each folder for detailed instructions
Reinaldo Torres Email: [email protected]
This project is open source and available under the terms specified in the LICENSE file.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page or submit a pull request.
- Ensure your images are appropriately sized for your target microcontroller's memory
- For ESP32 with PSRAM, larger images are supported
- Consider using PROGMEM or SPIFFS for storing large image arrays
- Test digital potentiometer configurations with appropriate resistor values
Made with ❤️ for the embedded systems community