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.



OpenSSF's Siren To Warn About OSS Vulnerabilities

Siren is a new mailing list by the OpenSSF which aims to monitor the threat landscape of open-source project vulnerabilities in order to provide real time alerts to anyone subscribed.

Apache Releases NetBeans 22

Apache NetBeans 22 has been released. This release has a new Gradle Wizard, upgrades to Java 22 javac, and a number of UI changes.

More News


kotlin book



or email your comment to:





Last Updated ( Saturday, 22 September 2018 )