Skip to content

gweiser/enigma

Repository files navigation

The hardware for Enigma consists of three main parts:

  • Keyboard
  • Lampboard
  • Rotor Configuration Interface (RCI)

All three systems connect to a Raspberry Pi Pico on a PCB, which runs the code. I decided against building the plugboard, as I had a strict deadline with this being my final project for school and I would not have had the time to design this feature as well.

Keyboard

The keyboard consists of 26 push-buttons screwed onto a wooden board. The buttons are connected to screw terminals, soldered to a 5x5 diode matrix, which is in turn soldered to a Sparkfun SX1509 Expander Breakout board..

Lampboard

The lampboard consists of 26 mini-LEDs, whch fit into holes drilled into a wooden board. The distances between the lamps equal those of the keyboard. Each LED is soldered onto a SX1509 Expander Breakout board, which is why I added two of them. The lamps are covered by laminated letters slotted into a 3D-printed mount I designed.

Rotor Configuration Interface

In order to change the rotor, ring setting and starter position, the user selects a value using the first three push buttons and lock them in using the rightmost button. The values are displayed on a 16x2 LCD fitted with an I2C adapter.

PCB

I designed a PCB in KiCad to connect all screw terminals to the Pi Pico.

Enclosure

I built the wooden box completely from scratch, as I wanted to improve my woodworking skills. The edges are held together by finger joints, which had to fit perfectly.

The components of Enigma are screwed into wooden spacers inside the box, so that they sit flush at the top.

About

Recreation of Enigma, a WWII encryption device, using modern microelectronics. The script runs on a Raspberry Pi Pico and interfaces with various electronic parts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages