January 20, 2024

Who build the first computer?

 Answering this question is surprisingly hard, because there was an evoluation available from mechanical calculators to programmable calcuulator into modern computing. A machine which comes close to a modern computer is the PDP-1 released in 1959. This machine was equipped with a RAM memory, was used to run programs and there was even a monitor plugged into the device. According to Wikipedia, the pdp-1 was equipped with only 12kb of RAM which is smaller what the VC-20 has to offer.

Of course, there were many machines available before the pdp-1 but they can't be called a computer. If a machine has a main memory of only 1 kb or smaller its not possible to store a program into the machine. Also it can't be used for any practical application.

Early calculating machines like Mark I (1944) and the Zuse Z3 (1941) have more in common with a pocket calculator like TI-58 (1977). The only purpose of Zuse Z3 and Mark I was to calculate numbers in a predefined sequence. Their usefulness was little or even not there. The reason why these machines were built was to get a better understanding about the Von neumann architecture.

In parallel to the development of early calculating machines there was a shortage in main memory. Early attempts like magnetic core memory and williams tube (both invented in the 1950s) were very slow and had a small amount of memory. So the engineers of the 1950s were not able to build more powerful computers.

What was available until the advent of the pdp-1 were endless amount of mechanical calculators. Most of them were not controlled by punch cards, but larger models were equipped with this capabilities. The mechanical calculators until the 1950s were used for all the calculating tasks in buisness and science and were seen as highly advanced technology.

But let us go back to the initial question about the very first computer worldwide. What we can say for sure is, that in the 1940s in many places at the same time the first program controlled machines were built. Most of them with relais and vaccum tubes. It seems, that the building these machines was mostly a learning by doing task. At first the engineers built only the arithmic unit and then they have added a memory and other components. If one machine was built, the next model was planned and this resulted into a fast development which has evolved into today's computing industry.

According to the precise timeline, the zuse Z1 was the first computer in the world which was built in 1937. But only 7 years later, the Mark I (1944) was released in the U.S. and the machine was much better designed than any Zuse machine. The reason why especially early computing machines from the 1940s are interesting for today's engineers is because the improvement was very fast. It took only months until the next improved version of a calculating machine was built which was based on a complete different hardware. This fast development is surprising because the decades before during the manufactoring of mechanical calculators there was only a little improvement visible. A calculating machine from the 1870 looks the same like a calculater from the 1920s.

January 13, 2024

The limitation of the Zuse calculating machine

 The machines from Konrad Zuse were often referenced as innovative early sort of computers. The assumption is, that the technology was great but the world was unabe to see genius of the Z22  vacuum tubes controlled machine.

Instead of describing the legacy of Zuse by its own words there is need to revisit the technology from a technical perspective. The computers created by Konrad Zuse are an intermediate technology between calculators and Unix based computing. The only perspective under which the Z22 has to be called advanced and modern is with a focus on former calculaters.

The main task for a calculator is to add and subtract numbers. All the machines buit by Zuse are able to do so and in addition they can execute a program provided on Punched tape. The commands on the punch tabe are writen in the Freiburger code which is an assembly language. In other words, the Z22 is a programmable calculator.

Unfurtunately, programmable pocket calculator were replaced by main frame computers. Since the 1970s these computers were equipped with a dedicated operating system called UNIX which is a multi user time sharing system. This system allows to use the ressouces of the computer more efficient which means, that the costs for a user on a machine are lower. In contrast the Z22 has no operating system at all and it can't be called a computer. But its simply an advanced calculating machine. The strength is to add and subtract columns of data but it lacks in support for computing appications like word processing, networking and computer animation.

In other words, the Z22 was outdated since its release. And only to judge fair, other early calculating machines from IBM can't be called a computer. Similar to the Z22 these machines were used without a UNIX operating system and its main task was to replace office calculating machines. A computer in the modern sense goes beyond the capabilities of calculating numbers but it is working with library of programs and is used to store textual information in a UNIX environment.

Before it makes sense to explain the inner working of the Z22 there is a need provide the context in which the machine was developed. The starting point is, that a mechanical calculator (a Comptometer) is available.[1] The Comptometer has buttons to enter numbers and other buttons to activate a function like +, - and so on.

The Zuse Z22 and other machines from the same inventor are improved versions of the comptometer. They are able to process data much faster, also they are much easier to use because of the mentioned Freiburger Code. That means, entering assembly instruction shouldn't be seen as a problem but as an improvement over former interaction with a machine.

Unfurtunately, the history of computing is moving very fast. The comptometer has felt out of fashion since the 1950s.

[1] https://en.wikipedia.org/wiki/Comptometer

BEAM robotics in software

The original BEAM movement took place from 1990 until 2000. It seems that the principle has come to a dead end. Nevertheless, BEAM robots are looking interesting and it makes sense to take a closer look into the self understanding of the 1990s DIY robot movement.

At first it should be mentioned that in the 1990s there was the last great AI winter available. It was the time before the advent of deep learning and most robotics projects were canceled. During the 1990s it was impossible to build biped robots anad there was general pessism available if AI can be realized at all. BEAM robotics can be seen as a crisis phenomena towards the AI winter in the 1990s. The main principle is, to build robots without a brain. They are equipped with actuator and a battery but they do not have a program and they can't decide something. Instead the control is realized with random oscillators known as nv neurons.

For reason of simplication it makes sense to assume, that a BEAM nervous network is a normal 555 tiimer IC which generates a sine osscilator signal which is send to the servo motors. This signal will produce the forward movement. Certain input signals like touch signals and light signal can modulate the signal.

From a technical standpoint BEAM Robotics doesn't belong to AI history but its the opposite. AI is about a computer program which makes a computer think like a  human while BEAM Robotics is an electronics project without such a software.

Because the mentioned 555 timer chip can be emulated in software very well, there is no need to buid robots in physical hardware Instead the brain of a robot can be realized as a single line of code in python which is an osscilator. The same  movement of a beam biped walker can be emulated with a modern arduino microcontroller and this might explain why BEAM robotics has disapeared after the year 2000. Nevertheless, a classical analag BEAM robot looks more interesting. In the 1990s most examples were not realized with the 555 IC but with analog circuits with dedicated resistors and capicitors which produces a chaotic behavior and a chaotic layout both.

Nevertheless it should be mentioned that even physical BEAM robots from the 1990 were never intelligent or were able to do useful tasks. The movement was either realized with remote control or with randomized osscilator generators in hardware. Modern robotics can learn a lot from this approach. BEAM robotics is referenced as a minimalist attempt in creating robots. It was an ultra low cost technology without any complex hardware nor dedicated theories. Most robots were nothing but a paperclip mounted on a servo motor. So its some sort of physical artificial life.

After the year 2000, beam robotics has felt out of fashion in favor of computing oriented AI disciplines like Deep learning, Semantic web, and microcontroller based robotics. Especially the last one has replaced former DIY BEAM robotics entirely. Today entry level robots are always computer controlledd and they are programmed to fulfill simple tasks like line following or maze solving. Such a microcontroller controlled robot is more flexible than former beam robots. It allows to explore different approaches including chaotic pseudo random behavior and its much easier to rewrite the hardware. The main problem with analog CPU free robotics is that every circuits requires new parts and these parts are connected with solder similar to amateur radios in the 1950s. This is less interesting than building robots with a microcontroller and realize the logic in software.

But from an aestihic perspective, modern arduino based robots are looking a bit boring. Most examples are realized with a brick on top of a wheel chasis which is standardized. Another major criticism against microcontrollers is that this technology forces the programmer to think into a certain direction. The typical question is mostly which sort of java program is needed to fulfill a task. This perspective prevents that possible non programming alternatives are investigated.


January 11, 2024

The advent of BEAM robotics

Between 1990 and 2000 there was a short period in robotics which was working different from academic robotics. So called BEAM robots were invented by Mark W. Tilden and according to the self description, it works with analog electronics like solar cells and mechanical beauty.[2] Indeed, most of the robots are looking completely different than any robot before. The most dominant property is the absence of a program controlled computer.

Unfortunately, the BEAM movement has stopped after the year 2000, in favor of classical DIY robotics projects based on the Lego NXT brick and Arduino microcontrollers. What is possible from today's perspective it to reverse engineer the former BEAM movement with the goal to understand why it was started.

Around the year 1990 there was no robot available in the university domain who was able to walk with 2, 4 or even 6 six legs. In contrast, BEAM Robots were able to do so. A BEAM walker can walk while a BEAM snake imitates the locomotion of an animal. The explanation for these advanced movements are located in the nv neurons, which is special term for the logic inside a BEAM robot.

In a more elaborated language a BEAM robot is an oscillator realized in hardware. Components like capacitors, resistors and triggers are combined into analog circuits known as Central Pattern Generators. These pattern generators are normal phase modulated feedback loops. From a mathematical standpoint such a pattern is equal to the sinus function on the time axis which produces a certain behavior for the servo motors.

The interesting situation is, that the same rhythmic movement can be generated without an analog circuit but with a classical MS excel sheet which calculates the Sinus function and has some parameters to adjust the height and length of the output. After adjusting the parameters the resulting function will make the robot legs walk forward.

In other terms, Mark W. Tilden has invented a sinus tone generator build in analog circuits. That is the reason why a BEAM walker doesn't need a complex computer program but the motor signals are realized with a more simpler principle, similar to early analog music synthesizer.[1]

[1] https://en.wikipedia.org/wiki/Analog_synthesizer
[2] https://en.wikipedia.org/wiki/BEAM_robotics