A Realistic DCC Throttle Inspired by Epoch IV.
This project aims to replicate the functionality and aesthetics of a classic train engine cabin commonly used during the Epoch IV era of model railroading. By combining modern microcontroller capabilities with a nostalgic design, the Train Controller provides an authentic and immersive experience for model train enthusiasts. More info here...
The Train Controller Software Project is a modular and thread-safe UI system designed for the Raspberry Pi Pico using the Arduino framework provided by the earlephilhower core. It leverages the TFT_eSPI library for driving TFT displays and includes enhancements to make the library thread-safe in an RTOS environment.
- 
Raspberry Pi Pico Support: - Built using the earlephilhower Arduino core.
 
- 
TFT_eSPI Integration: - Uses the TFT_eSPI library for high-performance TFT display rendering.
- Configured for an ST7789 driver with 240x320 resolution.
 
- 
RTOS Use: - Runs on FreeRTOS, enabling multitasking.
 
- 
Dynamic UI System: - A PageManagerhandles navigation between different UI pages.
- Includes a ThreadSafeTFTwrapper to makeTFT_eSPIthread-safe using a FreeRTOS semaphore.
 
- A 
- Raspberry Pi Pico
- TFT Display (configured for ST7789 driver, 240x320 resolution)
- Buttons for navigation (up, down, left, right, OK)
- PlatformIO (recommended for building and uploading)
- Arduino Framework (earlephilhower core)
- 
TFT_eSPI: - High-performance library for driving TFT displays.
- Configured for the ST7789 driver in this project.
 
- 
TJpg_Decoder: - Used for rendering JPEG images on the display.
 
- 
PageManagerLibrary: - A custom library included in this project for managing UI pages.
 
