• Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created about 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An NTSC/PAL version of the 80s Dali Clock for the ESP32

Dali Clock Animation

esp32-dali-clock

This is an ESP32 recreation of the "Dali" digital clock where the digits "melt" into one another. Watch a full demonstration on YouTube

Stretch Goal for Sponsors!

🧑 πŸ’› πŸ’œ If I get at least 25 GitHub Sponsors for this project, I will work on a vaporwave-style of this clock! Watch this helpful video Vaporwave vs Outrun, What's the Difference? for a breakdown of the differences between outrun and vaporwave aesthetic! 😍

About the project

The Dali clock was first written in 1979 by Steve Capps for the Xerox Alto and later ported to the Macintosh. Later, Jamie Zawinski re-implemented an X Windows version called xdaliclock. Jamie's page has a full write up of the history, including a link to a super trippy film from the 1974s that inspired the clock.

My re-interpretation of the Dali clock includes colorful retro graphics and outputs composite video output for any NTSC or PAL television or monitor. Putting it together is ridiculously simple, requiring only two wires. All configuration is done via a web interface YouTube and clock's time is synchronized via the Internet.

More details

This project is a follow up to my earlier project, the arduino-dali-clock, which used a TFT panel and an external clock module.

For my clock, I borrowed the ".xbm" font files from Jamie's work, but my implementation does not share any code with that version.

For video output, this project includes code from rossumur's esp_8_bit and bitluni's ESP32CompositeVideo. These changes are also available in my standalone project ESP32CompositeColorVideo, which also includes a write up on what bits I borrowed from where.

Troubleshooting

Click to Expand

I get an error about the files in "src" not being found: Make sure you are using the latest version of the Arduino IDE. Earlier versions do not support files in the "src" directory.

Wiring for an Adafruit HUZZAH32:

Click to Expand

Dali Clock Wiring

  1. Use an alligator clip to connect the pin labeled "GND" on the Adafruit HUZZAH32 to the outside barrel of the RCA plug
  2. Use an alligator clip to connect the pin labeled "A1/DAC1" on the Adafruit HUZZAH32 to the central pin of the RCA plug
  3. Connect the other end of the RCA cable to the yellow jack on your TV or monitor

Advanced Configuration Options

Click to Expand

For PAL output, change the line in "esp32-dali-clock.ino" from:

CompositeColorOutput composite(CompositeColorOutput::NTSC);

To:

CompositeColorOutput composite(CompositeColorOutput::PAL);

To change the orientation of the screen, uncomment (remove the leading two slashes) from one of the following lines in the file "src/gfx/CompositeGraphics.h"

//#define GFX_UPSIDE_DOWN
//#define GFX_FLIP_HORIZONTAL
//#define GFX_FLIP_VERTICAL

Licenses

Click to expand

ESP32 Dali Clock (marciot)

DaliClock by (c) 2021 Marcio Teixeira

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.

To view a copy of the GNU General Public License, go to the following
location: <http://www.gnu.org/licenses/>.

xdaliclock (Jamie Zawinski)

xdaliclock - a melting digital clock
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2001, 2006
 Jamie Zawinski <[email protected]>

Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.  No representations are made about the suitability of this
software for any purpose.  It is provided "as is" without express or
implied warranty.

esp_8_bit (rossumur, Peter Barrett)

Copyright (c) 2020, Peter Barrett

Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted, provided that the
above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.

ESP32CompositeVideo (Bitluni)

CC0. Do whatever you like with the code but I will be thankfull 
if you attribute me. Keep the spirit alive :-)

- bitluni

Dali Clock Mini TV

More Repositories

1

mac-minivnc

A VNC remote desktop server for vintage Macintosh computers, including the Mac Plus.
C++
111
star
2

mac-tip

A port of GRC's "TIP: Zip & Jaz Drive and Cartridge Testing System" for 68k and PowerPC Macintosh systems
Assembly
36
star
3

html2three

A library for creating VR content using HTML and CSS (Rift, Vive, Leap Motion support)
JavaScript
32
star
4

retroweb-vintage-computer-museum

A rich framework for teaching about historical computers through emulation.
JavaScript
27
star
5

dome-experiments

Dome theater projection and virtual reality using THREE.js
JavaScript
12
star
6

mazewar-vr

A modern remake of the 1974 game by Steve Colley and Greg Thompson (GearVR/Cardboard/Rift/Vive)
JavaScript
5
star
7

retroweb-networking

Provides networking services for JavaScript computer emulators over WebRTC
JavaScript
5
star
8

blog-demos

This is a collection of demos which are featured in my blog
JavaScript
5
star
9

arduino-dali-clock

This is an Arduino recreation of the "Dali" digital clock where digits "melt" into one another.
C
4
star
10

mac68k-hacks

A list of resources regarding classic Macintosh hacking
3
star
11

retroweb-components

RetroWeb Components is a library of WebComponents for working with JavaScript-based emulators.
HTML
3
star
12

gaze-interaction

A THREE.js library for allowing gaze interaction in WebVR.
JavaScript
2
star
13

arduino-rainbow-synth

An Arduino Synthesizer using the FTDI FT800/FT810 chip
C++
2
star
14

esp32-tutorials

Small ESP32 Hacks and Tutorials
C
2
star
15

fast-vector-display-arduino

An extremely fast vector display for Arduino
C++
2
star
16

js-seismograph

A simple web app for collecting accelerometer data from a smartphone
JavaScript
1
star
17

marciot

1
star
18

retroweb-salto-simulator-js

Modifications to the SALTO Simulator to allow for compilation to JavaScript via Emscripten
C
1
star
19

esp32-automated-water-leak-protection

Whole-Home Water Leak and Shutoff System Based on the ESP32
OpenSCAD
1
star