https://the-analog-thing.org/w/api.php?action=feedcontributions&user=Lee&feedformat=atomTheAnalogThing - User contributions [en]2024-03-29T12:24:44ZUser contributionsMediaWiki 1.35.2https://the-analog-thing.org/w/index.php?title=Teensy&diff=925Teensy2022-05-31T19:05:36Z<p>Lee: Fixing some typos</p>
<hr />
<div>The '''Teensy Microcontroller''' is a very powerful 32 bit microcontroller (ARM Cortex) with a large number of input outputs. The website of the product is for instance https://www.pjrc.com/store/teensy41.html<br />
<br />
== Teensy for data acquisition ==<br />
[[File:Teensy Datalogger Prototype 2.jpg|thumb|Photo of the prototype board]]<br />
<br />
[[User:ulmann|Bernd Ulmann]] created a Teensy data logger ([[Software oscilloscope]]) which is released as open source at<br />
https://github.com/anabrid/TeensyLogger. It is suitable for data acquisition of <br />
[[The Analog Thing]].<br />
<br />
The usage is basically that the Teensy does the analog to digital data acquisition and then sends (more or less) raw data to a connected PC over USB. It is up to the PC to display and render the data, and no software exists yet (but it is easy to come with).<br />
<br />
Limitations: The ADC has only about 10 bits.<br />
<br />
=== Rebuild the THAT-CMOS level shift ===<br />
If you want to rebuild the level shifting circuit of Bernd with some cheaper OPAMPs, for instance the LM32x series, you should use TTL 5V to power the opamp, since it's not rail2rails:<br />
<br />
<gallery><br />
File:Teensy-Cheaper.svg|Circuit for THAT-CMOS level shift.<br />
File:Breakboard Level Shifting with Teensy.jpg|Photography of a level shifting setup on a Breadboard<br />
</gallery><br />
<br />
[[Category:Hardware]]<br />
[[Category:Software]]</div>Leehttps://the-analog-thing.org/w/index.php?title=Nanoscope&diff=924Nanoscope2022-05-31T19:04:33Z<p>Lee: Adding nanoscope</p>
<hr />
<div>[[File:nanoscope.png|thumb|Screenshot of nanoscope]]<br />
<br />
'''nanoscope''' is an open-source Python-based desktop oscilloscope that works on Linux, Mac, and Windows. It is designed to work with an extremely cheap and portable Arduino Nano (~ $10) for data acquisition. You can find it on GitHub: https://github.com/LeeHolmes/nanoscope, and can see a demo of it running OscilloFun here: https://www.youtube.com/watch?v=ZQVlYfUenzs.<br />
<br />
[[File:Oscillofun.gif|thumb|nanoscope showing OscilloFun in XY mode]]<br />
<br />
== Features ==<br />
<br />
* Single channel or dual channel<br />
* X-Y mode<br />
* Adjustable scale and zoom (both vertical and horizontal)<br />
* Capture and playback of sample data<br />
* Both automatic and interactive voltage and time measurements<br />
<br />
[[Category:Software]]</div>Leehttps://the-analog-thing.org/w/index.php?title=File:Oscillofun.gif&diff=923File:Oscillofun.gif2022-05-31T18:50:36Z<p>Lee: </p>
<hr />
<div>Capture of the classic oscillofun oscilloscope music using XY mode on nanoscope.</div>Leehttps://the-analog-thing.org/w/index.php?title=Arduino&diff=922Arduino2022-05-31T18:37:26Z<p>Lee: Adding Arduino page.</p>
<hr />
<div>The Arduino line of microcontrollers are relatively powerful and usually very cheap. For example - even with the current component shortage, you can get purchase a pack of several Arduino Nanos for $8 to $10 each. Historically, these have been $3 to $4 each. You can find out more about Arduino and its ecosystem here: https://www.arduino.cc/.<br />
<br />
== Arduino for data acquisition ==<br />
There are several Arduino Oscilloscope projects online that use the Arduino itself as a basic data logger over the computer's USB port, followed by a [[Software oscilloscope]] front-end to display this data.<br />
<br />
One example of this is [[nanoscope]], an open-source Python-based desktop oscilloscope that works on Linux, Mac, and Windows.<br />
<br />
Due to their low cost, Arduino-based oscilloscopes are relatively bandwidth limited (approximately 10,000 samples per second). 10,000 samples per second can comfortably measure sine waves below about 1kHZ, but are not very accurate past that.</div>Leehttps://the-analog-thing.org/w/index.php?title=Software_Oscilloscopes&diff=921Software Oscilloscopes2022-05-31T18:16:36Z<p>Lee: Adding nanoscope</p>
<hr />
<div>What follows is a curated list of '''Software oscilloscopes''' (also abbreveated as '''Softscopes'''). While basically any modern digital [[Oscilloscope]] is formally a softscope, we want to discuss here only software running on commodity/consumer level hardware such as on<br />
<br />
* Desktops and Laptops: Windows/Mac/Linux<br />
* Mobile devices: tablets and smartphones<br />
* Embedded: System on chips and microcontrollers, such as [[Raspberry Pi]] and [[Arduino]]<br />
<br />
For data aquisition, several techniques exist:<br />
<br />
* [[Soundcard Oscilloscope|Soundcard]] input for mono or stereo audio recording<br />
* ADCs on boards for analog to digital conversion, typically embedded within microcontrollers<br />
<br />
=== List of software based oscilloscopes ===<br />
<gallery><br />
File:Webscope_Screenshot.png|link=Web Oscilloscope|[[Web Oscilloscope|Browser based oscilloscopes]]<br />
File:Win Softscope 1.png|link=Win Soundcard Oscilloscope|[[Win Soundcard Oscilloscope]]<br />
File:Xoscope_Screenshot.png|link=Xoscope|[[Xoscope]] linux desktop oscilloscope<br />
File:Oscilloppoi1.png|link=Oscilloppoi|[[Oscilloppoi]] Mac OS X desktop oscilloscope<br />
File:nanoscope.png|link=Nanoscope|[[Nanoscope]] open-source Linux/Mac/Win Python-based desktop oscilloscope<br />
</gallery><br />
<br />
== Data aquisition tools ==<br />
<br />
We will soon report additional solutions and projects for data aquisition based on barebone microcontroller boards with ADC shields to digitize the analog signals.<br />
<br />
Microcontroller/System on Chip based input:<br />
* [[Arduino]] for data aquisition<br />
* [[Teensy]] for data aquisition<br />
* [[Raspberry]]<br />
<br />
<br />
[[Category:Software]]</div>Leehttps://the-analog-thing.org/w/index.php?title=File:Nanoscope.png.png&diff=920File:Nanoscope.png.png2022-05-31T18:16:12Z<p>Lee: Lee moved page File:Nanoscope.png.png to File:Nanoscope.png</p>
<hr />
<div>#REDIRECT [[File:Nanoscope.png]]</div>Leehttps://the-analog-thing.org/w/index.php?title=File:Nanoscope.png&diff=919File:Nanoscope.png2022-05-31T18:16:12Z<p>Lee: Lee moved page File:Nanoscope.png.png to File:Nanoscope.png</p>
<hr />
<div>Screen capture of nanoscope displaying a simple sine wave</div>Leehttps://the-analog-thing.org/w/index.php?title=File:Nanoscope.png&diff=918File:Nanoscope.png2022-05-31T18:08:32Z<p>Lee: </p>
<hr />
<div>Screen capture of nanoscope displaying a simple sine wave</div>Leehttps://the-analog-thing.org/w/index.php?title=The_Analog_Thing_FAQ&diff=917The Analog Thing FAQ2022-05-31T18:00:18Z<p>Lee: Cleaning up links to Soundcard Oscilloscope</p>
<hr />
<div>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.<br />
<br />
== What is analog computing? ==<br />
[[Analog Computer|Analog computing]] is an alternative to digital computing; ideally suited for dynamic systems modeling; ideally suited for neuromorphic AI applications; much more energy-efficient than digital computing; inherently safer than digital computing in the face of cyber threats; a great, hands-on way to learn about maths, engineering and systems; and simply an eye-opening experience.<br />
<br />
== What is THE ANALOG THING? ==<br />
[[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 computes with continuous voltages rather than with zeroes and ones.<br />
<br />
== What is "THAT"? ==<br />
THAT is an abbreviation of [[The Analog Thing|THE ANALOG THING]].<br />
<br />
== Who is the team behind THAT and what is their motivation? ==<br />
THAT is developed and distributed by the German tech start-up company [https://www.anabrid.com anabrid] under the brand name [https://analogparadigm.com Analog Paradigm]. Anabrid is planning to develop an analog computer on-a-chip to diversify today's digital computing monoculture with analog-digital hybrid computing. To support this initiative, anabrid uses its Analog Paradigm brand to promote the often much more efficient and safer analog computing paradigm. THAT is Analog Paradigm's response to the need for education and community activity around analog computing. In contrast to the [https://analogparadigm.com/products.html Analog Paradigm Model 1 analog computer], THAT is small, highly affordable, open-source, and not-for-profit. It is analog computing for the future, for all. Analog Paradigm welcomes community contributions to THAT hardware, accessories and documentation.<br />
<br />
== What can I do with THAT? ==<br />
THAT is typically used to model dynamic systems, i.e., systems that change in time according to some causal relationships. Examples include including market economies, the spread of diseases, population dynamics, chemical reactions, mechanical systems, the firing of neurons, a variety of mathematical attractors, and much more. Technically, THAT solves (sets of) [[differential equation]]s by way of [[Integrator|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. 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!<br />
<br />
== What do I need to work with THAT? ==<br />
You need a set of plug cables, which is included with THAT. You also need a [[Power|USB power supply with a USB-C plug]]. Since most people have spare USB power supplies, we decided not to include one with THAT and save the extra cost. You will also need something to read the output of THAT (voltages that change over time), such as a hardware or software [[oscilloscope]]. [[Software Oscilloscopes|Software oscilloscopes]] are software programs that can run on digital desktop or laptop computers and typically read changing voltages through the [[Soundcard Oscilloscope|sound card's audio input]] interface. Software oscilloscopes (including free and open source ones) are available for all major operating systems.<br />
<br />
== How does a ''Hello World'' program look like on THAT? ==<br />
[[File:Damped oscillator.png|thumb|left]]<br />
A good first program for "analog beginners" is the modeling of a damped oscillation in an isolated system.<br />
For a detailed explanation see: [[Damped oscillation]]<br />
<br clear="all"><br />
<br />
== Is THAT a general purpose computer? ==<br />
Yes and no. The term general-purpose computer is commonly used to describe digital stored-program computers that can execute arbitrary algorithms. While THAT does not belong in this category, it is a general-purpose analog computer in that it can solve any (set of) differential equation(s) within the means of its computing elements. By connecting multiple THATs in ''[[Minion|minion chains]]'', it is possible to implement arbitrarily large analog computer patches involving any number of computing elements.<br />
<br />
== How can I program THAT? ==<br />
Programming [[analog computer]]s 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.<br />
<br />
== If THAT is powered by USB, i.e., by 5&nbsp;V-, then how is it possible that its machine unit is physically ±10&nbsp;V? ==<br />
THAT uses a TBA 2-0522 DC/DC converter, which turns a 4.5&nbsp;V- to 5.5&nbsp;V- input into a ±12&nbsp;V output.<br />
<br />
== How can I obtain output from THAT? ==<br />
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 [[oscilloscope]]s or [[plotter]]s. 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 [[Soundcard Oscilloscope|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.<br />
<br />
== Why do the plugs not go all the way into the patch panel? ==<br />
[[File:Plug depth.jpg|thumb|left|Plugs in the patch panel of THAT.]]<br />
This is one of several unconventional but intentional design moves that make THAT possible and affordable. The 2 mm plug cables were originally designed to plug entirely into a corresponding type of gold-plated socket. One of these sockets plus mounting costs about USD 1.00, which would add up significantly for the 186 plug positions on THAT's patch panel. We saved this cost by using an extra-thick top PCB with appropriately-sized, gold-plated through-holes. Since the length of the plugs is greater than the thickness of the PCB, we placed stop-limits below each plug hole to ensure that the small, contact-assuring springs halfway along the length of each plug make reliable contact. The result looks a little unexpected, but it works well and cuts the cost of the overall device by more than half.<br clear="all"><br />
<br />
== With outputs varying between -10V to 10V, how can I use THAT to model quantities smaller or greater than that? ==<br />
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.<br />
<br />
== How can I use THAT to create useful models of very fast or very slow phenomena? ==<br />
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.<br />
<br />
== What computing elements are available on THAT? ==<br />
THAT is designed to allow a wide range of interesting applications with a minimal set of analog computing elements. It offers five [[integrator]]s, four [[summer]]s, four [[inverter]]s, two [[multiplier]]s, and eight [[Coefficients/Potentiometers|coefficient potentiometers]]. In addition, it offers two [[comparator]]s, two precision [[XIR|resistor networks]] as well as [[capacitor]]s, [[diode]]s, and Zener diodes. Where more computing elements are needed for a particular application, multiple THATs can be connected in [[minion|minion chains]].<br />
<br />
== How precise is THAT compared to a digital computer? ==<br />
THAT is precise to about three positions after the decimal point, relative to its [[Machine Unit]] (±1). Comparing the precision of analog and digital computers is a bit like comparing apples and oranges. Analog computers usually handle quantities based on ''measuring'' only (“What is your body height?”). Digital computers, however, also handle quantities based on ''counting'' (“How many siblings do you have?”), which requires strict numeral precision. Consider this: A bank clerk getting the third decimal place of an interest rate wrong commits a severe error, while a tailor being off by a few micrometers when taking a client’s measurements has no such problem. Furthermore, numerical digital computing involves rounding, hence rounding errors, which can add up quickly in iterative loops. Analog computers do not operate numerically and do not round. In this sense, the great precision of today’s digital computers helps minimize a problem that is specific primarily to digital computing. In short, representing quantities as continuous voltages, THAT does not suffer from many issues inherent to binary value representations. While analog computer solutions can be affected by noise and instabilities, the precision of THAT is perfectly appropriate for most analog computer applications.<br />
<br />
== What is a minion chain? ==<br />
THAT is designed to allow an extensive range of applications with a small set of computing elements. When applications require additional computing elements, it is possible to link multiple THATs in a "[[Minion|minion chain"]] using their "MASTER OUT" and "MINION IN" ports. Connecting the MINION IN port of a THAT to the MASTER OUT 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 computing 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.<br />
<br />
== 2+2 ≠ 4? ==<br />
If you wonder why THAT computes something like <code>2+2 = -4</code>, then you need to familiarize yourself with how the [[Components of The Analog Thing]] work. [[Summer]]s on analog computers are typically ''negating''. This means they yield the negative of the sum. This is a convention and needs some getting-used-to. If you like, you can simply feed the summer's output into an [[Inverter]] to obtain the "correct" sign.<br />
<br />
== Are THAT's inputs compatible with (possibly overloaded) outputs from other analog computers with +-15V supply voltage? ==<br />
THAT's inputs are protected by supressor diodes which begin to conduct at about +-20V. It's no problem to connect an output from a +-15V circuit to THAT's inputs. But some inputs will be overloaded if the voltage exceeds about +-11.5V, because THAT's supply voltage is +-12V.<br />
<br />
== Is there a template to draw and share THAT patches? ==<br />
Yes. You can download it from the THAT online documentation at https://the-analog-thing.org/wiki/File:THAT_wiring_sketch_tempate.pdf<br />
<br />
== Where can I view past issues of the newsletter? ==<br />
https://the-analog-thing.org/#newsletter<br />
<br />
== Where can I buy one? ==<br />
https://shop.anabrid.com/<br />
<br />
[[Category:Manual|FAQ]]</div>Leehttps://the-analog-thing.org/w/index.php?title=The_Analog_Thing_FAQ&diff=916The Analog Thing FAQ2022-05-31T17:59:07Z<p>Lee: Cleaning up links to Soundcard Oscilloscope</p>
<hr />
<div>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.<br />
<br />
== What is analog computing? ==<br />
[[Analog Computer|Analog computing]] is an alternative to digital computing; ideally suited for dynamic systems modeling; ideally suited for neuromorphic AI applications; much more energy-efficient than digital computing; inherently safer than digital computing in the face of cyber threats; a great, hands-on way to learn about maths, engineering and systems; and simply an eye-opening experience.<br />
<br />
== What is THE ANALOG THING? ==<br />
[[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 computes with continuous voltages rather than with zeroes and ones.<br />
<br />
== What is "THAT"? ==<br />
THAT is an abbreviation of [[The Analog Thing|THE ANALOG THING]].<br />
<br />
== Who is the team behind THAT and what is their motivation? ==<br />
THAT is developed and distributed by the German tech start-up company [https://www.anabrid.com anabrid] under the brand name [https://analogparadigm.com Analog Paradigm]. Anabrid is planning to develop an analog computer on-a-chip to diversify today's digital computing monoculture with analog-digital hybrid computing. To support this initiative, anabrid uses its Analog Paradigm brand to promote the often much more efficient and safer analog computing paradigm. THAT is Analog Paradigm's response to the need for education and community activity around analog computing. In contrast to the [https://analogparadigm.com/products.html Analog Paradigm Model 1 analog computer], THAT is small, highly affordable, open-source, and not-for-profit. It is analog computing for the future, for all. Analog Paradigm welcomes community contributions to THAT hardware, accessories and documentation.<br />
<br />
== What can I do with THAT? ==<br />
THAT is typically used to model dynamic systems, i.e., systems that change in time according to some causal relationships. Examples include including market economies, the spread of diseases, population dynamics, chemical reactions, mechanical systems, the firing of neurons, a variety of mathematical attractors, and much more. Technically, THAT solves (sets of) [[differential equation]]s by way of [[Integrator|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. 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!<br />
<br />
== What do I need to work with THAT? ==<br />
You need a set of plug cables, which is included with THAT. You also need a [[Power|USB power supply with a USB-C plug]]. Since most people have spare USB power supplies, we decided not to include one with THAT and save the extra cost. You will also need something to read the output of THAT (voltages that change over time), such as a hardware or software [[oscilloscope]]. [[Software Oscilloscopes|Software oscilloscopes]] are software programs that can run on digital desktop or laptop computers and typically read changing voltages through the [[Soundcard Oscilloscope|sound card's audio input]] interface. Software oscilloscopes (including free and open source ones) are available for all major operating systems.<br />
<br />
== How does a ''Hello World'' program look like on THAT? ==<br />
[[File:Damped oscillator.png|thumb|left]]<br />
A good first program for "analog beginners" is the modeling of a damped oscillation in an isolated system.<br />
For a detailed explanation see: [[Damped oscillation]]<br />
<br clear="all"><br />
<br />
== Is THAT a general purpose computer? ==<br />
Yes and no. The term general-purpose computer is commonly used to describe digital stored-program computers that can execute arbitrary algorithms. While THAT does not belong in this category, it is a general-purpose analog computer in that it can solve any (set of) differential equation(s) within the means of its computing elements. By connecting multiple THATs in ''[[Minion|minion chains]]'', it is possible to implement arbitrarily large analog computer patches involving any number of computing elements.<br />
<br />
== How can I program THAT? ==<br />
Programming [[analog computer]]s 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.<br />
<br />
== If THAT is powered by USB, i.e., by 5&nbsp;V-, then how is it possible that its machine unit is physically ±10&nbsp;V? ==<br />
THAT uses a TBA 2-0522 DC/DC converter, which turns a 4.5&nbsp;V- to 5.5&nbsp;V- input into a ±12&nbsp;V output.<br />
<br />
== How can I obtain output from THAT? ==<br />
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 [[oscilloscope]]s or [[plotter]]s. 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 [[Soundcard|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.<br />
<br />
== Why do the plugs not go all the way into the patch panel? ==<br />
[[File:Plug depth.jpg|thumb|left|Plugs in the patch panel of THAT.]]<br />
This is one of several unconventional but intentional design moves that make THAT possible and affordable. The 2 mm plug cables were originally designed to plug entirely into a corresponding type of gold-plated socket. One of these sockets plus mounting costs about USD 1.00, which would add up significantly for the 186 plug positions on THAT's patch panel. We saved this cost by using an extra-thick top PCB with appropriately-sized, gold-plated through-holes. Since the length of the plugs is greater than the thickness of the PCB, we placed stop-limits below each plug hole to ensure that the small, contact-assuring springs halfway along the length of each plug make reliable contact. The result looks a little unexpected, but it works well and cuts the cost of the overall device by more than half.<br clear="all"><br />
<br />
== With outputs varying between -10V to 10V, how can I use THAT to model quantities smaller or greater than that? ==<br />
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.<br />
<br />
== How can I use THAT to create useful models of very fast or very slow phenomena? ==<br />
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.<br />
<br />
== What computing elements are available on THAT? ==<br />
THAT is designed to allow a wide range of interesting applications with a minimal set of analog computing elements. It offers five [[integrator]]s, four [[summer]]s, four [[inverter]]s, two [[multiplier]]s, and eight [[Coefficients/Potentiometers|coefficient potentiometers]]. In addition, it offers two [[comparator]]s, two precision [[XIR|resistor networks]] as well as [[capacitor]]s, [[diode]]s, and Zener diodes. Where more computing elements are needed for a particular application, multiple THATs can be connected in [[minion|minion chains]].<br />
<br />
== How precise is THAT compared to a digital computer? ==<br />
THAT is precise to about three positions after the decimal point, relative to its [[Machine Unit]] (±1). Comparing the precision of analog and digital computers is a bit like comparing apples and oranges. Analog computers usually handle quantities based on ''measuring'' only (“What is your body height?”). Digital computers, however, also handle quantities based on ''counting'' (“How many siblings do you have?”), which requires strict numeral precision. Consider this: A bank clerk getting the third decimal place of an interest rate wrong commits a severe error, while a tailor being off by a few micrometers when taking a client’s measurements has no such problem. Furthermore, numerical digital computing involves rounding, hence rounding errors, which can add up quickly in iterative loops. Analog computers do not operate numerically and do not round. In this sense, the great precision of today’s digital computers helps minimize a problem that is specific primarily to digital computing. In short, representing quantities as continuous voltages, THAT does not suffer from many issues inherent to binary value representations. While analog computer solutions can be affected by noise and instabilities, the precision of THAT is perfectly appropriate for most analog computer applications.<br />
<br />
== What is a minion chain? ==<br />
THAT is designed to allow an extensive range of applications with a small set of computing elements. When applications require additional computing elements, it is possible to link multiple THATs in a "[[Minion|minion chain"]] using their "MASTER OUT" and "MINION IN" ports. Connecting the MINION IN port of a THAT to the MASTER OUT 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 computing 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.<br />
<br />
== 2+2 ≠ 4? ==<br />
If you wonder why THAT computes something like <code>2+2 = -4</code>, then you need to familiarize yourself with how the [[Components of The Analog Thing]] work. [[Summer]]s on analog computers are typically ''negating''. This means they yield the negative of the sum. This is a convention and needs some getting-used-to. If you like, you can simply feed the summer's output into an [[Inverter]] to obtain the "correct" sign.<br />
<br />
== Are THAT's inputs compatible with (possibly overloaded) outputs from other analog computers with +-15V supply voltage? ==<br />
THAT's inputs are protected by supressor diodes which begin to conduct at about +-20V. It's no problem to connect an output from a +-15V circuit to THAT's inputs. But some inputs will be overloaded if the voltage exceeds about +-11.5V, because THAT's supply voltage is +-12V.<br />
<br />
== Is there a template to draw and share THAT patches? ==<br />
Yes. You can download it from the THAT online documentation at https://the-analog-thing.org/wiki/File:THAT_wiring_sketch_tempate.pdf<br />
<br />
== Where can I view past issues of the newsletter? ==<br />
https://the-analog-thing.org/#newsletter<br />
<br />
== Where can I buy one? ==<br />
https://shop.anabrid.com/<br />
<br />
[[Category:Manual|FAQ]]</div>Leehttps://the-analog-thing.org/w/index.php?title=Software_Oscilloscopes&diff=915Software Oscilloscopes2022-05-31T17:57:33Z<p>Lee: Cleaning up links to Soundcard Oscilloscope</p>
<hr />
<div>What follows is a curated list of '''Software oscilloscopes''' (also abbreveated as '''Softscopes'''). While basically any modern digital [[Oscilloscope]] is formally a softscope, we want to discuss here only software running on commodity/consumer level hardware such as on<br />
<br />
* Desktops and Laptops: Windows/Mac/Linux<br />
* Mobile devices: tablets and smartphones<br />
* Embedded: System on chips and microcontrollers, such as [[Raspberry Pi]] and [[Arduino]]<br />
<br />
For data aquisition, several techniques exist:<br />
<br />
* [[Soundcard Oscilloscope|Soundcard]] input for mono or stereo audio recording<br />
* ADCs on boards for analog to digital conversion, typically embedded within microcontrollers<br />
<br />
=== List of software based oscilloscopes ===<br />
<gallery><br />
File:Webscope_Screenshot.png|link=Web Oscilloscope|[[Web Oscilloscope|Browser based oscilloscopes]]<br />
File:Win Softscope 1.png|link=Win Soundcard Oscilloscope|[[Win Soundcard Oscilloscope]]<br />
File:Xoscope_Screenshot.png|link=Xoscope|[[Xoscope]] linux desktop oscilloscope<br />
File:Oscilloppoi1.png|link=Oscilloppoi|[[Oscilloppoi]] Mac OS X desktop oscilloscope<br />
</gallery><br />
<br />
<br />
== Data aquisition tools ==<br />
<br />
We will soon report additional solutions and projects for data aquisition based on barebone microcontroller boards with ADC shields to digitize the analog signals.<br />
<br />
Microcontroller/System on Chip based input:<br />
* [[Arduino]] for data aquisition<br />
* [[Teensy]] for data aquisition<br />
* [[Raspberry]]<br />
<br />
<br />
[[Category:Software]]</div>Leehttps://the-analog-thing.org/w/index.php?title=Electronics&diff=914Electronics2022-05-31T17:56:32Z<p>Lee: Cleaning up links to Soundcard Oscilloscope</p>
<hr />
<div>This page is all about '''Hardware and Electronics'''.<br />
<br />
== Analog Computers ==<br />
[[File:THAT concept rendering.png|thumb|[[The Analog Thing]], concept rendering]]<br />
* [[The Analog Thing]] (+Schematics, Photos)<br />
** [[The Analog Thing FAQ]]<br />
** [[Components of The Analog Thing]]<br />
*** [[Integrator]], [[Summer]] and [[Inverter]]<br />
*** [[Coefficients/Potentiometers]]<br />
*** [[Multiplier]], [[Comparator]], [[XIR]]<br />
*** [[Capacitor]], [[Diode]], [[Z-Diode]]<br />
*** [[Output]], [[Power]], [[Minion]], [[Master]], [[Trigger]]<br />
*** [[Switches]] and [[Modes]], and the [[Voltmeter]]<br />
** [[Assembly instructions]]<br />
** [[Testing]]<br />
<br />
== Digital Computers ==<br />
* [[Microcontroller]]s and [[System on Chip]]s<br />
** [[Arduino]]<br />
** [[Teensy]]<br />
** [[Raspberry Pi]]<br />
* [[Mobile]] devices (Smartphones, Tablets)<br />
* [[Notebook]]s or [[PC]]s<br />
* ... and ultimately [[Hybrid Computer]]s<br />
<br />
== Measurement, Visualization, Postprocessing ==<br />
* [[Soundcard Oscilloscope|Soundcards]] (+Buying suggestions)<br />
* [[Oscilloscopes]] (+Buying suggestions)<br />
** [[Software Oscilloscopes]]<br />
* [[Analog Voltmeters or Ammeters]] (+Buying suggestions)<br />
* [[Data aquisition]] overview<br />
* xy-[[Plotters]]<br />
* [[Rotation matrix]] for yaw, pitch and roll rotations <br />
<br />
[[Category:Manual]]</div>Leehttps://the-analog-thing.org/w/index.php?title=Raspberry_Pi&diff=913Raspberry Pi2022-05-31T17:55:06Z<p>Lee: Cleaning up links to Soundcard Oscilloscope</p>
<hr />
<div>[[File:Drawing of Raspberry Pi model B rev2.svg|thumb|Traditional Raspberry Pi single board computer]]<br />
<br />
The '''Raspberry Pi''' is a small single-board computer known for allowing to hack with hardware thanks to it's general purpose input/output (GPIO) pin header. The computer has only an analog output (no input) and the GPIO header has ''no'' analog-to-digital (ADC) converters. It can however be interfaced to any custom extension boards with 3V3 logic. Furthermore, any USB [[Soundcard Oscilloscope|Soundcard]] can be attached to a Raspberry Pi (given the softwware support). The board can run both Microsoft Windows as well as a variety of Linux distributions.<br />
For further information, go to the [[wiki:Raspberry Pi|English wikipedia article about the Raspberry Pi]]<br />
<br />
== How to use a Raspberry for analog data aquisition ==<br />
[[File:S-l1600.jpg|thumb|A simple I2C adapter for connecting an ADC chip to digital hardware (such as the Raspberry Pi). Note the digital output (top, below the board) and analog input (bottom).]]<br />
<br />
The Raspberry Pi does not have a general purpose Analog-to-Digital ([[ADC]]) or Digital-to-Analog ([[DAC]]) converter available on the GPIO pins. There are *hats* available which provide the neccessary hardware, for instance<br />
<br />
* https://bc-robotics.com/shop/16-channel-analog-input-hat-for-raspberry-pi/ (USD 14)<br />
* https://www.seeedstudio.com/8-Channel-12-Bit-ADC-for-Raspberry-Pi-STM32F030.html (USD 9.90)<br />
* https://www.ebay.de/itm/174058869127 8€, using the https://www.ti.com/product/ADS1115<br />
<br />
The GPIO pins of the Raspberry Pi have CMOS logic levels (3.3V). Note that this is incompatible to TTL or +-10V [[Machine Unit|logic level]] of the THAT! Don't wire your THAT to the Raspberry Pi without logic conversion, otherwise you'll certainly break your poor Raspberry.<br />
<br />
The Raspberry Pi has Analog output, realized with PWM (pulse width modulation). This is not high quality but can be used for feeding analog data into THAT.<br />
<br />
== Efforts of connecting The Analog Thing to a Raspberry Pi ==<br />
''Please collect your efforts of connecting [[The Analog Thing]] to a Raspberry Pi at this point!''<br />
<br />
== Revisions and features ==<br />
While the traditional Raspberry Pi in it's various revisions always had a similar tooling of input/outputs, there are similarly named products which have less (or even more) capabilities:<br />
<br />
<gallery><br />
File:Raspberry-Pi-2-Bare-FL.jpg|Raspberry Pi (2B) with black audio (output) connector.<br />
File:RaspberryPiModelBRev2.by.Philipp.Bohk.jpg|In this revion, the audio (output) clearly stands out as blue 3,5mm jack<br />
File:Raspberry-Pi-Zero-FL.jpg|The RPi Zero has no 3.5mm jack, but a PWM on a GPIO can be built [https://learn.adafruit.com/introducing-the-raspberry-pi-zero/audio-outputs]<br />
File:Raspberry Pi Compute Module.png|The RPI Compute Module has also no 3,5mm jack<br />
File:Raspberry pi pico.jpg|RPI Pico has four analog inputs. This device is no more a traditional Raspberry Pi but more a standalone Microcontroller.<br />
File:Raspberry Pi GPIO.svg|Traditional RPi GPIO headout. Note that is purely digital, has no analog I/O.<br />
</gallery><br />
<br />
[[Category:Hardware]]<br />
[[Category:Software]]</div>Leehttps://the-analog-thing.org/w/index.php?title=Soundcard&diff=912Soundcard2022-05-31T17:52:49Z<p>Lee: Replaced content with "See Soundcard Oscilloscope"</p>
<hr />
<div>See [[Soundcard Oscilloscope]]</div>Leehttps://the-analog-thing.org/w/index.php?title=Soundcard_Oscilloscope&diff=911Soundcard Oscilloscope2022-05-31T17:50:14Z<p>Lee: Merging "Soundcard Oscilloscopes" with "Soundcard"</p>
<hr />
<div>[[Image:THAT audio setup.jpg|thumb|Audio setup THAT with external (USB) souncard connected to a computer (not depicted)]]<br />
<br />
You can use the '''Soundcard of your computer or mobile device''' as an analog input/output interface to [[The Analog Thing]]. This page explains about details and gives recommendations about suitable hardware and software. Using the soundcard has the advantage of being very cheap (suitable soundcards in the range of 20€) compared to a real [[Oscilloscope]] (starting at 150€). The drawback are noticable skews and deviations in the data aquisition (for details see below)<br />
<br />
An alternative to the missing inbuild audio input is a USB device. There are not many '''line-in stereo''' devices and most are only mono to use with microphones. A well tested device was the ''Behringer UFO202'' with line-in and line out (each stereo) which is connected to USB, don't need any drivers and suitable for Windows, Mac and Linux in the price range of approx. 20 €. If your computer has already a microphone (mono) input you may buy a second cheap mono "microphone in" USB device for approx. 10 €. Be sure, that there is also an audio input and not just an audio output.<br />
<br />
In order to use the soundcard as a data capture device, a [[software oscilloscope]] is required for visualization.<br />
<br />
== The Analog Thing audio connectors ==<br />
<br />
The Analog Thing is already prepared to work with the above listed classic audio in devices as the used frequencies in an analog computation or simulation is mostly in the range of '''20 Hz ... 20 kHz'''. There are 4 chinch connectors named with '''X, Y, Z, U''' which can be used either as signal output or signal input as well. The voltage range of +/- 10V of the reference voltage (representing the analog values 1.0 ... -1.0) is '''reduced by factor 10 to +/- 1V''' (representing 0.1 ... -0.1). This is a safe voltage for audio input devices (line in).<br />
<br />
To feed signals into a soundcard you need to connect for example X and Y chinch connector to the line in jack of the computer or external sound device. Additional you must choose which signal in your analog circuit should be displayed by connecting any output of a computing element (integrator, summer, multiplier or comparator) to the OUT field on the front panel with a patch cable. If you want to input a signal to your analog circuit you do the same on the patch panel but connect the used chinch connector to an audio output. Some of the software solutions can display incoming signals but also offer signal generators additionally. <br />
<br />
Be aware, that the chinch connectors are connected with a passive resistor divider and have a output impedance of approx. 500 Ohm. This is suitable for the audio inputs as the typical input impedance is in the range of approx 5-10 kOhm. Anyway the shown values for voltages of the software oscilloscopes are more or less an approximation or maybe can be adjusted by a factor in the configuration. Even audio outputs can often drive such impedances without problems. If an input signal of +/- 1V should be transferred in the range of +/- 10V it is easy to use the 10x input of a summer or integrator and use whose output.<br />
<br />
Beside the chinch connectors it is easily to adapt signals directly at the patch cables with oscilloscope probes or feed signals directly with a cable adapter (cut one end of a patch cable and solder it to any signal of a programmable barebone controller board like arduino or similar.<br />
<br />
[[File:Line levels.svg|thumb|Several [[wiki:Line level|line levels]] for illustration.]]<br />
<br />
The [[Analog Thing]] has ''line level'' outputs which are suitable for using '''Digital computer soundcards''' for data aquisition (conversion to digital). This allows to use digital computers as [[Software oscilloscope]]s.<br />
<br />
<br />
An alternative to the missing inbuild audio input is a USB device. There are not many '''line-in stereo''' devices and most are only mono to use with microphones. A well tested device was the Behringer UFO202 with line-in and line out (each stereo) which is connected to USB, don't need any drivers and suitable for WIN, Mac and Linux in the price range of approx. 20 €. If your computer has already a microphone (mono) input you may buy a second cheap mono "microphone in" USB device for approx. 10 €. Be sure, that there is also an audio input and not just an audio output.<br />
<br />
==The Analog Thing audio connectors ==<br />
<br />
The Analog Thing is already prepared to work with the above listed classic audio in devices as the used frequencies in an analog computation or simulation is mostly in the range of '''20 Hz ... 20 kHz'''. There are 4 chinch connectors named with '''X, Y, Z, U''' which can be used either as signal output or signal input as well. The voltage range of +/- 10V of the reference voltage (representing the analog values 1.0 ... -1.0) is '''reduced by factor 10 to +/- 1V''' (representing 0.1 ... -0.1). This is a safe voltage for audio input devices (line in).<br />
<br />
To feed signals into a soundcard you need to connect for example X and Y chinch connector to the line in jack of the computer or external sound device. Additional you must choose which signal in your analog circuit should be displayed by connecting any output of a computing element (integrator, summer, multiplier or comparator) to the OUT field on the front panel with a patch cable. If you want to input a signal to your analog circuit you do the same on the patch panel but connect the used chinch connector to an audio output. Some of the software solutions can display incoming signals but also offer signal generators additionally. <br />
<br />
Be aware, that the chinch connectors are connected with a passive resistor divider and have a output impedance of approx. 500 Ohm. This is suitable for the audio inputs as the typical input impedance is in the range of approx 5-10 kOhm. Anyway the shown values for voltages of the software oscilloscopes are more or less an approximation or maybe can be adjusted by a factor in the configuration. Even audio outputs can often drive such impedances without problems. If an input signal of +/- 1V should be transferred in the range of +/- 10V it is easy to use the 10x input of a summer or integrator and use whose output.<br />
<br />
Beside the chinch connectors it is easily to adapt signals directly at the patch cables with oscilloscope probes or feed signals directly with a cable adapter (cut one end of a patch cable and solder it to any signal of a programmable barebone controller board like arduino or similar.<br />
<br />
== Limitations ==<br />
[[File:Klinkenstecker.jpg|thumb|3.5mm combi jack connector example]]<br />
[[File:Jack combi adapter.jpg|thumb|On combi sockets, you probably need a splitting cable]]<br />
* Many soundcards only provide [[wiki:Phone connector (audio)|combi jack connectors]]. They typically have stereo output but mono microphone level input. Therefore, they are only suitable for single channel data aquisition. You should try to get a soundcard which has ''line level input'', which is typically stereo and also line but not microphone level.<br />
* Soundcards are known to have a highpass filter, so they filter out DC components. This means they are ''not'' suited for measuring static signals. They also do many kind of signal processing, and different devices will differ. Their usability for analog computing highly depends, and in the following a number of soundcards shall be enlisted:<br />
<br />
== List of known or tested soundcards == <br />
None yet, but here is a list of candidate soundcards:<br />
<br />
* 8€ cheap mono device – Sabrent USB External Stereo Sound – https://www.amazon.de/Sabrent-Soundkarte-External-erforderlich-AU-MMSA/dp/B00IRVQ0F8/<br />
* Fun Generation UA-202, around 20€ https://www.thomann.de/de/fun_generation_ua_202.htm<br />
* LogiLink Soundkarte UA009, around 20€ https://www.bueromarkt-ag.de/soundkarte_logilink_ua0099_usb_sound_box_7.1,p-ua0099,l-google-css,pd-b2c.html?<br />
* Behringer U-Control UFO202 USB Audio, around 25€ https://www.amazon.de/-/en/Behringer-U-Control-UFO202-Interface-Digitisation/dp/B096RTMS3T/ref=sr_1_4?dchild=1&keywords=USB%2Bstereo%2Binput&qid=1626208266&s=computers&sr=1-4&th=1<br />
<br />
[[Category:Hardware]]<br />
[[Category:Oscilloscope]]</div>Leehttps://the-analog-thing.org/w/index.php?title=Oscilloscope&diff=910Oscilloscope2022-05-31T17:40:48Z<p>Lee: Cleaning up some of the software oscilloscope sections.</p>
<hr />
<div>An '''Oscilloscope''' is an essential measurement device when doing analog computing. Nevertheless, even cheap entry level devices cost more than 200 EUR. This page shall document how to use oscilloscopes with [[THAT]] and gives recommendations about devices that are suitable for working with [[The Analog Thing]]. If you don't want to spend money on an oscilloscope, a [[Software Oscilloscope]] maybe an alternative.<br />
<br />
== Using Oscilloscopes ==<br />
To watch and measure the values and curves produced during an analog computation or simulation you need additional instruments. The Analog Thing contains a [[voltmeter]] as instrument to setup the coordinates or OP_TIME values. Depending on the [[modes|mode of operation]] in '''REP''' with predefined operation time or '''OP''' with infinite operation this display may be useful for static or slow moving values only.<br />
<br />
[[Image:DSO_Yt_display.png|thumb|typical Yt display of signals on a DSO]]<br />
To measure faster events or display signal curves the best tool is an '''oscilloscope'''. For longer operation times (REP, 0.1-10s) a digital storage oscilloscope (DSO) is preferred rather than an analog oscilloscope with a cathode ray tube (CRT). These DSO did get cheaper in the last years but useful DSO's with minimum 2 channels and XY mode are in the price range of about 150-300 € up. XY mode is useful for many applications and allow a better view of complex signals than displaying them just over the time in Yt mode. The typical Lissajous figures for example require the XY mode.<br />
<br />
[[Image:DSO_XY_display.png|thumb|typical XY display of the same signals above]]<br />
There are low cost oscilloscope on the market as well in the range of 40-100 € but these come with missing features and have mostly only one channel to display like DSO 138 or missing XY mode like DS 212/213. This is only partly useful with analog computations or simulations and all theses cheap handhelds have only a very small display. Some low cost oscilloscopes come without a display and are connected to a computer as display by software.<br />
<br />
== Requirements for Oscilloscopes with The Analog Thing ==<br />
[[File:Hantek IMG 0413.jpg|thumb|A nice entry level DSO: [[Hantek USB DSO]]]]<br />
=== Minimum requirements (cheap devices) ===<br />
* analog oscilloscope with CRT display or software display while connected to computer<br />
* 1 or 2 channels<br />
* XY display mode<br />
* 100 kHz bandwith<br />
<br />
Recommendations:<br />
* [[Hantek USB DSO]] (79€ entry price)<br />
* [https://www.meilhaus.de/picoscope-2000.htm Picoscope] (125€ entry price)<br />
* [https://store.digilentinc.com/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply/ Analog Discovery 2] (280€ for academic)<br />
* [https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/adalm2000.html#eb-overview ADMAL2000]<br />
<br />
Further cheap alternatives:<br />
* HS101 http://hscope.martinloren.com/HS101-oscilloscope.html<br />
* DroidOscillo https://hackaday.io/project/26360-android-oscilloscope-droidoscillo<br />
* DSO-138 https://www.reichelt.de/dso-138-oszilloskop-1-kanal-200-khz-12-bit-joy-it-dso-138-p209775.html?&trstct=pol_0&nbc=1<br />
* SmartScope https://www.kickstarter.com/projects/751733865/smartscope-reinventing-the-oscilloscope<br />
<br />
=== Medium requirements ===<br />
* 4 channels or separate trigger input<br />
* DSO type (digital storage)<br />
<br />
Recommendations:<br />
* [https://www.meilhaus.de/siglent-sds1000x-e.htm Siglent SDS1000X-E] (about 400€)<br />
<br />
== Alternatives ==<br />
A cheap alternative for beginners with low budget is to use a [[Software_Oscilloscopes|Software Oscilloscope]]. These solutions rely on your computer for all of the data processing and use a secondary device (such as an Arduino or sound card) for data acquisition.<br />
<br />
[[Category:Hardware]]</div>Lee