New firmware 4.11 is ready

76 views
Skip to first unread message

Jürgen

unread,
Aug 25, 2025, 3:48:02 AMAug 25
to Enigma touch
I am happy to announce the "official" new firmware 4.11 for the Enigma touch. Many thanks for your testing and suggestions on the earlier beta version 4.10!

The new firmware and a user manual with a few more updates are available for download from my e-basteln.de website. Chapter 6 of the manual describes the firmware update process.

Beyond the earlier enhancements in firmware 4.10, the new version adds the ability to define "virtual plugboard wirings" via a USB command, and incorporates several changes you suggested in the 4.10 thread. Please see the short release notes below for details.

Have fun with your Enigma touch!
Jürgen


FW 4.11, August 2025

- !PB command to set a virtual plugboard wiring
- USB serial output terminates lines with CR+LF
- Commands UD, XU (UKW) as synonyms for RD, XR (reflector)
- Comments are allowed after commands, delimited by “;”
- Rotor wiring display shows each UKW pair only once (like in the historic key sheets)
- Rotor wiring display shows turnover positions for rotors 

Jürgen

unread,
Aug 25, 2025, 11:33:27 AMAug 25
to Enigma touch
And of course there's a first bug report... Thanks to Bart for spotting this one:

It seems that with the addition of comments, the command parsing routine may skip across the CR/LF under some circumstances. It keeps looking for further characters, and then complains if it finds more of them than expected. So far, this has only been found for the !MO command, which uses a dedicated (and now slightly buggy) routine to parse the one- or two-character model names. 

So there will be a 4.12 bugfix version very soon -- sorry for the hassle... If you have a bit of time, I would much appreciate if you could play with 4.11 nevertheless, and maybe find another bug for me to fix!

Regards,
Jürgen

Jon Nall

unread,
Aug 25, 2025, 1:22:23 PMAug 25
to Enigma touch
Jürgen,
Just a quick report that 4.11 installed as expected and the CR+LF functionality works as expected. Thanks!

I'll try to test some additional functionality tonight.

nall. 

Ronald Wells

unread,
Aug 26, 2025, 12:28:30 AMAug 26
to Enigma touch
FW 4.11, August 2025
- !PB command to set a virtual plugboard wiring
  - works great!  Any reason not to report the physical plugboard configuration with ?PB when physical wires are used?
  - verified plug icon shows up when PB is programmed.
  - verified virtual PB is cleared when wires are connected
  - verified PB can not be programmed when wires are connected.
- USB serial output terminates lines with CR+LF
  - working!  I was able to remove my special session config and the output looks right

- Commands UD, XU (UKW) as synonyms for RD, XR (reflector)
  - works!

- Comments are allowed after commands, delimited by “;”
  - worked for me, i didn't run into the bug

- Rotor wiring display shows each UKW pair only once (like in the historic key sheets)
  - seems like this is working as described!

- Rotor wiring display shows turnover positions for rotors
  - nice!  See those marks, but I don't understand them apparently. looking at this page: https://www.cryptomuseum.com/crypto/enigma/wiring.htm
Rotor   ABCDEFGHIJKLMNOPQRSTUVWXYZ  Notch   Turnover    #
ETW     ABCDEFGHIJKLMNOPQRSTUVWXYZ          
I       EKMFLGDQVZNTOWYHXUSPAIBRCJ    Y        Q        1
II      AJDKSIRUXBLHWTMCQGZNPYFVOE    M        E        1
III     BDFHJLCPRTXVZNYEIWGAKMUSQO    D        V        1
IV      ESOVPZJAYQUIRHXLNFTGKDCMWB    R        J        1
V       VZBRGITYUPSDNHLXAWMJQOFECK    H        Z        1
VI      JPGVOUMFYQBENHZRDKASXLICTW    HU       ZM       2
VII     NZJHGRCXMYSWBOUFAIVLPEKQDT    HU       ZM       2
VIII    FKQHTLXOCBJSPDZRAMEWNIUYGV    HU       ZM       2
Beta    LEYJVCNIXWPBQMDRTAKZGFUHOS          
Gamma   FSOKANUERHMBTIYCWLQPZXVGJD          
UKW-B   ENKQAUYWJICOPBLMDXZVFTHRGS          
UKW-C   RDOBJNTKVEHMLFCWZAXGYIPSUQ          

display on the console:
UKW B     AE BN CK DQ FU GY HW IJ LO MP RX SZ TV

          A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Rot4 beta L E Y J V C N I X W P B Q M D R T A K Z G F U H O S
Rot3 I    E K M F L G D Q V Z N T O W Y H X*U S P A I B R C J
Rot2 II   A J D K S*I R U X B L H W T M C Q G Z N P Y F V O E
Rot1 III  B D F H J L C P R T X V Z N Y E I W G A K M*U S Q O
ETW 1     A B C D E F G H I J K L M N O P Q R S T U V W X Y Z


OLED displays, marks are on XQ  SE and MV

Not sure how to reconcile that exactly? 

Notes:
  - can you add a way to exit out of the various config modes?  I.E. if you do !RO it enters rotor mode !RI ring mode.  So input doesn't work until manually pressing those buttons again.  Maybe have any ? command exit out of any of those modes?
  - can  ?PB report the physical plugboard configuration when physical wires are used?

Great job!!!

Ronald Wells

unread,
Aug 26, 2025, 1:30:51 AMAug 26
to Enigma touch
I almost asked for this as a feature, but decided not to be so picky lol.. The manual says that you can input ring and rotor positions with numbers, but that does not seem to be working for me:

!RP 1 2 3 4
    ^

*** Letter expected

!RP a b c d
Positions A B C D

Also, with the session setting to add a LF for every CR taken out, the normal display looks ok, but responses from the ! commands seem to overwrite the line (this is the results after inputting !RP 1 2 3 4:

    ^ 2 3 4
*** Letter expected

Jürgen

unread,
Aug 26, 2025, 2:03:39 AMAug 26
to Enigma touch
Hi Ron,

Many thanks for the systematic checks!

> Rotor wiring display shows turnover positions for rotors
> nice!  See those marks, but I don't understand them apparently. looking at this page: https://www.cryptomuseum.com/crypto/enigma/wiring.htm

The different formats are a bit confusing indeed -- but I think they are consistent. The Cryptomuseum lists give the turnover position with reference to the first line of their wiring tables (ABCDE, i.e. the rotor position visible in the window, assuming that the rings are set to 'A'). In the USB console of the Enigma touch you should see the '*' in the respective position. E.g. for rotor I it is after the 'Q' in the top output line (ABCDE which indicates the position) -- and where the contact is wired to 'X'. This way of notating the rotor wirings and turnover positions is adopted from the NSA documentation of Enigma wirings, bwt -- see  https://cryptocellar.org/enigma/#e-wiring.

For the display on the OLEDs, the "what is displayed on the left vs. right" question comes back again to potentially cause confusion. As discussed before, the right-hand letters denote the contacts on the right side of the rotor. So they are the ones which indicate the rotor position and are ordered ABCDE in the display. So for rotor I, where the turnover position is after 'Q' (and the 'Q' contact on the right is connected to the 'X' contact on the left), the turnover arrow is shown after 'XQ'.

Is there a better, more intuitive way to display this?

> can you add a way to exit out of the various config modes?  I.E. if you do !RO it enters rotor mode !RI ring mode.  
> So input doesn't work until manually pressing those buttons again.  Maybe have any ? command exit out of any of those modes?

That's a great point! Currently the !RP command is the only way to switch back to regular enciphering mode. But one may not always want to set the rotor positions right away. Having any ? command revert to enciphering mode seems like the obvious thing to do; I will implement that.

>   can  ?PB report the physical plugboard configuration when physical wires are used?

Yes, that's what ?PB is supposed to do -- and seems to do for me when I try. Under which circumstances do you not get the physical wiring printed out if it is present?

> The manual says that you can input ring and rotor positions with numbers, but that does not seem to be working for me:

This "works as designed" for me -- but I am wondering if I should change the design? Currently you must use letters to specify rotor (or ring) positions for all Enigma models except the Enigma I, and you must use numerical positions for the Enigma I. That's authentic, but not very friendly... Should I allow either input format (maybe even mixed numerical/alphabetic input?) for either machine type, and reply with numeric or alpha settings depending on the actual machine's convention? 

> Also, with the session setting to add a LF for every CR taken out, the normal display looks ok, but responses from the ! commands seem to overwrite the line

Oh, indeed -- at the end of a user command input, only CR is echoed. (Actually, the first end-of-line character received from the terminal is echoed. So if the terminal program is configured to send LF as the EOL character, that's what the Enigma sends back.) The output should be CR+LF in any case; I will change that. 

Well, looks like there is enough critical mass for a 4.12 bugfix version! And for future releases I should probably figure out a way to display version names like "4.10 beta" to avoid the inflation of version numbers... 

Ronald Wells

unread,
Aug 26, 2025, 11:09:07 AMAug 26
to Enigma touch
On Tuesday, August 26, 2025 at 1:03:39 AM UTC-5 Jürgen wrote:
Hi Ron,

Many thanks for the systematic checks!
 
You're very welcome, thanks for all the amazing improvements! 


> Rotor wiring display shows turnover positions for rotors
> nice!  See those marks, but I don't understand them apparently. looking at this page: https://www.cryptomuseum.com/crypto/enigma/wiring.htm

The different formats are a bit confusing indeed -- but I think they are consistent. The Cryptomuseum lists give the turnover position with reference to the first line of their wiring tables (ABCDE, i.e. the rotor position visible in the window, assuming that the rings are set to 'A'). In the USB console of the Enigma touch you should see the '*' in the respective position. E.g. for rotor I it is after the 'Q' in the top output line (ABCDE which indicates the position) -- and where the contact is wired to 'X'. This way of notating the rotor wirings and turnover positions is adopted from the NSA documentation of Enigma wirings, bwt -- see  https://cryptocellar.org/enigma/#e-wiring.

For the display on the OLEDs, the "what is displayed on the left vs. right" question comes back again to potentially cause confusion. As discussed before, the right-hand letters denote the contacts on the right side of the rotor. So they are the ones which indicate the rotor position and are ordered ABCDE in the display. So for rotor I, where the turnover position is after 'Q' (and the 'Q' contact on the right is connected to the 'X' contact on the left), the turnover arrow is shown after 'XQ'.

Is there a better, more intuitive way to display this?
 
Ah, I think I understand now.  I can't think of a better way to display it, it's just a complicated concept.  Maybe putting the tic above the right letter in the OLED?  so for rotor I it would be above the Q instead above the X?  It might just be a case where there needs to be more description in the manual though, since it's just kinda confusing.  At least to me lol.


> can you add a way to exit out of the various config modes?  I.E. if you do !RO it enters rotor mode !RI ring mode.  
> So input doesn't work until manually pressing those buttons again.  Maybe have any ? command exit out of any of those modes?

That's a great point! Currently the !RP command is the only way to switch back to regular enciphering mode. But one may not always want to set the rotor positions right away. Having any ? command revert to enciphering mode seems like the obvious thing to do; I will implement that.
 
Awesome, thank you! 


>   can  ?PB report the physical plugboard configuration when physical wires are used?

Yes, that's what ?PB is supposed to do -- and seems to do for me when I try. Under which circumstances do you not get the physical wiring printed out if it is present?
 
Well, that's odd, it seems to be working for me today as well.  Last night it would just report "*** Physical plugs in use" (I think, or something like that)..  Maybe I was executing !PB instead of ?PB by mistake?  I'll play around and see if I can reproduce the results from last night.


> The manual says that you can input ring and rotor positions with numbers, but that does not seem to be working for me:

This "works as designed" for me -- but I am wondering if I should change the design? Currently you must use letters to specify rotor (or ring) positions for all Enigma models except the Enigma I, and you must use numerical positions for the Enigma I. That's authentic, but not very friendly... Should I allow either input format (maybe even mixed numerical/alphabetic input?) for either machine type, and reply with numeric or alpha settings depending on the actual machine's convention? 

Oohh, I missed the "for Enigma I" qualifier on the entering numbers part.  Ya, this is why I didn't say anything initially, I thought it might deviate from authenticity too much.  I don't have a strong opinion on this, having the option to enter numbers is definitely more convenient, but it's not a big deal.


> Also, with the session setting to add a LF for every CR taken out, the normal display looks ok, but responses from the ! commands seem to overwrite the line

Oh, indeed -- at the end of a user command input, only CR is echoed. (Actually, the first end-of-line character received from the terminal is echoed. So if the terminal program is configured to send LF as the EOL character, that's what the Enigma sends back.) The output should be CR+LF in any case; I will change that. 
 
Thanks! 

Jürgen

unread,
Aug 27, 2025, 10:36:43 AMAug 27
to Enigma touch
All right, let's try again! ;-)  The updated firmware 4.12 and a corresponding user manual with minimal revisions are now available for download from my e-basteln.de website. 
  • USB input now accepts CR, LF or CR+LF as the end-of-line signal, and will always echo a CR+LF. I think that's as close as we can get to a "universal" mode. 
  • Every "?.." command sets the Enigma touch back to regular encryption/decryption mode. 
  • The buffer overflow that could occur after the !MO command (when used with single-letter model names) should be fixed as well.
  • For the !RP and !RI commands, I have opted to allow letters and Arabic numerals at any time, even mixed. The response will use the correct format for the machine type currently in use, i.e. numbers for the Enigma I and letters for all other models. This avoids some manual translations when working with the old key sheets and transmission formats. Let's focus on authenticity in the interactive front panel operation, and on convenience in the USB commands. :-)
Again, many thanks to all who have tested, found those glitches and suggested improvements!

Jürgen

Ronald Wells

unread,
Aug 27, 2025, 12:35:20 PMAug 27
to Enigma touch
I'll try to spend some more time tonight, but so far everything looks good!

I re-read the manual from the start too and see if i see anything off

Thanks Jurgen!!
Reply all
Reply to author
Forward
0 new messages