This started as a Covid lock-down project.
It's basically just the iconic "Load New Commander (Y/N)" screen with the tumbling Cobra Mk 3. But there was some feature creep, so there are extras including:
- 12 ship choices
- A clock mode and a clock "ship" (to give the project a reason to sit on the shelf, a purpose)
- The Status/COMMANDER screen
- The "Saturn" credits/splash screen
- Touch screen interaction including drag to manually pitch/roll ship
- Touch screen or button-press interaction with a menu system to configure ship, machine, background etc
The ship choices (screen-snaps captured from the data sent to the LCD):
The Saturn screen:
The Status screen:
A Viper on a larger LCD:
A couple of challenges here. The first was to create the 3D visuals. I wrote this from scratch, using the original ship data from github and informed by the amazing BBCElite. But the biggest was implementing the LCD graphics. Elite on the original hardware had the luxury of XORing lines into ~10k of video RAM, 320x256 1-bit pixels. There's only 2k RAM total on a Uno, so a considerable part of this project has been devising the Sparse algorithm that lets me "draw" lines to run-length-encoded data structures. I also made the effort to recreate the effect of the ship XORing though the text as it tumbles. Efficient rendering of the sparse lines to the LCD and using integer-based 3D calculations give me a pretty reasonable frame rate for the ship animation of ~10Hz.
See the video:
Some more images on flickr