

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. It simulates all well known enigma machines that have 26 keys. This is #PicoEnigma by It is an Arduino based Universal Enigma Machine Simulator that's open source and hackable. This logic works but it tends to get lost if the UHR is changed while a key in the enigma is pressed. The enigma logic would use that result to illuminate the lampfield. The enigma logic would then query the plugboard again and the UHR would perform a bottom to top translation. The first query would be translated by the UHR as a top to bottom translation and it would get disregarded by the enigma logic. The output letter would be queried through the plugboard again. The letter would then get sent through the rotors and it would come out as a different letter. The second query would be performed just to keep the UHR in sync with the enigma, its result would not get used. The first query would return the top to bottom substitution and the result would get used to send it through the rotors. The enigma machine would then perform two plugboard queries when a key is pressed. Then when the first signal is released, activating a second signal would get translated as a bottom to top. The first signal would be translated as top to bottom. An initial solution was to have a state variable in the UHR device.
