
The machine can be identified as a glance as being in the configuration menu since multiple lamps in the lampfield will be illuminated without any keys being pressed. Those settings are then saved to internal non-volatile memory. It returns to an M4 with B reflector, Rotors B 3 2 1, Ring settings A A A A and all plugs are removed. Holding the red button for approximately two seconds performs an emergency zeroise of the machine configuration. Pressing the red button enters the configuration menu. If G is released, G illuminates.ģ) Up to three keys (one in each row) can be pressed at the same time, one of the rotor change buttons can be pressed as well, the rotors will change and up to three lamps will illuminate. For example, if pressing Y, illuminates G, while holding down Y, G is pressed, the G lamp turns off. If a key encodes to a lamp in a different row and that key is pressed, both lamps are turned off, as the normally closed contacts in the keyboard are opened up, releasing either key illuminates one light in the lampfield.

Due to limitations of the keyboard circuit, only one key per row can be pressed without distorting the position shown in the rotors. Once the middle rotors are in position after the double stepping anomaly has just occurred, they cannot be moved backwards either, only forward.Ģ) While a key is held down, a key from another row can be pressed as well and the result for the additional key will illuminate in the lamp fields. Since the stepping lever is always engaged in the rightmost rotor when a key is pressed down, the rotor can only be advanced, never moved back. If the stepping lever is not engaged, the left rotors can be moved backwards by pressing the button above the rotors. They were verified with an actual Enigma Machine.ġ) While a key is held down, the rotors can be manually moved forward by pressing the button under each rotor, and a new lamp corresponding to the result for the new rotor position and pressed key will illuminate in the lampfield, this may or may-not help in cryptanalysis of Enigma. The following 3 behaviors were implemented in this simulator for that extra physical realism. This property was exploited by Bletchley Park to break the Enigma Cipher. Because of the reflector, which sends back electricity through another set of rotor contacts, a letter can never encode to itself. Once a key is pressed and held down, the encoded result is shown in the lamp-field. Geared stepping machines and their more frequent irregular stepping are also simulated. For lever stepping machines, the double stepping anomaly is faithfully replicated and can be observed by setting the rotors to AADQ. Pressing an A-Z key animates the rotors rotating.ĭepending on the rotor position and the machine type, anywhere from 1 to 4 rotors will turn. The menu structure is as follows, upon powerup, the simulator shows the rotor position (AAAA) and is ready to encode with the current settings loaded from non-volatile internal storage memory (FLASH). Enigma M4 (thin B and thin C reflectors), Norway "NorEnigma", S "Sonder-Enigma", D (commercial), K (Swiss), R "Rocket" (Railway), T "Tirpitz" (Japan), KD with rewirable UKWD, A-865 Zählwerk (1928), G-111 (Hungary/Munich), G-260 (Abwehr, Argentina), G-312 (Abwehr, Bletchley) The list of machines emulated is as follows:Įnigma I (A, B, and C reflectors), Enigma M3 (B, C, and rewirable UKWD reflector). The accuracy of this simulator has been verified against Daniel Palloks Universal Enigma v2.5.

ENIGMA SIMULATOR C SOFTWARE
Once 10 plugs are set, an additional scrambler, a software emulation of the UHR switch can be enabled and set to any of its 40 positions.

For machines with a plugboard, one is emulated in software as well. There are a couple of oddball machines like the Swedish Enigma B A-133 and the Enigma Z30 that this does not simulate. PicoEnigma simulates all well known enigma machines that have 26 keys. Scroll all the way to the bottom for a demonstration video. This is #PicoEnigma by It is a very small, Arduino based Universal Enigma Machine Simulator that's open source and hackable.
