Can I do ITI courses without math

SWTP: Turing machine


In the past semester break, the software technology project from

  • Viktor Kratz,
  • Benjamin May,
  • Gökhan Bayrakci,
  • Sebastian Schöne,
  • Jakob Czekansky,
  • Lukas Ritter,
  • and Jan Schneider

built a Turing machine as a mechanical simulator.
Both the software side

  • Programming a simulator with Qt
  • Programming the Cortex-M3 microcontroller

as well as the hardware side

  • Creation of circuit diagrams
  • Creation of circuit board layouts
  • Manufacture and assembly of the boards

implemented by the students. Here is a first glimpse into the simulator.


In this video there is a small demonstration of a program which
performs a multiplication of two programmed numbers (2 * 3).

On the one hand, the GUI itself shows the program (in the table above), such as the
Read / write head (LSK) has to behave and on the other hand the content of the tape, which is limited to 32 places. The position of the LSK is shown with an arrow on the tape. Each place can have three states:

  • blue - empty
  • red - 0
  • green - 1

In addition, the current status is displayed (bottom left) and the simulation speed can be configured using a dial (next to "Run").
When the "Run" button is pressed, the simulation starts with the previously loaded program.

In the group, the developers of the microcontroller and the developers of the simulator have agreed on a uniform interface for controlling the components (LSK to the left, read the next entry in the program table, ...).
This made it possible to develop a program in the simulator that controls the process of the Turing machine without the need for the hardware.

In addition, the developers of the microcontroller software had to deal with the
Discuss the group that is responsible for the hardware.
The two groups answered the questions, among other things

  • Which hardware components are required?
  • How are the components controlled or configured?
  • Does the controller offer the possibility of connecting an additional hardware component?

in continuous exchange.


Since a punch card is used as program memory in the project, the
is read in optically, the students also wrote a "punch card generator". The programs are processed in the file format for the simulator as input and converted into a graphic that can be printed on a film. The information for

  • State in which this line is used
  • Letter where this line is used
  • Subsequent state
  • Letter to be written
  • Movement of the LSK to be carried out



In the current state of the project, most of the individual components work, only one circuit board has to be redeveloped. The drivers for these components have already been tested. In the first step, this was done with equivalent circuits or a logic analizer. Once the hardware components were ready, tested drivers were tested on the hardware.

Are still outstanding

  • ... rebuilding the faulty circuit board,
  • ... print missing housing parts,
  • ... assembling the components,
  • ... testing the entire system

Pictures of the project:



(Updates will follow ...)