the Adventures of Sara Cladlow

I am Sara Cladlow, a social consultant working in Washington, DC. I provide consulting, social training, and event services for both corporate and political clients. I also accept contracts for security investigations requiring a subtle touch.

This is the documentation for the Pocket Enigma. You will find an introduction to the Pocket Enigma and getting started videos on the Enigma page.

Pocket Enigma Hardware

The Pocket Enigma is a full functioning electronic Enigma machine. It measures 11.9cm * 9.1cm * 2.2cm (4.625in * 3.5in * 0.875in) and weigh 130g (4.5 oz.). It uses four AAA batteries (not included). It has an LCD screen, mini keyboard, and a 2.4GHz RF transceiver. The hardware started life as the SMART Response*.

The Pocket Enigma has a 384x136 pixel 4-gray level LCD display. On either side of the display are 5 buttons. The on-screen menu system uses these buttons. Below the screen there is a keyboard and an arrow navigation pad with push-to-enter. The LCD display does not have backlighting.

The Pocket Enigma uses 4 AAA sized batteries. It can also be powered from the Enigma Development Adapter when connected to an ISP programmer.

The Pocket Enigma has a power button on the top edge. Press this button for 1 second and release to turn off the device. The Pocket Enigma will power itself off after 5 minutes, if no keys are pressed. In truth, the power off is a low power mode and the Pocket Enigma is still using a small amount of power. If you will not use the device for an extended period of time, it is best to remove the batteries.

Pocket Enigma Function

The Pocket Enigma is a digital device compatible with the original German Enigma machines during much of WWII. It is capable of encoded and decoding Enigma messages (provided you have the proper Enigma setup) from historical documents, Enigma simulators, online role playing games, and other Pocket Enigma devices. You can even send and receive Enigma coded messages wirelessly over short distances using the built-in RF transceiver.

For a complete history on the physical Enigma machine, there are many internet sources. Where needed, some historical context is included. Refer to the Enigma API for background on how the Enigma engine works.

The Pocket Enigma user interface allows setting up the software based Enigma machine to send and receive messages. All settings are stored to persistent memory and are not lost when the device is powered down or the batteries removed.

A note on the menus: The Pocket Enigma user interface assigns actions to the menu buttons. Pressing the button on the side of the screen adjacent to the menu label performs the action. Some menus assign a pair of actions to a single menu button. Examples include < Action > - Action + B-Action-A. The action on the right is performed by the menu button directly. The action on the left is performed by Shift+Action button.

The Enter is in the center of the 4-way navigation pad in the lower right of the keyboard.

The Pocket Enigma was developed using the open source SRXEcore library and the open source Enigma API.

User Settings


There are three basic customizations. Once set, these rarely need to be changed.

Press Callsign to change the user callsign. The callsign is a short text string to identify the user of the Pocket Enigma. The callsign is either 4 or 5 letters. The callsign is used when creating Enigma messages.

The default callsign uses the device's reasonably unique ID. Anytime the callsign is edited, it will default back these letters. Type new letters to overwrite the default ones. You may press ENTER to accept the current letters.

The Pocket Enigma has a built-in 2.4GHz RF transceiver. The transceiver has 16 possible channels (1 through 16). The transceiver is used to send and receive Enigma messages.

Press -Channel+ to increment the channel number. Press Shift+-Channel+ to decrement the channel number.

Enigma messages are transmitted as a series of blocks of letters. The block size is either 4 or 5 letters long. Press Blocks to toggle the block size between these options.

The LCD screen does not have backlight. There is a contrast control. Press -Display+ to increase the contrast (darken the screen). Press Shift+-Display+ to decrease the contrast (lighten the screen). There are for boxes to use a a visual reference. Insure all four boxes look different.

In addition to the customization, the User screen displays a tiny area of text in the upper right corner. The contents of this are are diagnostic details including the device's reasonably unique ID, the current battery level, and the active random number generator seed value.

Note: When the Pocket Enigma is powered with batteries the voltage will be between 5V and 6V. When it is powered from an Enigma Development Adapter the voltage will be close to 3.3V.

Enigma Machine


Prior to using the Pocket Enigma to send and receive messages or encode and decode text, the machine must be setup.

The Pocket Enigma is able to emulate several different physical machines. The first step is to choose the machine type and reflector. Once set, these rarely need to be changed.

Enigma machines came with a pre-install reflector disk. The reflector disk had internal mapping wires and reflected the electrical signal back through the rotors.

Each machine came with a box of available rotors.

Enigma Setup


The Enigma Setup screen shows the current machine type and its reflector at the top.

The installed rotors are in the middle of the screen. Each rotor shows its roman numeral and its ring setting.

Below each rotor it its position within the rotor set - 'L M R' refers to left, middle, and right. On a four rotor machine, there is a rotor marked 'BG' for beta / gamma.

At the bottom of the screen is a representation of the plugboard and the current plug wires.

Machine Type


The Pocket Enigma has configurations for three common types of machines.

Change the machine type with the W3, M3, or M4 menus. Press the menu for each machine type to select the type and read a brief description of the machine.

Toggle the reflector disk with the Reflector menu.



The Pocket Enigma emulates the rotors of the three supported machines.

The choice or rotors and their order must be set before encoding or decoding message.

The configuration of the rotor set consists of choosing which rotor is in each position slot and choosing the rotor's ring setting.

Access the rotor setup with the Rotors menu from the Enigma Setup screen.

The < SLOT > menu will move the active slot to the next rotor. The Shift+< SLOT  > menu will move to active slot to the previous rotor.

Use the - Rotor + menu to increment the rotor in the active slot. Use the Shift+- Rotor + menu to decrement the rotor in the active slot. The number of available rotors is dependent on the machine type. When incrementing or decrementing a rotor, it will skip rotors which are currently used by other slots.

Use the - Ring + menu to increment the ring setting of the active slot. Use the Shift+- Ring + menu to decrement the ring setting of the active slot.



The Pocket Enigma has a plugboard which swaps letters to increase the complexity of the encoding of a message.

Access the plugboard setup with the Plugs menu from the Enigma Setup screen.

Add and remove plug wires by pressing letter pairs.

When the first letter is pressed, it will be shaded. When the second letter is pressed, the positions of the two letters are swapped and they are displayed with a black background.

Continue to press letter pairs as needed to create plug wires.

Enigma Usage


The Enigma messages screen displays the current daily key and message key at the top. The top right displays the visible positions of the rotors of the rotor set.

The rest of the screen is used to display the current message in both plain text and the encoded format.

Keys & Rotor Positions


There are two keys used to encode a message - the 'daily key' and the 'message Key'. There is a third key - the 'encoded key' - which is generated from the other two keys using the Enigma machine itself.

Use the Shift+D-Key-M menu to set the daily key. The screen will display a space to input letters for the key. The length of the input field will match the block size set from the User Settings. Type letters until the field is full.

Setting a daily key will automatically generate a random message key. You will see the rotor positions - displayed in the upper right - are adjusted to the new message key.

To set a specific message key, use the D-Key-M menu. The screen will display a space to input letters for the key. The length of the input field will match the block size set from the User Settings. Type letters until the field is full. You will see the rotor positions - displayed in the upper right - are adjusted to the new message key.

Tip: There is an extra feature for using the Pocket Enigma with role player games or with existing encoded messages. Use the Sym+D-Key-M menu to enter the encoded key.

Once the encoded key has been entered, the corresponding message key will be computed. You will see the rotor positions - displayed in the upper right - are adjusted to the new message key.



The Pocket Enigma is used much like a physical Enigma machine. The biggest difference is the Pocket Enigma has a built-in 2.4 GHz transceiver for sending and receiving messages. When multiple Pocket Enigmas are within range they receive and attempt to decode messages from each other. If two devices are configured alike, the messages will automatically decode.

Use the Message menu to begin entering the letters of a message to encode.

The typed letters will appear in the upper half of the screen while the letters are simultaneously encoded and shown in the lower half of the screen. The upper right block shows the progress of the rotors.

The message text is limited to 80 letters.

Press Enter key to process the message. Press Sym+DEL to escape from entering a message. After pressing Enter, the message is encoded and formatted into blocks for sending.

A new message is prefixed with NX for 'not transmitted'. Use the TX to transmit the current encoded message with the RF transceiver. The message is transmitted on the RF channel set from the User Settings. All other Pocket Enigmas within range and on the same channel will receive the message.

Only Pocket Enigmas with the same Enigma setup will be able to decode the message.

The Pocket Enigma formats message using the user callsign, the daily key, the message key, and the block size. Other than the two numeric elements of a message, all other data is formatted as a block of letters using the block size setting.


If another Pocket Enigma receives the message and it has the same machine type, reflector setting, rotors in the same order, ring settings, and plug board wires, then it will be able to decode the message.

When the Pocket Enigma receives a message on the RF channel is it monitoring, it will perform the decode process. The Enigma engine software is not able to determine is the decoded message is correct. It is only performing the decode process using its current Enigma setup.

The Pocket Enigma will automatically switch block sizes to correctly process received messages.

Tip: For using the Pocket Enigma with role player games or existing messages, you may want to enter the encoded message to translate back to plain text. Use the Sym+Message menu to begin entering the letters of an encoded message.

The messages sent and received are stored in a circular list. Use the navigation pad key to scroll to the previous message. Use the navigation pad key to scroll to the next message.

Use the Clear Q menu to erase all messages in the circular list.

The TX may be used to retransmit the current encoded message.

Tip: There is an extra feature for attempting to re-decode a received message. The purpose is to allow alternate Enigma setups to be tested on an existing message. When an RX message is selected, use the Sym+TX to decode the message again with the current Enigma setup. You may make changes to the Enigma setup and attempt to decode as many times as you wish.