Jürgen
unread,Dec 6, 2025, 5:14:04 AM (11 days ago) Dec 6Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Enigma touch
As discussed in the threads on Drew's museum mode controller and on the 4.10 beta firmware, I have added some functionality to the Enigma touch, with exhibition or teaching use in mind. Here's a first version, ready for testing if you are curious!
The new options are all controlled via USB commands only -- to avoid cluttering the UI, and because they are meant to be controlled by a "privileged" user with USB access, while it should not be possible to mess with them from the front panel.
Please see the release notes below for a short description of the new functions.
There is one known potential bug at this time: In a single instance, I got the Enigma touch to lock up when I touched a key to resume from the new screen-saver mode. Power-cycling recovered from that state without loss of information or settings, and I was not able yet to reproduce this behavior. I will continue to try and reproduce this (and to stare at the code...), aiming to fix this glitch.
In the meantime I would love to get your feedback: Do the new features work for you? Anything you would prefer to see implemented differently? Anything missing?
Many thanks!
Jürgen
Firmware 4.20 beta - Release Notes
All new settings are made via commands over a USB serial connection. They are stored permanently and survive power cycling (when powering down via the power switch, automatic timeouts or the new !PO command).
1. Locking the setup modes and power-off button
The setup modes for Model selection and replica settings, Rotor (= Wheel) selection, and Ring settings can be locked. The modes will still be accessible via the front panel buttons to view the current settings, but will not respond to the sliders. A lock icon in the upper left display window indicates when a mode is locked.
!LM, !LW, !LR lock the Model, Rotor (= Wheel) and Ring setup modes, respectively:
!Lx 1 locks access via the front panel button
!Lx 0 unlocks access
?Lx prints access status
!LM also controls access to the Reflector D re-wiring (long press of Modell button) and Diagnostic Mode (very long press). The long-press functions of the Rotor and Ring buttons remain available even if the respective setup modes are locked.
!LP 1 disables the power-off functionality of the power button
!LP 0 re-enables it
?LP prints lock status
When the power-off button is locked, the Enigma touch can only be powered off by (a) removing external power (if no battery installed), (b) an inactivity timeout, or (c) by the new USB command !PO. The power button will still be used to turn the power ON.
2. Control the user interface settings
The following commands control the UI settings. They are mainly meant for use with an external "museum mode controller". As usual, ?Mx can be used to view the current setting.
!MB x Brightness, level x = 1..5
!MV x Volume, level x = 0..3
!ML x Logging format. 1=short/5, 2=short/4, 3=extended/5, 4=extended/4
!ML only supports those settings which keep the USB serial connection active, so you can't lock yourself out. Keyboard mode or completely disabled USB can only be selected from the front panel.
3. Timeout control
Earlier firmware versions had a fixed inactivity timeout (automatic power-off) of 15 minutes in battery-operated mode, and no timeout when operated on an external 5V supply. The new firmware gives you control over these timeouts and adds an optional screen saver -- see the next section.
All times are given in minutes, with valid values from 1..99. Value 0 disables the respective automatic timeout.
!TB x Power-off timeout when battery-operated. Default 15 minutes.
!TP x Power-off timeout when plugged in. Default 0 (disabled).
!TS x Screen saver timeout. Default 10 minutes.
In addition, there is an optional shorter timeout for the setup modes. After a specified inactivity period, the Enigma touch can revert to its regular encryption mode. The timeout period is specified in seconds here:
! TM x Close setup modes after x seconds of inactivity. Default 0 (disabled).
4. Screen saver & demo modes
A simple screen saver mode is now built in. After the timeout specified via !TS, the Enigma starts to "type" random groups of 5 letters. Lamps light up and rotors move, but no sound is played and no USB output logged. You can resume normal operation by touching any key, mode button or slider.
While the rotor positions change in screen saver mode, the Enigma touch remembers the position when screen saver mode kicked in, and reverts to it when you resume operation (or save the current state by powering down). So if you are in the middle of encrypting a message, get called away and the screen saver takes over, you will not lose your position but can resume later.
Alternatively, and external controller can be used to drive the Enigma touch via USB, e.g. to implement smarter demo modes with real messages. In that case, you probably want to disable the internal timeouts and let the external controller manage screen saver/attract mode and optionally power-down via !PO.
To allow an external host to recognize when a user has re-started typing during an externally controlled attract mode: Characters triggered by the user via the touch keyboard are printed via USB in uppercase, while characters generated via USB input are printed in lowercase.