No description
Find a file
2026-07-12 14:43:15 +02:00
.vscode Update VSCode options 2026-04-07 16:21:40 +02:00
include Initial commit 2021-10-22 02:13:56 +02:00
lib Initial commit 2021-10-22 02:13:56 +02:00
schematics Include symbols and footprints in project 2026-04-20 00:40:05 +02:00
src Update README and version information in main code 2026-04-08 11:54:40 +02:00
test Initial commit 2021-10-22 02:13:56 +02:00
.gitignore Initial commit 2021-10-22 02:13:56 +02:00
LICENSE Initial commit 2021-10-22 01:52:18 +02:00
platformio.ini Update output formatting and compiler options 2026-04-07 16:20:46 +02:00
README.md Update README.md 2026-07-12 14:43:15 +02:00

AlphaClock

Running old LED displays (DL-2416) with a micro controller and a DS3231 RTC module to display time, date and temperature.

Copyright (C) 2021-2026 Arno Welzel

My position on using AI in my free software projects

AI-generated contributions will never be knowingly accepted. If and where unknowingly accepted, help in pointing out and eliminating the slop portions is generally welcome.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Parts and schematics

The following parts are needed to build this project:

  • D1 Mini with ESP8266
  • MCP32017 port expander
  • Adafruit DS3231 Precision RTC Breakout (Product ID: 3013)
  • 2x DL-2416 smart LED displays
  • 2x capacitor 100 nF
  • 2x pushbutton switches

The folder schematics contains the schematics as PDF and a project for KiCad 10.

The switches used in the PCB layout are "Tru Components PBS-18B" and can be found here: https://www.conrad.de/de/p/tru-components-pbs-18b-701786-drucktaster-50-v-dc-ac-0-025-a-1-x-aus-ein-tastend-1-st-1566644.html

Please keep in mind, that the RTC module is intended to be mounted with the battery holder on top, so it is easier to replace the battery.

How to build the software

You can use Visual Studio Code with PlatformIO.

If needed, adjust the platform and compiler configuration in platformio.ini.

How to use the buttons

Button 1

This button will change from display mode to the menu mode. When pressing button 1 again in menu mode, it will cycle through all menu items:

  • DEMO
  • SET TIME
  • SET DATE
  • LIGHT
  • EXIT

The menu mode will automatically return to display mode after 10 seconds when no button was pressed.

When SET TIME, SET DATE or LIGHT was selected, button 1 will increase the selected item. For example: when SET TIME was selected, the time setting will show with a flashing hour. When you now press button 1 the hour will be increased by 1.

Button 2

In display mode this button will cycle through the following displays:

  • Time dispayed as HH:MM:SS
  • Date displayed as Day-of-week DD/MM
  • Year displayed as YYYY
  • Temperature displayed as T: n.n

After 5 seconds the display will automatically return to time display when no button was pressed.

In menu mode button 1 will enter the selected function and change to the active item depending on the menu:

  • DEMO - will start the demo (the demo will return to menu mode when finished).
  • SET TIME - change from hours to minutes and seconds and finally store the time to the RTC module.
  • SET DATE - change from year to month and day and finally store the date to the RTC module.
  • LIGHT - store the selected brightness.
  • EXIT - will leave the menu and return to time display.

Changelog

2.0

Refactored project:

  • Use D1 mini and MCP23017 instead of ATMega328P.
  • Fixed code to store settings in EEPROM for D1 mini.
  • Removed option to use the clock without an RTC module.
  • Fixed setup to first restore configured display brightness and display boot message before activating the interrupt handler.

1.3

Fixed date setting.

1.2

Changed date and time setting modes: the time will continue to update in setting modes as long as the seconds are not changed manually.

Use bool for flags instead of int.

1.1

Brightness setting will be stored to the EEPROM when the setting is saved and restored during setup.

1.0

Initial version.