The LCD shield I can get from Jaycar (XC4630) has a HX8347 controller which, like most, includes a scroll command (0x14 et al). I've been thinking for a while about doing something with it.

The command isn't a real scroll, the pixel data isn't shifted, rather the start address is altered, changing the origin in-memory, and the pixels wrap around when displayed.

This means that scrolling the display left pushes the leftmost column off the left side of the screen and it appears on the far right side.

I had some initial success creating a rapidly scrolling maze-like display, basically the famous

10 PRINT CHR$(205.5+RND(1));:GOTO 10

program, then a scrolling star-field. That prompted me to try rendering something moving through the star-field. An Apollo Command and Service Module (CSM) seemed relatively simple, and something I could create myself (I couldn't find any suitable image online).  I also found that it was approaching the fifty year anniversary of the last Apollo mission, Apollo 17, so it seemed fitting.

The final result is that I draw a small CSM over a scrolling background of

random stars

random forward or back slashes (creating a maze-like appearance)

random bands of colour

With each scroll, the rightmost column of pixels needs to be updated and the CSM image needs to be tidied up because it has scrolled left one pixel.  The simple nature of the CSM helps here, some columns remain the same, but the trailing and leading ends need to be redrawn and background pixels updated.

This is still pretty fast, less than 5ms per frame.

But there is some flicker.  My reading of the controller data-sheet suggests there is a pin which indicates that the controller is about to refresh.  In theory, triggering my render on that might help, but as far as I can tell it is not available to me.  Using a 'scope on the shield's "P2" connector did not reveal a likely candidate.

I had recently read a book about 2001: A Space Odyssey and also (((re)re)re) watched the film. The background cycles through the three modes, perhaps a little reminiscent of the Stargate scene.