An interesting thing about this simulator is that it is continuously calculating the path through the rotors for the current key pressed.
The hardware allows for multiple key presses and the software is written to use this functionality. For example, if the key A is pressed, the rotors are advanced when they stop, the result of encrypting that letter is shown. If another key is pressed, the rotors stay put and the result of encrypting that letter is also simultaneously shown on the plugboard.
As in the real machine, the keys must be kept pressed until the rotors stop spinning to illuminate the lampfield. Releasing the key immediately turns off the lampfield. Brief key presses advance the rotors, but do not illuminate the encrypted result.
Another thing that is possible is changing the rotors while a key is pressed. The lampfield is updated to show the new encrypted result for the same key with the current rotor position.
If two keys are pressed and the rotors are changed, the two lamps in the lampfield are updated.
A feature that is still not implemented is turning off the lampfield if a key and its encrypted key are both pressed. Let's say that C is pressed and it encrypts to F, if the F key is also pressed without releasing C, both the C and F lampfield lights should turn off since the Enigma Machine circuitry connects the lamps to the rotor maze through the normally closed contact in the key, pressing that key opens that contact.
The plugboard is also continuously scanned, inserting (or removing) a plug while a key is pressed will update the lampfield if that plug is part of the encryption path.
These features make this simulator one of the most electrically accurate out there.
A bonus feature is that the Mega2560 Pro Mini at the heart of this project uses the same ATMEGA16U2 as the Arduino UNO for USB connectivity. If you happen to have an External Lamp Field for your original Touchscreen Arduino Enigma, it will work with the Mega Enigma as well.
View more pictures on Instagram: