In this listing you are buying an assembled Arduino Enigma Machine Simulator, ready to go. When you buy this item, a case will be assembled and mailed out to you. A unique serial number will be assigned to your unit. The current starting number is M 0091

The processing time has been listed at 3 weeks but your item may be ready for shipping before that. If you are interested in receiving something faster, we can ship this as a kit the next business day. Contact us for more details. 

The pictures on this listing are of a typical unit, serial number HaD 0001, this unit has already been sold. Your unit will look like similar to it, but due to the nature of assembling a laser cut case, you will receive a unique looking item.  Please read the rest of the listing for details.

Enigma I, M3, M4 Machine Simulator using an Arduino UNO. Also simulates the Uhr attachment.


I found an excellent Enigma simulator for the Android platform and this got me thinking. Wouldn't it be something to have an Enigma simulator running in an arduino with a touchscreen. Once the touch screen shield has been mated to the arduino, it sort of resembles the actual machine.

Sure, a phone app is more practical, but this is a physical device can be interacted with, taken places, shown around and be a conversation piece. It can even be powered away from a computer by using a 9V battery and a barrel jack plug. It even fits in a shirt pocket.

And this is how this got started...

The enigma machine was an electro-mechanical encryption device used around World War II. The main parts are the keyboard, which moves the rotors, then applies a current through the rotors. This current is sent back through the rotors by a reflector and then it lights up a lamp in the lamp field representing the encrypted letter. The lamp stayed lit for as long as the key was pressed, once the key was released, pressing the same key again would move the rotors and another lamp would light. The reflector was its principal weakness, it made encrypting and decrypting easy, for the same wheel position, if A was encrypted to G, pressing G decrypted it back to A. This had the side effect that a letter would never encrypt to itself, a property exploited by the people who broke the enigma code...

The Arduino Enigma Simulator can be used stand alone with a 9V battery and plug (included), be connected to the computer via a USB cable (also included) to receive power, or it can be operated from the computer using a terminal program.

On initial power up, it defaults to an Enigma M4, with reflector B thin, Greek wheel Beta, and rotors 1,2,3, set to A, no plugs connected on the plug board. The plugboard is at the bottom, the keyboard is just above it. In the center section the lamp field is visible and the rotors are at the top. There is a printer tape running in between the lamp field and the rotors. The printer function, textured background and the serial port functionality can be enabled and disabled when the machine is opened and ready to set the rotors.

The Uhr device is also simulated. The Uhr was an external attachment that plugged to the plugboard and performed different letter substitutions depending on which Uhr setting from 00..39 was selected.

The user manual can be accessed at http://arduinoenigma.blogspot.com/p/manual.html

You can download the source code for the enigma algorithm here http://arduinoenigma.blogspot.com/2014/10/source-code-for-implementation-of.html

Care was taken to ensure compatibility with the operation of enigma machines and quirks such as double stepping of the middle rotor were implemented. The accuracy of this simulation can be verified against the Universal Enigma

http://people.physik.hu-berlin.de/~palloks/js/enigma/enigma-u_v20_en.html

Modifying the machine settings is done by dragging rings, touching plugs, operating a rotary wheel, the use of menus was mostly avoided to help keep the realistic feeling of operating the machine.

You will get an Arduino UNO programmed with the Enigma Simulator, a touch screen, a 9V battery and a plug to power the arduino. A USB A-B cable as well as a CD with the Arduino IDE is included. You will be able to use this device as soon as you open the box. Once the Arduino IDE is installed, the machine can be connected to a computer and controlled via the Arduino Serial Monitor.

You will also receive a laser cut case made from 3.2mm Birch plywood. The iconic Enigma logo is engraved in the inside of the lid and in between the usb and power connectors. 

Machines Emulated: Enigma I, M3, M4

Entry Contacts (ETW):

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Reflectors (UKW):

A: EJMZALYXVBWFCRQUONTSPIKHGD

B: YRUHQSLDPXNGOKMIEBFZCWVJAT

C: FVPJIAOYEDRZXWGCTKUQSBNMHL

B thin: ENKQAUYWJICOPBLMDXZVFTHRGS

C thin: RDOBJNTKVEHMLFCWZAXGYIPSUQ

Rotors:

1: EKMFLGDQVZNTOWYHXUSPAIBRCJ, steps next wheel on Q-R transition.

2: AJDKSIRUXBLHWTMCQGZNPYFVOE, steps next wheel on E-F transition.

3: BDFHJLCPRTXVZNYEIWGAKMUSQO, steps next wheel on V-W transition.

4: ESOVPZJAYQUIRHXLNFTGKDCMWB, steps next wheel on J-K transition.

5: VZBRGITYUPSDNHLXAWMJQOFECK, steps next wheel on Z-A transition.

6: JPGVOUMFYQBENHZRDKASXLICTW, steps next wheel on Z-A and M-N transitions.

7: NZJHGRCXMYSWBOUFAIVLPEKQDT, steps next wheel on Z-A and M-N transitions.

8: FKQHTLXOCBJSPDZRAMEWNIUYGV, steps next wheel on Z-A and M-N transitions.

Additional Rotors (Greek Wheels):

Can only be used in M4 machines next to thin reflectors B & C. They do not step.

Beta: LEYJVCNIXWPBQMDRTAKZGFUHOS

Gamma: FSOKANUERHMBTIYCWLQPZXVGJD

The four rotor M4 machine can be made compatible with an M3 machine with a full size B reflector by selecting the thin B reflector and the Beta wheel in the A position. The M3 full size C reflector can be emulated in the M4 machine with the thin C reflector and the Gamma wheel in the A position.

Stepping Mechanism: Levers and Notches. The middle rotor double stepping anomaly is simulated correctly. See http://arduinoenigma.blogspot.com/2014/11/some-test-cases-for-double-stepping.html

Plugboard: Up to 13 plugs can be installed to swap the letters as they go from the keyboard to the rotor field and also when coming out from the rotor field to the lamps. When exactly 10 plugs are installed, the Uhr switch is enabled. The plugs perform a symmetrical substitution. If a plug between A and Z is installed. if A is typed, it will be converted by the plug into a Z going into the rotors. If a letter is encoded into an A, the plug will turn it into a Z going out to the lamps.

Uhr Switch: An external attachment that connected to the plugboard via 20 plugs, 10 red (a1..a10) , 10 black (b1..b10). A big dial allowed selection of 40 settings: 00..39. Emulates traditional plugs at setting 00, performs symmetrical substitutions at settings that were multiples of 4 (4,8,12...) and different asymmetrical substitution ie: A->Z but Z->G at all other settings. For more information: http://cryptomuseum.com/crypto/enigma/uhr/

Printer: Yes, a paper tape runs in between the rotors and the lamp field, the tape can be cut by touching it's rightmost part. Printing groups are selectable (continuous, 4,5,6 letters). Can also be disabled for a genuine experience.

External control: Yes, through a USB virtual serial port. The wheel position can be set and letters sent to be encoded. Encoded characters are printed in groups, if the printer option is set to 4, 5, or 6.

Keyboard layout: Old german qwert

QWERTZUIO

ASDFGHJK

PYXCVBNML

Power: Can be powered up with a 9V battery and the included plug or connected to the computer with the included A-B USB cable.

Dimensions: (counting wood case, plywood is 3.2mm (0.126") thick)

Width: 60.9mm (2.3975")

Length:78.3mm (3.083")

Height of bottom half: 24.9mm (0.980")

Contents of Package:

-Genuine Arduino Uno R3

-Seeed Studio 2.8" TFT Touch Shield V2.0 SKU: SLD10261P

-Laser cut case, made from 3.2mm Birch plywood with engraved Enigma logo

-Power connector: 9V Battery to Barrel Jack Plug

-9V Battery

-USB A-B cable

-CD with Arduino IDE (Windows, Mac OS X, Linux 32 & 64 bit OS)

-Welcome message (encrypted of course)

Shipping and Conditions:

Shipping is through Priority Mail or Priority Mail International. We offer Free shipping in the US, $21.95 to Canada, $26.50 to all other countries where Priority Mail ships.

This device is for educational, historical and entertainment purposes only. The encryption principle implemented has been broken many times in the past. This device does not ship to countries on US sanctions list.

When shipping outside the USA, the Enigma software will NOT be loaded into the Arduino. You will download the Enigma software and upload to the Arduino using the included Arduino IDE and USB cable. Contact us for technical assistance.

The simulator has been thoroughly verified and functionally tested before shipping. All sales are final.