53 lines
2.4 KiB
Markdown
53 lines
2.4 KiB
Markdown
# MicroPython variant for ESP32C3
|
|
|
|
This firmware is designed to run on ESP32-C3 boards using MicroPython. It drives a Nixie tube clock with high refresh rate, advanced dimming, and blending effects, leveraging the ESP32's RMT peripheral for precise timing
|
|
|
|
## Highlights
|
|
|
|
- **High Refresh Rate:** Smooth, flicker-free display using RMT hardware
|
|
- **Dimming & Blending:** Configurable night mode brightness and digit blending transitions
|
|
- **Configurable via `config.py`:** All major settings can be overridden by uploading a `config.py` file
|
|
- **NTP Synchronization:** Periodically syncs time with NTP servers
|
|
- **Timezone & DST Support:** Adjustable timezone and daylight saving settings
|
|
|
|
## Configuration Options
|
|
|
|
You can override any of these defaults by uploading a `config.py` file:
|
|
|
|
- `CONFIG_TIMEZONE`: Timezone offset from UTC (default: 2)
|
|
- `CONFIG_DAYLIGHT_SAVING_ENABLED`: Enable/disable DST (default: True)
|
|
- `CONFIG_NTP_SYNC_INTERVAL_HOURS`: NTP sync interval (default: 24)
|
|
- `CONFIG_DIMMING_ENABLED`: Enable night dimming (default: True)
|
|
- `CONFIG_DIMMING_BRIGHTNESS`: Night brightness (default: 0.4)
|
|
- `CONFIG_DIMMING_START`: Dimming start hour (default: 15)
|
|
- `CONFIG_DIMMING_END`: Dimming end hour (default: 6)
|
|
- `CONFIG_DIMMING_GAMMA`: Dimming gamma correction (default: 2.2)
|
|
- `CONFIG_BLENDING_ENABLED`: Enable digit blending (default: True)
|
|
- `CONFIG_BLENDING_DURATION`: Blending duration in ms (default: 150)
|
|
- `CONFIG_NETWORKS`: Dictionary of SSIDs and passwords for auto-connect
|
|
|
|
## Features
|
|
|
|
- **WiFi Auto-Connect:** Scans and connects to known networks
|
|
- **NTP Time Sync:** Sets system time via NTP after WiFi connection
|
|
- **Display Modes:** Time, date, and temperature rendering functions
|
|
- **RMT-Based Display:** Uses ESP32 RMT for precise display timing
|
|
- **Night Mode:** Automatic dimming based on configured hours
|
|
- **Blending:** Smooth digit transitions for improved aesthetics
|
|
|
|
## Usage
|
|
|
|
1. Flash MicroPython to your ESP32-C3 board
|
|
2. Upload `main.py` and (optionally) `config.py` to the device
|
|
3. Reboot the board. The clock will auto-connect to WiFi, sync time, and start displaying
|
|
|
|
## Notes
|
|
|
|
- The firmware is intended for advanced users familiar with MicroPython and ESP32 hardware
|
|
- For custom settings, create and upload a `config.py` file with your overrides
|
|
- RMT and SPI pin assignments are set for typical Nixie clock hardware; adjust as needed for your build
|
|
|
|
---
|
|
|
|
For more details, see the source code and
|