Skip to content
The Real Time Machine (mirror of https://gitlab.com/bobek/timemachine)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
NotLinuxAjazzAK33RGB @ 4412cf5
img
schematics
simplevfd
.gitignore
.gitmodules
LICENSE
README.md
destinations.yml
getch.py
inputters.py
outputters.py
psucontrol.py
timemachine.py
wrapper.sh

README.md

Time Machine

This repo contains code for Time Machine. It is intended as a glue for a kids summer game. The central idea of the game is time travel. So kids will be going through different eras of history of mankind (and beyond). They will collect "time codes" by solving puzzles and other participating in other games. When they punch in the correct time code, time machine will activate and transfer them to the particular era. Transfer is done via playing a video, which introduces them into that era (e.g. info about customs, arts, typical design etc.).

Time Machine demonstration

It has been designed and tested on Raspberry Pi3 running Raspbian.

Getting Raspberry Pi ready

Let's start with couple dependencies:

sudo apt install omxplayer python3-spidev python3-yaml

As it is expected to be run as automatically as possible, we leverage autologin to console. Which can be also enabled via raspi-config. Go to 3 Boot Options, then B1 Desktop / CLI and then B2 Console Autologin. In your .profile you can then call wrapper:

/home/pi/timemachine/wrapper.sh

Electronics

Check excellent pinout.xyz for mapping of RPi physical pins to BCM (Broadcom GPIO).

Power supply

ATX power supply from old computer is an ideal solution (SB stands for standby). Check wikipedia for the actual pinouts. But interesting ones are

  • pin 3 (and others) - COM (GND)
  • pin 4 - +5V
  • pin 16 - PS_ON#
  • pin 9 - +5VSB

Pin +5VSB provides +5V as long as is the PSU connected to power outlet. It should not be loaded with more then 2A, but that is still plenty for powering up Raspberry PI. Shorting PS_ON# to COM will turn the PSU on (some really old ones needed load on +5V rail, but that is not typically needed).

Controlling PSU is then achieved with trivial circuit shown below. You can use basically anything you find in your drawer. Current flowing through the control PIN is about 0.4mA on my PSU. Pin marked CONTROL on the schematics is connected to GPIO17 (physical pin 11) on the RPi.

psu control

Vacuum Florescent Display (VFD)

I love these things. I have used M0220SD‐202SDAR1 from Newhaven Display for this project. It has 2 lines, every with 20 characters. Fetch a copy of product specification for yourself as you will need to desolder jumper J4 and short J3 and J5 to convert display from parallel Motorola to serial interface.

VFD wiring to RPi3

Resistor value is again quite arbitrary. We are interfacing 4-wire SPI device (RPi3) with 3-wire SPI device (display). SL/SO on the display is bi-drectional, while directions are separated on the RPi3 side (MOSI is output, MISO is input). Resistor servers as a current protection/limiter in case of error state, where the RPi and display would be both outputting to the same pin with different values.

Accessories / Props

To make the whole thing more funky, couple of 3D printed props have been used:

Source of royalty free videos (for splashes for example):

You can’t perform that action at this time.