ESPBanking Software by Dumasha
Hello Guys, I am going to present my newest innovation. in the evening I got an Idea of "I have an ESP32 and a TFT Screen, Why not make a banking simulator that we csn use to play around", then it hit me the idea of building it. first I grabbbed my esp32 and a 2.4 inch tft spi st7789 screen. I hooked everything up and then started coding. After debugging, being frustrated like 4 5 times, I finally got the best version I could have.
If you are feeling to bored to listen to this you can watch the Demo video with the features
Supplies
- 1x ESP32 Development Board (30-pin or 38-pin version)
- 1x 2.4-inch ST7789 TFT SPI Display (240x320 resolution)
- 1x Breadboard & Jumper Wires (Male-to-Female)
- 1x Micro-USB / USB-C Cable (Power & Programming)
Hardware Note: Ensure your TFT display uses the ST7789 SPI driver. Displays using the ILI9341 driver rely on different library initialization calls and will not work with this configuration.
x
Circuit Wiring and Pinout
Configuration
- Open the Arduino IDE and verify that the ESP32 Board Package is installed via Tools > Board > Boards Manager.
- Install the required libraries via Tools > Manage Libraries:
Adafruit GFX LibraryAdafruit ST7735 and ST7789 LibraryESPAsyncWebServerAsyncTCPArduinoJson(v7)
- CRITICAL BOARD CONFIGURATION:
The embedded single-page web app and LittleFS file system require extra flash allocation. Go to Tools > Partition Scheme in the top menu and select:
Huge APP (3MB No OTA / 1MB SPIFFS/LittleFS)
Failure to select the Huge APP partition scheme will result in a flash memory overflow compilation error.
Features Available in My Software
The ESPBanking firmware implements low-level embedded hardware optimizations:
- Dual-Core Processing (FreeRTOS): Network sockets (Wi-Fi and Async Web Server) are pinned to Core 0, while hardware execution (ST7789 display rendering and accounting math) runs isolated on Core 1.
- Differential Display Driver: Rather than clearing the full screen buffer on every frame, the ST7789 differential renderer repaints only the specific character bounding boxes that change—delivering crisp, flicker-free status updates.
- 64-Bit Fixed-Point Math Engine: Currency operations are calculated strictly as 64-bit integers (storing balances as base cents) to eliminate floating-point rounding errors.
- LittleFS Flash Persistence: Accounts, configurations, and transaction logs are stored directly on internal flash memory with power-loss protection and wear leveling.
- Embedded Security Engine: Features runtime SHA-256 password hashing, hardware-generated random session tokens (
esp_random), sliding session timeouts, and rate-limited brute-force protection.
Download Source Code
Flash the firmware to your ESP32. Once booted, the microcontroller connects to local Wi-Fi and displays its assigned IP address on the ST7789 screen.
Entering this IP address into any smartphone or desktop web browser on your network loads the embedded dark-mode banking app directly from internal flash memory.
Complete Source Code & Project Files
If you want to skip manual debugging, SPI tuning, and library setup, the pre-configured project bundle, full manual, and repository are available below:
- Download Production Code & Setup Manual: ESPBanking Package on Polar
- GitHub Repository: ESPBanking GitHub Repo
- Reddit Discussion: r/esp32projects Thread