This project was an experiment, a test case to see how much I could re-create the look and feel of the DSKY entirely in software, with the simplest possible hardware. It's also my small tribute to Apollo 11's 50th anniversary.
As the name implies, this is "lite", no where near a full simulation, just enough to get the feel.
The DSKY’s three main elements are drawn on the LCD: the indicator lights (UPLINK ACTY, PROG etc), the numbers (VERB, NOUN, registers etc) and the keys (ENTR, digits etc). Tapping on a button on-screen presses it.
Tapping the PROG light shows some very terse help:
(Note that this is a screen capture, created by echoing the LCD commands to serial, capturing as a text file and processing in a python script).
As is my want, I added an RTC board, so that the device could act as a clock, have a raison d'être.
The program starts with a splash screen which animates the moon's phases (and marks the Apollo 11 landing site). It's shown in this video.
As well as running the clock program:
the video shows the very non-DSKY Verb 18, Noun 28 (aka V18N28) Monitor Graphic:Moon Phase program running:
which leverages my moon image data to create an approximation to the current phase.
Other features include:
- V25N29 which provides entry of a verb/noun to run at startup (eg clock or moon phase)
- V99 ("Engine Ignition") is just some plausible looking numbers, with the occasional 1202 error :-)
- V50N9x is an RPN calculator! The Nouns provide various stack operations, for example N91=Push
- Noun's 30 and 31 allow some configuration; 24/12-hour mode, leading 0's, hemisphere (for the moon display)
The moon image data is quite large, so if it is enabled (with a #define) then V99 and V50N9x are not available. It the moon detail is turned off, they are enabled and the moon image is plain white.
I used my "I-C-S-P-R-T-C" board to insert the RTC within the Uno footprint, between it and the LCD shield. I intend to create an enclosure eventually.
The LCD is this.
The RTC is this.