The Analog Thing FAQ

From TheAnalogThing
Revision as of 05:13, 25 August 2021 by Tfischer (talk | contribs)

This page contains a list of frequently asked questions (FAQ) about The Analog Thing (in short THAT). It's a great entry place to learn about THAT.


What is THE ANALOG THING?

THE ANALOG THING is a high-quality, low-cost, open-source, and not-for-profit cutting-edge analog computer. You can think of it as a kind of Raspberry Pi that calculates with continuous voltages rather than with zeroes and ones.

What is "THAT"?

THAT is an abbreviation of THE ANALOG THING.

What can I do with THAT?

THAT is typically used to model dynamic systems, i.e., systems that change in time according to some causal relationships. Technically, THAT solves (sets of) differential equations by way of integration, and it produces results in the form of graphs representing relationships between dependent and independent variables. If you are not familiar with differential equations, then THAT is an excellent tool to familiarize yourself with them. If you understand differential equations, you can use THAT for a variety of purposes: You can use it to predict in the natural sciences, to control in engineering, to explain in educational settings, to imitate in gaming, or you can use it for the pure joy of it. THAT can help you understand what is (models of), and it can help you bring about what should be (models for). More fundamentally, THAT allows you to explore a non-digital computational paradigm hands-on!

How does a Hello World program look like on THAT?

Under construction icon-blue.svg
This section is still under construction! write me!

Is THAT a general purpose computer?

Yes and no. The term general-purpose computer usually describes devices that can be programmed to mimic the logical procedures performed by other, comparable devices. THAT is different because it solves (sets of) differential equation(s) instead of processing logical procedures. It is a general-purpose analog computer in as far as it can solve any (set of) partial differential equation(s). In doing so, a single THAT is limited by its number of calculating elements. By connecting multiple THATs in minion chains, it is possible to implement large analog computer programs involving any number of calculating elements.

How can I program THAT?

Programming analog computers is about modeling change in time. Typically, this process starts by translating change in some dynamic systems into one or more differential equations. These equations are then translated into patterns of wire connections between the analog computing elements on THAT's patch field. These patterns of wire connections are analog computer programs. When a program is run, THAT solves the programmed differential equations and outputs their solutions as time-varying voltages.

How can I obtain output from THAT?

THAT outputs the solutions of differential equations as time-varying voltages. In control applications, these can be used to drive actuators such as motors or valves. In lab or classroom settings, they are often visualized as graphs using oscilloscopes or plotters. In hybrid computing (where analog and digital computers work in tandem), analog-to-digital converters and digital-to-analog converters turn time-varying voltages into digital data and vice versa. The simplest way to read the output of your THAT is to connect it to the sound card of a digital computer which can then be used to visualize the output using digital oscilloscope software and to record, analyze, or otherwise process it.

With outputs varying between -10V to 10V, how can I use THAT to model quantities smaller or greater than that?

Translating patterns of change in dynamic systems into mathematical representations and further into analog computer programs commonly involves the scaling of quantities. Quantities are represented on analog computers in a voltage or current interval with fixed boundaries called the machine unit. On THAT, this interval is -10 V to +10 V. For the sake of simplicity, the machine unit is generally thought of as ± 1, regardless of the actual voltage or current interval of a given analog computer. To model arbitrary quantities on THAT, they can be scaled to make efficient use of the machine unit. Output can then be converted back to the original scale.

How can I use THAT to create useful models of very fast or very slow phenomena?

Translating patterns of change in dynamic systems into mathematical representations and further into analog computer programs commonly involves the scaling of speed. THAT allows compressing or stretching the independent variable time by several orders of magnitude. In this way, the instantaneous decay of a volatile compound can be simulated slowly enough for observation and interactive manipulation, while population dynamics occurring over decades or centuries can be simulated in the blink of an eye.

What calculating elements are available on THAT?

THAT is designed to allow a wide range of interesting applications with a minimal set of analog calculating elements. It offers five integrators, four summers, four inverters, two multipliers, and eight coefficient potentiometers. In addition, it offers four comparators, four precision resistor networks as well as capacitors, diodes, and Zener diodes. Where more calculating elements are needed for a particular application, multiple THATs can be connected in minion chains.

How precise is THAT?

THAT is precise to about three positions after the decimal point, relative to its machine unit. It is important to note that comparing the precision of analog and digital computers is a bit like comparing apples and oranges. Digital computers handle quantities that are based on counting (e.g., "how many siblings do you have?") as well as quantities that are based on measuring (e.g., what is your body height?"). Most of the time, analog computers handle quantities that are based on measuring only. Consider this: A bank getting the third decimal place of an interest rate wrong has a severe problem, while a tailor being off by a micrometer here and there when taking clients' measurements has no such problem. Furthermore, digital computing involves rounding, and hence rounding errors which can quickly add up in iterative loops. Analog computers do not have this problem. In this sense, the great precision of today's digital computers helps minimize a problem that is specific to digital computing. In short, representing quantities as continuous voltages (or currents), analog computers do not suffer from many problems inherent to binary value representations. Analog computer solutions, too, can exhibit instabilities, etc., but rest assured that the precision of THAT is perfectly appropriate for the vast majority of applications.

What is a minion chain?

THAT is designed to allow an extensive range of applications with a small set of calculating elements. When applications require additional calculating elements, it is possible to link multiple THATs in a "minion chain" using their "MASTER" and "MINION" ports. Connecting the MINION port of a THAT to the MASTER port of another THAT with a ribbon cable makes the first THAT the "master" and the second THAT its "minion" so they can work together and share the calculating elements of both devices in the same program. There is no limit to the number of THATs that can be linked in a minion chain.

THAT computes wrong. Why is 2+2 ≠ 4?

So you probably came up with a simple hello world by adding the results of two Coefficients/Potentiometers. And you wonder why the result does not sound right. It is most likely that this has nothing to do with the computing precision (see above) but the way how THAT works: First, the potentiometers are cheap and inaccurate by intention. If you got a THAT with a scale on the potentiomer, don't believe this scale!. Use the Coefficient-Setting Mode instead in order to precisely set the potentiomeres. Then the sum will be computed correctly.

Next you may wonder about the sign. You now got 2+2 = -4, still looks wrong, isn't it? In fact, Summers on analog computers are typically negating, that means they yield the negative of the sum. It's just a convention and nothing to worry about. Just feed the output of your sum throught an Inverter to get the correct sign.