Skip to the content
PCBKitNew board
2 layers166.2 × 152.4 mmBeeper, the printed circuit board in 3D

Circuit boards to beep out the backplane in the Apollo update test box

Size
166.2 × 152.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
16
Nets
56
Pads
190
Tracks, vias
527, 72
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
1 Nov 2021
Updated
23 Jun 2025

Overview

Beeper is an open-source printed circuit board by shirriff, from the shirriff/beepomatic repository on GitHub. It is a 2-layer board of 166.2 × 152.4 mm with 16 parts on 56 nets, routed with 527 tracks and 72 vias.

It is built around the PCAL9555AHF. Its parts include 5 connectors, 3 capacitors and 3 ICs.

Main components

1

README

README.md

beepomatic: automated backplane finding for Apollo-era hardware

This repository describes hardware and software for reverse-engineering a test box used with Apollo space hardware. This is unlikely to be useful to anyone else, but I figure I'll document it.

The test system in action. Two boards are plugged into the box at the back and are controlled by the breadboarded Teensy in front.

Background

In the Apollo mission to the Moon, the Up-Data Link was used to send data up to the spacecraft from the ground.

The Up-Data Link is a metal box painted a military gray. The box is roughly L-shaped and has several round connectors on top.

To test the Up-Data Link, the Up-Data Link Confidence Test Set was used. Unfortunately, we can't find any documentation on this test box, so I'm reverse-engineering it.

The up-data test box is a large rack-mountable box. It has a paper tape reader and switches, buttons, and illuminated digits on the front. 25 modules are plugged into the top of the box.

The box consists of 25 circuit boards plugged into a wire-wrapped backplane. It's almost impossible to figure out how the boards are connected through this tangle of wires. I beeped out some connections with a multimeter, but it is extremely tedious to do this manually through trial and error. So I decided to automate the beeping process.

View of the backplane, a tangled mass of white wires.

Beep-o-matic

My idea was to build two boards that will automatically beep out the connections between them. The idea is to pull one pin low and then see which other pins are pulled low on the other board; this indicates the pins are connected.

I still need to put boards into each combination of slots, so I need to run 300 scans. This is still somewhat tedious, but much better than probing the entire backplane manually to find a single connection.

Implementation

The backplane is implemented with 47-pin Elco connectors. Each board has three 16-bit GPIO chips connected to these pins; I used PCA9555A chips.) The chips are driven over I2C from a Teensy microcontroller. (Thanks to PCBWay for sponsoring these boards.)

On the software side, I wrote a simple program beeper.ino, which cycles through the 47 pins on each board, pulling each pin low in turn. It reads the remaining pins to see which ones are low and outputs that data to the serial port. It takes under a second to perform this scan.

I run beeper.py on my laptop; it records the output for each scan in output files.

Finally, the program net.py processes these output files to find connected components and output the wiring nets.

Issues

I pulled out all the boards, so I don't get any interference from the circuitry. However, the power and ground connections are still wired to the filter capacitors. As a result, I see phantom connections between power and ground because of current flow through the capacitor. (This happens with multimeter beeping too.) More inconvenient, though, is that once the capacitors are charged low, they can continue to pull the ground pins low even when I'm scanning unrelated pins. This can make it appear that most pins are connected to ground. I filter this out in the software analysis.

A second problem is that the box has a lot of wiring to front panel switches, which are connected to power or ground (depending on their position). I'll need to sort out that wiring manually.

Parts

16
QtyValueFootprintReferences
3.1uFCapacitors_ThroughHole:C_Disc_D3.0mm_W2.0mm_P2.50mmC1, C2, C3
3Conn_01x16Pin_Headers:Pin_Header_Straight_1x16_Pitch2.54mmJ2, J3, J4
3PCAL9555Housings_SSOP:TSSOP-24_4.4x7.8mm_Pitch0.65mmU1, U2, U3
18P8CSparkFun:RJ45-8J1
1Conn_01x47_Malebeeper:elco-47J5
1SolderJumper_3_Bridged12SparkFun:SMT-JUMPER_3_NO_SILKJP1

The 12 most common of 16 parts.

Questions

How big is the Beeper PCB?

It measures 166.2 × 152.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Beeper use?

16 parts, built around the PCAL9555AHF. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Beeper KiCad files?

From the shirriff/beepomatic repository on GitHub, at the commit this page was made from: the board is kicad/beeper.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Beeper design in my own project?

Its repository states no licence, so its author keeps all rights: ask shirriff before reusing the design.

Similar boards

  • 12 layers180 × 150 mmMarble, the printed circuit board in 3D

    Marble

    BerkeleyLab/Marble

    Dual FMC FPGA carrier board developed for general purpose use in particle accelerator electronics instrumentation.

    1,006 parts35
  • 2 layers181.7 × 171.5 mmErgonomic split left, the printed circuit board in 3D

    Ergonomic split left

    alexBinos/ergonomic_split

    An ergonomic split keyboard

    96 parts
  • 2 layers140.5 × 30 mmType e, the printed circuit board in 3D

    Type e

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    16 parts3kApache-2.0
  • 2 layers41.4 × 14.5 mmU2f zero, the printed circuit board in 3D

    U2f zero

    conorpp/u2f-zero

    U2F USB token optimized for physical security, affordability, and style

    16 parts2.4k
  • 2 layers122 × 37 mmV0-UmbilicalBoard, the printed circuit board in 3D

    V0-UmbilicalBoard

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    16 parts1.1kGPL-3.0
  • 2 layers152 × 57.6 mmVideoslotadapter, the printed circuit board in 3D

    Videoslotadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    16 parts1kGPL-3.0
  • 2 layers36 × 63.4 mmSmart ringfinal layout, the printed circuit board in 3D

    Smart ringfinal layout

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    16 parts915