Project start, core principles

17 Jun 2021

builds: Lander Module
tags: thermal-printer

A couple weeks ago Dr Professor asked me if I want to build a thing for Caravan Rally (happening this October). So far we’ve been talking about a “lander module” experience. Here are some parameters:

  1. it should be fun, engaging and diverting
  2. it should involve 2-3 people working together
  3. it should last about 5 minutes
  4. it should entail the operators landing a spacecraft
  5. it should be able to answer the question “how well did the operators land the spacecraft?”

Immediately my mind jumped to Moon Lander, and to the Apollo 11 VR experience. Drawing from those, and from this awesome Kerbal controllerf1, I’m building a game/toy/gadget that fits the above parameters.

I’m tracking parts and tickets in an Airtable.

Project is due in mid-September.

I will have regular meetings with Dr Professor to provide progress reports.


The main piece of this is a console that can fit in someone’s lap, have a bunch of knobs and switches and gauges on it, and be an operable computer for landing a spaceship.

The LM is meant to be operated by one person in a Caravan vehicle.


I’ve purchased a TI-99/4A to provide the “chassis” for this console.

I am experimenting with various buttons and switches that light up. I intend to build these into panels which can be screwed to the chassis, and plugged into a pcb. The pcb will connect the panels to power, and to a central controller like a Raspberry Pi or Arduino.

If I design any PCBs, their cad files will be stored in [a private] repository.

The whole thing will be powered by battery that may potentially be charged by USB and/or cigarette lighter.

Here are some ideas for devices that the console could use:

  • sliders, buttons, and switches. Momentary vs toggle.
  • a joystick, e.g. for precise control of maneuvering thrusters
  • dial or linear gauges. Not sure yet how to achieve this except perhaps a decal’d voltage meter. Perhaps a stepper motor and small screw.
  • 7-segment LCD indicators, e.g. for a mission timer
  • OLED or e-ink screen, e.g. for precise graphics
  • thermal receipt printer, e.g. for printing event summary, and/or scenario parameters
  • extra-special credit: real-looking attitude indicators
  • speakers, for playing sound effects of explosions etc.
  • buzzers, for when an alarm goes off.

More flighty ideas include:

  • the computer networks to a “GM” computer that allows a second human to control the sequence parameters
  • the computer networks to a small switch computer in each other car, to indicate caravan readiness
  • the computer has an audio output (cable, bluetooth, fm transmitter) for making the ship sounds be more…immersive
  • an on-board accelerometer and/or microphone, to implement an interaction like “if this gauge goes dead, try tapping on it”


The sequence code is another key part of this deliverable. It should fulfill the primary parameters, and if possible fulfill these secondary parameters:

  • the sequence should develop iteratively, so that I can always deliver a serviceable experience.
  • the layers of the application should stay separate, so that I may reuse them in future projects (that may or may not involve spaceships).

All source code will be stored in [a private] repository.


Another piece of this is a section of the Flight Manual dedicated to operation of the Lander Module (LM). This document will be read and interpreted by others in the Caravan vehicle.

The whole Flight Manual document will include more elements than I provide from this project.


Here’s where the fun starts. In order to keep it simple and deliver an MVP, I feel I should focus on core competencies:

  1. Main sequence. Player must push buttons in correct order to transition through multiple stages of landing.
  2. Controls include momentary and toggle inputs
  3. Indicators include a mission timer (counting up), event timer (counting down), and various LEDs
  4. Stages are: Atmospheric Entry, Main Drag (Parachute), Maneuvering, Touchdown

For each stage, the controls and indicators do slightly different things. For instance:

  • During Atmo the controls change the ship’s attitude, and the indicators show attitude, heat levels, and altitude. Final action to change stage is to eject the heat shield in a specific heat/altitude window.
  • During Main Drag, the controls are really just to deploy parachutes, and the indications are altitude, vertical speed, and ground speed. Stage exit is to cut the parachutes in a specific altitude/speed window.
  • During Maneuvering, controls are to align the ship with the landing zone, and make sure you don’t crash. Indicators are speeds, and some kind of “pointed-in-the-right-direction”-ness. Stage-exit action is to deploy landing gear when you’re in position and have 0 ground speed.
  • During Touchdown, controls are to burn the landing thruster. Indicators are speeds, and whether or not you went to space today.

That’s probably as simple as I’m willing to make it. If and when that’s done, I can implement new layers to it. For instance:

  • Parametric stages: These variables affect how the controls operate, but probably shouldn’t make the experience harder, just different. After all, the operators of this will likely get one “real” shot with it, so we can’t expect them to try many times, growing and learning.
    • Maybe the landing zone has really low/high gravity.
    • Maybe it has a heavy/light atmosphere.
    • The fuel or RCS mass starts at different levels?
  • Alarms: when the alarm goes off, it will blink various LEDs around the console. Based on which LEDs they are, there’s a different resolution pattern to perform (as detailed clearly in the Appendix of the LM Flight Manual).
    • the Heat Shield won’t separate, gotta blow the backup clamps
    • chutes won’t open, gotta deploy the backups
    • landing gear won’t deploy, cut throttle and blow airbags
  • Glitches:
    • maybe a DRO wonks out and starts showing garbage.
    • Maybe the whole console goes dead until you “power cycle” it.
  • New Sequences:
    • There’s an opportunity for a single “Launch” sequence at the beginning of the Rally. Maybe we could use this console for that too.
    • Maybe there’s a Training sequence for people to play with in the car before they have to do the real thing.
    • Maybe there’s a choice of landing zone.
  • More complex stages:
    • the Drag stage splits into two, for fast chutes and slow chutes
  • More complex inputs and outputs:
    • the Touchdown stage gets a screen and a joystick, and a “Moon Lander”-esque feel.

Questions for Design Team:

  • should we implement a Training Mode that lets them practice landing, say, on the Moon?
  • will we encourage teams to write their own margin notes in the Flight Manual?!