Sunday, April 3, 2016

Version 1.5 released

The code base for the Arduino Enigma Machine Simulator has been quite stable lately, it has been tested extensively so there are no glaring issues. There was however, a small intermittent visual corruption bug in the plugboard view that was difficult to track down. Not having a specific sequence of steps to reproduce and not being able to make it happen on demand, it could not be fixed.

Lately, I have been active in the Engima World Code Group Forum and using the simulator a lot through the serial port with the Arduino Serial Monitor tool since it is the easier way to encode long texts.

I noted the plugboard view was getting the visual corruption quite regularly and was not sure if it was related to the age of the Touchscreen LCD display, since the simulator that I am using was built in October 2014 (Hint: the bug is not related to the age of the screen, it works fine).

This is the main screen, touching the area at the bottom of the screen below the PYXCV key row enters the plugboard view.

This is the corrupted plugboard view, notice the faint E between the K and the L. It turns out it is in exactly the same position as the E in the lamp field in the main view. Touching the T shaped keys at the top of the screen returns to the main view.

If the plugboard view is entered again the visual corruption disappears.

During one of the enigma message sessions I noticed the last key encoded with the machine was the one showing up as a visual corruption in the lamp field. And here is where the bug was hiding. If a letter is encoded, the resulting letter would normally be illuminated in the lamp field. If a letter is encoded through the serial port, the resulting letter is only shown in the serial monitor window, but if the plug board is opened to make changes to the plugboard, the resulting letter will be shown as a visual corruption in its normal lamp field position.

Having a reliable sequence of steps that would reproduce the bug, fixing it was easy, clear out the encoded key variable if the letter is received and encoded through the serial port routine. Version 1.5 has been released to fix this. 

This bug was hard to track down because the plugboard had to be opened right after encoding a character through the serial port. If the Enigma logo was touched to open the machine instead and then the plugboard view was opened, it would display correctly.

New customers will get this updated version on their units. Existing customers can download the latest version at the usual download location provided in their welcome e-mail.

Monday, January 18, 2016

Assembled enigma machine simulator now available for sale on ebay

Last year, the Arduino Enigma Machine Simulator was entered in the best product prize competition.

Three units had to be assembled and submitted. Units HaD 0001, HaD 0002 and HaD 0003 were sent.  

When the competition ended, Units HaD 0001 and HaD 0002 were returned, as per the contest terms.

They were carefully photographed and listed for sale on eBay: HaD 0001 and HaD 0002. They both sold. Since there is interest in assembled enigma simulators, the eBay store has now two listings, one for the simulator in kit form and the other one for a fully assembled simulator.

eBay Store:

The simulator in kit form ships the next business day. When an assembled unit is purchased, it will be assembled, typically over the weekend. The processing time is listed as 20 days, but it might be ready sooner. 

Below are pictures of assembled unit HaD 0001 to give you an idea of what a completed unit looks like.

Sunday, December 27, 2015

Monday, October 12, 2015

Projects made with the Arduino Enigma Simulator Engine

The availability of a correct Free Open Source implementation for the Arduino platform of the Enigma encryption algorithm and the Uhr switch has inspired the following people to write their own enigma simulators. To this day, the most popular page on this blog is this:
What will you be inspired to make with it?

le Sanglier des Ardennes Page:

Source code:

Box sketch:

Claudio's Page:

Details about his Enigma Simulator:

Simulator source code:

Wednesday, August 19, 2015

Break this message, win USD $1000

Enigma encrypted messages have been broken before. There are certain properties of the machine that make this possible.

The enigma machine produces more secure messages if a message is encrypted once and then encrypted again, The fundamental weakness of the enigma machine is that a letter can never encrypt to itself. By encrypting a message twice with different settings, a letter in the clear text can encrypt to itself in the second round.

The following message has been encrypted twice with different settings on an M4 machine with an Uhr switch. No further technical help will be provided.

This is going to be called the #Enigma1KChallenge


The first person to fully decode it and follow the instructions will have $1000 sent via PayPal to them. No purchase necessary, void where prohibited by law, residents of jurisdictions where this would not be legal or restricted are not eligible to win. All laws and regulations apply. Any taxes are the responsibility of the winner.

You can use the following enigma engine or any other correct implementation:

Good luck.

Tuesday, August 18, 2015

Entered the Enigma Machine Simulator into The 2015 Hackaday Prize, Best Product competition

The Arduino Enigma Machine Simulator has been submitted for the The 2015 Hackaday Prize and Best Product competition. Three units, serial numbers HaD0001, HaD0002 and HaD0003 were built and submitted to SupplyFrame so they can be evaluated.

Tuesday, June 30, 2015

Acrylic Case Assembly Notes

These are the assembly notes for the acrylic case, available at:

The acrylic case is the same dimension as the wooden case and it puts together in a similar way.

Please review the assembly instructions for the wood case first.

In this project we use Loctite Go2 Gel for the case and Elmer's Glue-All to attach the Merkblatt to the lid.

Before starting to glue the case, the Arduino must be given some standoffs first. The bottom of the Arduino is not flat. The pins for the USB and 9V Power connectors in the front are taller than the pins in the back.

In the wooden case, a folded post-it note is used as a shim, but this solution cannot be used here because the case is transparent.

The standoffs are created from the unused acrylic piece where the parts are cut from. Locate a thin piece separating the bottom lid sides and break it off. Break this part into small rectangles and sand them smooth. The exact dimensions of the standoff pieces are not critical because we will be using their thickness to raise the bottom of the arduino. They will be laying down on their 3mm side.

Once you have 4 standoffs, apply a little Go2 Gel to each one and glue them to the bottom of the Arduino. They will glue to the PCB. One will go to the left of the infinity arduino logo on the top left corner. Another will go to the left of the ROHS compliant statement. The next one will go on the top right corner above the USB connector. The last one will go on the bottom right corner, clear of the power connector.

Once this step is completed, the case can be assembled in a similar fashion to the wooden one, except that this glue does not require water. Use a little Go2 Gel in each pocket, if you use too much it will get squeezed out. Work clean. Try not to get glue or fingerprint on the sides. There is no way to hide mistakes here...

Once the case is glued, apply hair bands to keep it together. The curing period for this glue is 24 Hours. It does not melt the plastic, but it forms a strong bond. If any glue is squeezed out of the case, you can pry it off after it cures.

To glue the instructions to the lid, use the Elmer's Glue-All, print out an instruction sheet and cut it down to size. Apply glue to the back and place it in the lid in the desired position. The glue will show through the back, you can use the scrap piece of acrylic to practice your gluing technique. If a mistake is made, the instruction sheet and the glue can be removed by getting it wet and rubbing it off. It will remove clean and leave no trace.

This case is the right dimension to accept the Housework 1131 hinges, but I have not found a way to nail the hinges to the case yet.