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.
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..
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.
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.
I designed a PCB in KiCad to connect all screw terminals to the Pi Pico.
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.

