2.7 KiB
2.7 KiB
Bitcoin Dashboard for Elecrow 7-inch HMI Display
A real-time financial dashboard displaying cryptocurrency, precious metals, stocks, and market indices on the Elecrow 7.0-inch ESP32 HMI Display.
Hardware
- Display: Elecrow 7.0-inch ESP32 HMI Display (Advance series)
- Resolution: 800x480 RGB parallel interface
- Touch: GT911 capacitive touch controller
- MCU: ESP32-S3 with N4R8 module (4MB Flash, 8MB PSRAM)
Features
- Real-time price data from Yahoo Finance API
- Auto-refresh every 5 minutes
- Touch to manual refresh
- WiFi credentials stored in persistent memory
- Antialiased fonts (DejaVu family)
Displayed Assets
| Column | Assets |
|---|---|
| Hard Money | Bitcoin (BTC/USD), Gold, Silver |
| Stocks | MSTR, STRC |
| Indices | NASDAQ, DOW, S&P 500 |
Color Scheme
| Asset | Color | Hex |
|---|---|---|
| Bitcoin | Orange | #F7931A |
| Gold | Gold | #FFD700 |
| Silver | Silver | #C0C0C0 |
| Stocks/Indices | Dollar Green | #00A86B |
| Status Bar | Bitcoin Orange | #F7931A |
Software Stack
- Framework: Arduino (PlatformIO)
- Display Library: LovyanGFX v1.2.19
- Fonts: DejaVu (antialiased)
Building
cd /home/chad/Documents/PlatformIO/Projects/bitcoin_dashboard
pio run -t upload
PlatformIO Configuration
- Platform: espressif32@6.8.1
- Board: esp32-s3-devkitc-1
- Partition: huge_app.csv (3MB app, no OTA)
- Flash Mode: QIO @ 80MHz
- PSRAM: OPI (8MB)
Data Source
Yahoo Finance API:
https://query1.finance.yahoo.com/v8/finance/chart/{SYMBOL}?interval=1d&range=1d
Symbol Mapping
| Display | Yahoo Symbol |
|---|---|
| Bitcoin | BTC-USD |
| Gold | GC=F |
| Silver | SI=F |
| MSTR | MSTR |
| STRC | STRC |
| NASDAQ | ^IXIC |
| DOW | ^DJI |
| S&P 500 | ^GSPC |
Pin Configuration
RGB Display Interface
| Signal | GPIO |
|---|---|
| D0-D15 | 15, 7, 6, 5, 4, 9, 46, 3, 8, 16, 1, 14, 21, 47, 48, 45 |
| HSYNC | GPIO 39 |
| VSYNC | GPIO 40 |
| DE | GPIO 41 |
| PCLK | GPIO 0 |
| Backlight | GPIO 2 |
Touch Controller (GT911)
| Signal | GPIO |
|---|---|
| SDA | GPIO 19 |
| SCL | GPIO 20 |
| I2C Address | 0x14 |
WiFi Setup
WiFi credentials are stored in ESP32 preferences (persistent storage):
preferences.begin("wifi", true);
preferences.putString("ssid", "your_ssid");
preferences.putString("password", "your_password");
preferences.end();
Project Structure
bitcoin_dashboard/
├── src/
│ └── main.cpp # Main application
├── docs/
│ └── README.md # This file
├── platformio.ini # PlatformIO configuration
└── .gitignore
License
MIT