Simulating the Turing-Welchman Bombe With A Pi
Written by Historian   
Saturday, 10 October 2015

If you are looking for a weekend software/hardware project how about buidling your own working replica of that most iconic of machines, the Turing Bombe?  Simon Jensen's reverse engineering project uses C++, a Raspberry Pi and an Arduino.

The Bombe was the electro-mechanical device used by British codebreakers to crack the Enigma codes during World War II.

Over the course of their operation Bletchley Park  210 Bombes helped decode up to 5,000 intercepted message per day. Although attributed to Alan Turing with a refinement later added by Gordon Welchman, the initial design came from Polish cryptographers who handed over copies of the Enigma machines together with details of their "bomba kryptologiczna" prior to the German invasion of Poland. 

At the end of the war all the Bombes were dismantled.

However a fully-functioning replica was completed in 2007 and is on display at Bletchley Park as shown in this video:


You'll notice that this replica is big, occupying quite a lot of floor space. By contrast Simon Jensen's simulator is small and sits neatly on a table top. Nevertheless it provides a neat demonstration of how the Bombe worked, as explained in this video.



Prior  to embarking on the Bombe, Jensen had  built a three-rotor Enigma machine wrist watch - a fully functioning version of the type of machine used by German Wermacht in WW2 for encoding messages.

On his Asciimation website Jensen has provided details of both projects and his post announcing Turing-Welchman Bombe completed he writes:

My Turing-Welchman Bombe machine makes use of some software I wrote in C++ running on a Raspberry Pi 2. I figured out for myself how the Bombe worked then wrote my own software version, initially in BASIC of all things to run on my homemade 6502 computer Orwell. With the general algorithm worked out I ported it to C++.

The Raspberry Pi 2 connects to an Arduino which then drives three stepper motors, via driver boards, to turn the three indicator drums on the front of the machine. These drums mimic the three indicators on the real Bombe. The Arduino reports back the position of the drums to the Pi as a series of pulses then the Pi can tell the drums when to stop. An LCD screen on the side of the machine mimics the original Bombe mechanical indicator unit as well as providing a basic user interface. Start and Stop button are provided on the front of the machine as on the real Bombe.

The machine runs in real time (although the next stop is pre-calculated) so a Bombe run should take the same amount of time as a real Bombe run at Bletchley Park.

He goes on to provide details of the casing.




If you are interested in the the way the project unfolded there is a 10-part set of posts covering the entire build which was started in June. This video comes from early in the project:



Jensen also offers to share his C++ code with other enthusiasts!


More Information


Turing-Welchman Bombe completed

Archive for the 'Turing-Welchman Bombe' project

Related Articles

Codebreaking and Colossus

GCHQ Builds A Raspberry Pi Cluster


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



Azure Drops MariaDB Support, Adds Free SQL DB

Microsoft has announced changes to its Azure database services that will see support dropped for MariaDB and a free tier added for the preview of Azure SQL databases.

Unity Introducing Per-Install Fees Leaves Devs Reeling

When Unity announced plans for a new "Runtime Fee" tied to a player's installations of a game left many game makers wondering if having a hit game through Unity would cost them more mon [ ... ]

More News





or email your comment to:





Last Updated ( Saturday, 22 September 2018 )