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
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 can also order 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. The case ships unassembled. To assemble, you need to supply Elmer's Wood Glue or Gorilla Wood Glue and the hinges (Houseworks #1131) to attach the case to the lid. The last picture in the auction shows how the assembled product would look like.
If you have your own Seeed Studio 2.8 TFT Touch Shield V2 or Seeed Studio 2.8 TFT Touch Shield V1 you can order the Arduino only. Every time the device powers up, it automatically detects whether a V1 or V2 LCD is now attached and uses it. There are a limited number of V1 LCD in stock that can also be ordered. The scrolling function of the wheels is a little slower, but is cheaper.
Machines Emulated: Enigma I, M3, M4
Entry Contacts (ETW):
B thin: ENKQAUYWJICOPBLMDXZVFTHRGS
C thin: RDOBJNTKVEHMLFCWZAXGYIPSUQ
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.
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
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")
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
-USB A-B cable
-Welcome message (encrypted of course)
Shipping and Conditions:
Shipping is through Priority Mail or Priority Mail International. $5.95 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.
|Shipping Rate||First item||Additional items|
United States Postal Service: Priority Mail
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!
Get your own enigma machine simulator or use the enigma engine source code provided to create your own.