A time machine to play GD tapes from archive.org
The easiest way to get a Time Machine working is to use the custom printed circuit board, along with the components in this page.
To obtain a Time Machine Board, send an email to gdtimemachine@gmail.com
The Raspberry Pi 3 A+ is probably the best for this task. It will be significantly faster than the Zero, and relatively inexpensive (about $25).
16 GB is more than sufficient. I have not tested 8 GB, but I would guess that will work also.
You need to install the raspbian Lite operating system on the Micro SD card. Visit this site and download and install the image for Raspbian Lite onto the SD card.
Rotary Encoder Code Switch Digital Potentiometer with Push Button. These cost about $12 for 10 knobs. You only need 3, and you can find similar ones in smaller batches. Just make sure they have 5 pins and 2 mechanical mounting points.
The time machine uses a 128 x 160 pixel display. There are many similar/equivalent displays which work with the same driver, but have different pinouts. If you are using the Time Machine Printed Circuit Board, then make sure to get this one, which has 8 pins as shown.
1.8” SPI TFT LCD Display Module 3.3V 5.5V 128×160 SPI TFT LCD Serial Port Display Module ST7735 51/AVR/STM32/ARM 8/16 bit. Cost: about $15.
These buttons are pretty standard, and work with the Grateful Dead Time Machine printed circuit board Tactile Switch Buttons (12mm square, 6mm tall) x 10 pack
The screw size for the raspberry pi and the accessories is M 2.5
A set of nylon screws, nuts, and standoffs comes in handy.
You will only need one of these, but this is for a set of 20! Antrader 20pcs Dual Female Pin Header Socket Connector Strip
If you are a maker and want to avoid using the Printed Circuit Board (you may want a different layout, for example), then here are the pinouts which will help you build it. Please let me know if there are any errors here, but it should be very very close.
Initially, I bought these 4 inch wires, and made everything work with them. Antrader Breadboard Jumper Wires 40 Pin 10CM Female to Female for Raspberry Pi
Later, I got some longer cables which I will use next time around, so that I have more flexibility in placing components in the box.
The sound card passes the RPi pins through the board. The power and ground are clearly labelled, but these are the mappings that I beeped out for the other pins.
Audio Label | Audio pin | RPi pin | GPIO | current use |
---|---|---|---|---|
SDA | 1 | 3 | 2 (SDAI2C) | stop button |
SCL | 2 | 5 | 3 (SCLI2C) | rewind button |
TX | 3 | 8 | 14 (UART TX) | |
RX | 4 | 10 | 15 (UART RX) | |
4 | 5 | 7 | 4 | select button |
17 | 6 | 11 | 17 | day dt |
18 | 7 | 12 | 18 (used by Audio Card!!!) | |
27 | 8 | 13 | 27 | day sw |
22 | 9 | 15 | 22 | year dt |
23 | 10 | 16 | 23 | year sw |
23 | 11 | 18 | 24 (screen A0) | screen A0 |
25 | 12 | 22 | 25 (screen reset) | screen reset |
MOS | 13 | 19 | 10 (MOSI) (screen SDA) | screen SDA |
MIS | 14 | 21 | 9 (MISO) | |
CLK | 15 | 23 | 11 (SCLK) (screen SCK) | screen SCK |
CE0 | 16 | 24 | 8 (CE0_N) (screen CS) | screen CS |
CE1 | 17 | 26 | 7 (CE1_N) | |
5 | 18 | 29 | 5 | month dt |
6 | 19 | 31 | 6 | month sw |
12 | 20 | 32 | 12 | month cl |
13 | 21 | 33 | 13 | day cl |
16 | 22 | 36 | 16 | year cl |
19 | 23 | 37 | 26 | ffwd button |
20 | 24 | 38 | 20 | play/pause button |
21 | 25 | 40 | 21 (Used by Audio Card!!!) |
For device pinouts through extra boards: https://pinout.xyz/pinout/pin24_gpio8# – this is completely misleading, but I’ll leave the link here. I just beeped out the pins using a multimeter.
device | Device Pin | GPIO pin | RPi Pin | audio pin |
---|---|---|---|---|
screen | LED | 3.3V or Gnd | 1 | 3V3 or Gnd |
screen | SCK | GPIO 11 | 23 | 15 |
screen | SDA | GPIO 10 | 19 | 13 |
screen | A0 | GPIO 24 | 18 | 11 |
screen | RESET | GPIO 25 | 22 | 12 |
screen | CS | GPIO 8 | 24 | 16 |
screen | GND | GND | 20 | gnd |
screen | VCC | 5V | 2 | 5V |
My current pinout for the knobs is shown below.
These are configured in the config.py file in the deadstream repo.
device | device pin | GPIO pin | RPi Pin | Soundcard Pin |
---|---|---|---|---|
year | cl | GPIO 16 | 36 | 22 |
year | dt | GPIO 22 | 15 | 9 |
year | sw | GPIO 23 | 16 | 10 |
year | + | 3V3 | 17 | |
year | gnd | gnd | 39 | |
month | cl | GPIO 12 | 32 | 20 |
month | dt | GPIO 5 | 29 | 18 |
month | sw | GPIO 6 | 31 | 19 |
month | + | 3V3 | 17 | |
month | gnd | gnd | 39 | |
day | cl | GPIO 13 | 33 | 21 |
day | dt | GPIO 17 | 11 | 6 |
day | sw | GPIO 27 | 13 | 8 |
day | + | 3V3 | 17 | |
day | gnd | gnd | 39 |