# EEVblog Electronics Community Forum

## Electronics => Projects, Designs, and Technical Stuff => Topic started by: GK on November 28, 2012, 10:05:12 am

Title: Home Brew Analog Computer System
Post by: GK on November 28, 2012, 10:05:12 am
Ever since stumbling across the awesome stuff on show at this website:

http://www.analogmuseum.org/english/ (http://www.analogmuseum.org/english/)

...... I've been working like a man possessed to design and build my own solid state hybrid digital/analog computer to modestly put virtually all of those extinct commercial offerings to shame (complexity, size, precision, etc).

I've just completed the preliminary design of the Sine/Cosine Function module. The completed computer will be equipped with 8 of these modules. On the Patch Panel it is simply two-port black box which spits out either (depending on the mode setting) the Sin or Cosine of the applied input voltage (Ein), multiplied by a scaling factor (K) of 100. It has (for an analog circuit) a very high degree of accuracy and stability).

Transfer function equations and limits are given in the text on the schematic *.pdf. I'm just sharing the little circuit because I'm rather chuffed with it. Log/Antilog, dividing, squaring, square rooting is all easy-peasy stuff. The sin/cosine function module however is one I've been scratching my head over the most. Once I figured out how to practically implement the necessary slope inversion (at the 90 degree and 270 degree points for sine) with a high degree precision, the cat was in the bag.

Unlike in the current simulation file, the final circuit will have a power hybrid discrete HV op-amp with a short circuit proof output stage and a +/- 10mA drive capability. The input impedance is 1M, shunted with 20pF or so.

The attached charts show the transfer characteristic in sine and cosine mode, with a full scale Ein ( 0 to 360 degrees).

Title: Re: Home Brew Analog Computer System
Post by: poptones on November 28, 2012, 02:19:14 pm
That's very cool. I'd love to see a detailed writeup about the theory and operation.
Title: Re: Home Brew Analog Computer System
Post by: SeanB on November 28, 2012, 04:03:00 pm
I used to have a box of mechanical sine/cosine resolvers and hundreds of other styles of synchros and resolvers, they were parts of anb autopilot. We were cannibalising them for spares to fix moving map displays and other synchro indicators
Title: Re: Home Brew Analog Computer System
Post by: GK on November 29, 2012, 10:12:09 am
Those must have been interesting devices.

Don’t have time for a explanatory write up right now, except that the circuitry based on the LT1097 op-amps in the left hand half of the schematic forms a “function generator” (in analog computer speek) that produces a dual (polarity) slope, asymptotic approximation (with break points at 90 degrees and 270 degrees) of either a sine or cosine function from the applied, uni-polar input voltage which represents phase angle. A bipolar, multi break-point curve-shaper then does the rest.

I’ve started refining the circuit, to begin the transition from LTspice to Protel. Firstly, I had to get rid of that huge series string of LT1634 voltage references to bias the break-points of the curve shaper. That is NOT very economical; and especially so when one intends to build 8 of the things. I’ve decided to use a separate pair of dedicated supply rails of +/- 50V, exclusively for biasing the break-point shapers of all sine/cosine modules instead. The intermediate break-points between +/- 50V are now provided by a 0.1% tollerance resistor ladder/divider.

Much cheaper and even more accurate as the +/-50V can be accurately trimmed for “perfect” symmetry. The regulator will be a hybrid op-amp/discrete deign based on the LT1097 precision op-amp for the error amplifier, deriving the +/-50V form the separately regulated +/-105V rails.

I’ve also added another pair of break-points to the curve shaper to improve the accuracy of the curve fit around the +/- peaks.

Attached is the revised preliminary schematic, along with a plot showing how well (for now) the break-point shaper approximates an ideal sine curve, by plotting it against a perfect/ideal sinewave source.

Title: Re: Home Brew Analog Computer System
Post by: alanb on November 29, 2012, 10:34:40 am
I don’t know if anyone else remembers but a long time ago ( late 1960’s I think) Practical Electronics published a series of articles on the construction of a simple analogue computer. It was very basic but was a good introduction to analogue computing. It kept me occupied for many months and was where most of my pocket money was spent during the period.

If anyone still has a copy of the articles they would be great to see again.
Title: Re: Home Brew Analog Computer System
Post by: GK on November 29, 2012, 12:26:48 pm
The entire series is here:

EDIT:

The pages from the articles/issues are presented in random order on the site and you have to download each page individually, but they seem to be all there; I've just downloaded pdf files from the list on the left.

Title: Re: Home Brew Analog Computer System
Post by: alanb on November 29, 2012, 12:46:14 pm
Thank you for that. I can see that the series actualy started in Jan 1968.

Title: Re: Home Brew Analog Computer System
Post by: GK on December 10, 2012, 12:43:04 pm
Ever since stumbling across the awesome stuff on show at this website:

http://www.analogmuseum.org/english/ (http://www.analogmuseum.org/english/)

..............Surprisingly little comment/interest(?) in this kind of thing.........

The sine/cosine chassis of my analog computer has now grown to contain 9 sin/cos function generators. I've also decided to incorporate a precision 100V triangle waveform generator into the sin/cos chassis for calibration/test purposes. Here is my breadboarded prototype with schematic. This circuit generates a fixed frequency, 500Hz, 100V peak-peak triangle wave with a DC offset of 50V. With this signal as the input, my sin/cos function generator in the cos mode will produce a continuous sinewave output. This will aid part of the calibration procedure (by adjusting for minimum THD of the 500Hz sinewave with the aid of a distortion analyser).

The triangle wave generator works by integrating a precision amplitude (+/-5V peak) 500 Hz squarewave derived/divided down from a 2MHz crystal oscillator.
The triangle wave from the integrator is then amplifier to 100V peak-peak by a discrete high voltage op-amp. The 50V DC offset is regulated by a servo amplifier sensing the signal output, which steers the integrator reference. This produces a triangle wave at the output with a precise 50V DC offset and a duty cycle of exactly 50%. There is a trimpot to calibrate the DC offset in the voltage reference leg of the servo amplifier. The peak-to-peak amplitude of the triangle wave is calibrated with a trimpot varying the integrator input current.

The output current limits at +/-20mA, is short circuit proof and the HV op-amp is capacitive load stable. The integrator-steering servo loop is a “conditionally stable” system with a phase margin of 60 degrees.

edit - in the xtal oscillator part of the schematic there should be a 1M resistor terminating the MPF102 jfet gate to ground.

Title: Re: Home Brew Analog Computer System
Post by: BravoV on December 10, 2012, 02:52:30 pm

..............Surprisingly little comment/interest(?) in this kind of thing.........

Made self notes, watched, bookmarked, voted 5 stars for this thread since it was created, its just I'm too noob to involve in this wonderful topic. The closest thing to this topic that I'm learning and planning to work with is just the built single chip 4th quadrant multiplier.

Please, don't stop, and thank you.  :-+
Title: Re: Home Brew Analog Computer System
Post by: saturation on December 10, 2012, 03:50:59 pm
Making an analog computer is quite a tour de force learning and implementing large amounts of analog technique that folks buy these days in pre-made ICs  :-+. If you enjoy this level of work, I'll be a good way to get a job in analog IC design.
Title: Re: Home Brew Analog Computer System
Post by: GK on December 22, 2012, 03:57:39 am
...... analog technique that folks buy these days in pre-made ICs  :-+.

And digital ones just for fun  ;)

A bunch of prototype analog modules are currently on the back-burner until parts arrive, so I've made a start on the digital section of this "analog-hybrid" computer. Here is what I've called the "Iteration Counter". It's a 4-bit programmable-n counter whose primary purpose will be, receiving its clock input signal form the computers master timing/controller unit, counting problem solving iterations and, patched into an electronic analogue multiplexer network, switching different sets of "initial conditions" and/or constants for each problem solving iteration.
Just for example, suppose you "write" a program to compute and plot the trajectory of a projectile or missile. The problem can be solved/plotted/displayed successively with anything from 2 to 16 different (multiplexed) constants (just for example) for gravity. The completed computer will have four of these counter modules, which can be either daisy-chained for patched independently to perform other functions.

All of the computers patchable digital logic will use open-collector inverted logic (0=1) with internal resistive pull-ups on all inputs. All I/O is designed to be blow-up proof, such that any I/O can be accidentally patched to a + or - 100V analog output without damage. The Iteration counter has a clock input, a reset input and 20 current-limited open-collector outputs with indicator LED's. There are sixteen decimal outputs (D0-D15) and four BCD outputs.

Here is a vid of it running; as shown, n-programming is achieved simply by patching the reset input to the appropriate decimal output. The 4 LED's on the far right are indicators for the BCD outputs.

Schematic is also attached, as well as a more readable form the Triangle Waveform generator schematic, with a couple of errors corrected.

Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on December 22, 2012, 10:23:31 am
@GK: A simple and probably stupid question from a software guy - what drove the design choice of 50V rails?, I can understand split supplies ( balanced ) just not the high voltage.
Title: Re: Home Brew Analog Computer System
Post by: GK on December 22, 2012, 11:31:00 am
Actually the analog modules run regulated supply rails of +/- 110V, with an operating output swing of +/-100V. In analog computer speak, that makes this a "100V computer" - 100V = 1 computing "unit". Back in the day most solid state analog computers were 10V computers, with the analog (op-amp) stages running on +/-15V rails. However the Rolls Royce machines from Systron Donner were 100V computers.
The reason for this is that it is much easier to maintain a high degree of accuracy when the voltage is ramped up. Consider an integrator stage (the heart of an analog computer) based on a jfet-input op-amp. It might have an input offset voltage of 10mV. 10mV is 10 times less error in a 100V computer than it is in a 10V computer. Also, "function generator" modules such as my sine/cosine module that rely on diode break-point / piecewise waveform shapers are much easier to make accurate in a 100V design than in a 10V design, as variations in diode voltage drops and transistor Vbe's are much less significant.

A 100V computer is also 10 times cooler than a 10V computer.

Title: Re: Home Brew Analog Computer System
Post by: Jay_Diddy_B on December 22, 2012, 02:35:54 pm
Hi GK,

You might like this high voltage op-amp

Jay_diddy_B
Title: Re: Home Brew Analog Computer System
Post by: GK on December 23, 2012, 01:20:49 pm
Hi GK,

You might like this high voltage op-amp

Jay_diddy_B

Unfortunately it only does +/-70V !

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Finally got the design of this solid state sine/cosine resolver completed. Might get the board dropped into the etch tank tomorrow if all this damn Christmas crap doesn't get into the way.

Title: Re: Home Brew Analog Computer System
Post by: GK on January 05, 2013, 02:48:49 pm
Some progress photos. I recently burnt a big hole in my wallet buying bulk quantities of most of the semiconductors (thousands) needed for this computer project. I've got the triangle generator and a sin/cos module 90% loaded. I still need some more miscellaneous bits and pieces to finish them, but the next bulk order isn't going to happen until my funds recover. However there is still plenty of design work to do. I've actually got most of the electrical design worked out now on paper; its just a matter of drafting all of the schematics in Protel and laying out the PCBs.

Attached are pics of the sine/cosine module and the triangle waveform generator, as well as a PCB layout of the power supply board (which I have just completed).

The triangle waveform generator along with nine of the sine/cosine module PCB's, the power supply module and power transformers (1x 18v-0-18V sec. plus 1x 110V-0-110V sec.) will be mounted into a custom 3U 19" rack case to complete the "Sine/Cosine Chassis". The PSU board is self-contained with the exception of the series pass transistors which will mount onto the rear panel of the case on a large heatsink.

This completed chassis will only be a very small part of the complete computer which will completely occupy a ~2 meter tall, floor-standing 19" equipment rack (which I already have).

I'm starting on Protel files for the "LOG/EXP Chassis" now, which will contain five 100V logarithmic amplifiers and five 100V exponential (the inverse of a logarithm) amplifiers. The transfer function of these modules are based on matched transistor Vbe's (MATXX-series) with thermistor temperature compensation, rather than the piecewise approximation method as used in the sine/cosine module. In a LOG/EXP application this method has a much greater dynamic range.

Title: Re: Home Brew Analog Computer System
Post by: ftransform on January 05, 2013, 03:34:32 pm
can a ti-89 out perform your computer?
Title: Re: Home Brew Analog Computer System
Post by: GK on January 05, 2013, 03:51:21 pm
Can a TI-89 do any of this kind of stuff?

http://www.analogmuseum.org/english/examples/ (http://www.analogmuseum.org/english/examples/)

..... or be patched into a prototype design to simulate/emulate simple through to highly complex control systems?

Title: Re: Home Brew Analog Computer System
Post by: ftransform on January 05, 2013, 11:20:05 pm
Can a TI-89 do any of this kind of stuff?

http://www.analogmuseum.org/english/examples/ (http://www.analogmuseum.org/english/examples/)

..... or be patched into a prototype design to simulate/emulate simple through to highly complex control systems?

Well I guess what I'm asking is how powerful of a modern computer do you need in order to equal the performance of your device?
Could it do something that a desktop PC can't?

I like your project I am just curious.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 05, 2013, 11:58:35 pm
I think a modern desktop PC would have a many orders of magnitude greater computational power. Dunno how best to make a comparison to a digital computer; they are very much different things.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 10, 2013, 09:53:35 am
Attached is the complete schematic for my logarithmic amplifier module. Due to the utility of log amps in a analog computer, I've decided to build 10 of these instead of only five. A custom 2U 19" chassis will house 10 of these along with their power supply. Another 2U chassis will house 10 exponential amplifier modules.

The transfer function is simply:

Eout = K * ln (Ein).

K = a fixed scaling factor of 20. The operating input voltage range is 0.01V to 100V, producing an output voltage in the range of +/- 92.1V.
The output amplifier clips at approximately +/-105V, so the dynamic range is a smidge over 4 decades.

The actual log converter based on the SSM2212 is a "fast" design I came up with on my own. Over the 4 decades it is very accurate (overall significantly better than 1% when trimmed).

A conversion to a logarithm of any base is simply a matter of external scaling by the programmer.

Title: Re: Home Brew Analog Computer System
Post by: SeanB on January 10, 2013, 10:13:36 am
Looks nice.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 10, 2013, 10:39:00 am
Looks nice.

Thanks!

BTW, if you saved the schematic, please delete it. There was a silly error and I had to take it down. I misplaced the decimal point calculating the resistor values for the offset trim/null range and it was inadequate by a factor of 10.

Attached is the fixed schematic (R8 increased from 10R to 100R and R10 added to restore balance).

EDIT: circuit revised - see reply#288

Title: Re: Home Brew Analog Computer System
Post by: SeanB on January 10, 2013, 10:56:37 am
I do see the difference. You could probably replace D10-14 with 1N4148's as well, mount close to the heatsink inside a shrink tube to keep stray light from them.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 10, 2013, 11:27:14 am
The D10-D14 string used for biasing the output transistors doesn't have to be thermally coupled to the heat sinks, as there is a large total of 132 ohms of emitter degeneration (R30-R33), which makes thermal runaway impossible. Suppose the output transistor heat up delta 50 deg C due to heavy loading. That will cause the emitter-emitter potential difference between Q15 and Q16 to increase by approximately 200mV, returning a quiescent current increase of only 1.5mA.  On +/-110V rails that will increase the quiescent power dissipation of each power output transistor by only ~165mW. This pretty much represents a worst case scenario; a 50 degree C delta heating in both power output transistors could only happen with amplifier being heavily ac driven into current limiting into an Eout short.

I used 1N4007's instead of 1N4148's for their lower individual voltage drop. Their total voltage drop along with the 132 ohms emitter degeneration result in a reasonably well defined (taking into account component variations) output transistor quiescent current of ~5mA.

I am though open to suggestions on how to best thermally couple the SOIC-8 SSM2212 dual monolithic transistor to the leaded thermistor for optimal temperature compensation of the log converter.
Title: Re: Home Brew Analog Computer System
Post by: SeanB on January 10, 2013, 11:42:39 am
A soft flexible thermal pad on top of the transistor and the thermistor on top of that. Cover them all with a small potting box that is left unfilled, but glued to the board to keep draughts out. Mostly isothermal, enough thermal mass to keep both stable and simple. Can't remember the manufacturer of the soft pink foam thermal transfer pads that are so common on CD drives.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 10, 2013, 12:10:37 pm
That sounds like a plan. I could fold up some little rectangular cans out of brass or copper shim and solder them up along the seams. The SOIC could be enclosed by a (say) 50 thou-thick, rectangular perimeter GND track to which the up-turned can gets soldered - a bit like an RF screening can, but just to keep air currents out instead.

Or perhaps I could just glue a plastic coke bottle screw-cap onto the board.

Title: Re: Home Brew Analog Computer System
Post by: SeanB on January 10, 2013, 12:22:38 pm
Not metal, you want insulation, not extra capacitance. Small potting box, matchbox inner tray or even a cardboard cut and glued to suit ( I did this for a crystal as an oven) will work. Even styrene sheet cut and scored, stuck together with glue and held down with some double sided tape.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 10, 2013, 12:28:18 pm
Cardboard isn't very robust and is a bit shabby. I'm liking the glued down plastic coke bottle cap right now.............
Title: Re: Home Brew Analog Computer System
Post by: SeanB on January 10, 2013, 12:36:21 pm
Pulling a Bob Pease now are we..... He did the same on a thermally sensitive appnote, inside a biscuit tin, on a sheet of copper clad board with a lot of dead bug.........
Title: Re: Home Brew Analog Computer System
Post by: GK on January 10, 2013, 01:09:04 pm
I vaguely recall seeing it done as you describe but couldn't say if it was Pease or Williams. It might have to be soda water bottle lids though as I'm giving up coke. I actually drink the soda water straight. Tastes better than tap water and the bubbles are refreshing. I somethings get funny looks at the supermarket with my weekly 8 liters of soda water though. They must think I'm a major piss pot or something.

Title: Re: Home Brew Analog Computer System
Post by: ftransform on January 11, 2013, 03:15:36 pm
I vaguely recall seeing it done as you describe but couldn't say if it was Pease or Williams. It might have to be soda water bottle lids though as I'm giving up coke. I actually drink the soda water straight. Tastes better than tap water and the bubbles are refreshing. I somethings get funny looks at the supermarket with my weekly 8 liters of soda water though. They must think I'm a major piss pot or something.
lol, I like to drink mine with raspberry syrup. I can't stand the taste of that shit without sugar. :-\
Title: Re: Home Brew Analog Computer System
Post by: baljemmett on January 11, 2013, 03:19:47 pm
lol, I like to drink mine with raspberry syrup. I can't stand the taste of that shit without sugar. :-\

Ninja edit?  ;)
Title: Re: Home Brew Analog Computer System
Post by: SeanB on January 11, 2013, 04:12:53 pm
I just make my own, why pay full price of carbonated water when the gas to make 100l is the same cost as 5l of soda water. Carbonated water is the same price as cooldrink, but they save because there is no cane sugar or any other thing in there.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 15, 2013, 12:35:17 pm
Generic 1.25L soda water at Foodland cost \$1.   :P

But that is enough on that exciting topic; I've been verifying my design of the computers precision, triggered Time Base on breadboard.  :-/O
Attached is a pic of a small part of it operating. The Time Base is the master unit that basically controls the whole computer, generating
the logic signals to control the computers integrators (which have 3 modes; "Hold", "Initial Condition" and "Compute/Integrate"), as well as
providing a voltage ramp output representing computation time, so the solution can be displayed/plotted on an X-Y oscilloscope or on chart recorder.

I need a scope with more vertical channels...............................
Title: Re: Home Brew Analog Computer System
Post by: GK on February 09, 2013, 11:50:44 am
Since this is unarguably the most interesting thread started in the history of EEVblog forum, I probably shouldn't let it die.

I got the power supply design for the sine/cosine function chassis completed/operational/tested this afternoon. This is the supply board that provides precision regulated rails of +/-110V and +/-51V, as well as the required +/-15V low-voltage supply rails, for nine sine/cosine function module boards and the single 100V triangle waveform generator. The circuit diagram *.pdf is attached. The 4 transistors mounted on the large heatsink are the series pass devices for the HV rail regulators.

The regulator was specifically designed not to have any overshoot or other funny business on power-up and power-down and also features an over-voltage detector / fault latch to shut down in the event of a loss of regulation to any of the HV rails. A scope photo is attached showing the lack of overshoot on power up.

The PSU is shown powering the triangle wave generator. The unfinished sine/cosine module board is also in the picture; I'm still waiting for an back order of 0.1% resistors to arrive, which are the only parts still needed to finish populating the PCB. They should arrive next week. Once the sine/cosine module design is tested I'll be producing another 8 of them. That will complete the electronics for the computers "Sine/Cosine Function" chassis.

Title: Re: Home Brew Analog Computer System
Post by: robrenz on February 09, 2013, 12:46:30 pm
Very nice stuff GK.  :-+ I had not followed this thread. Now I see why you are not jumping on the differential amplier project.....yet  ;D
Title: Re: Home Brew Analog Computer System
Post by: veryevil on February 09, 2013, 08:32:03 pm
This is just some beautiful work. I cannot wait to see more.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 11, 2013, 03:24:31 am
Thanks  :)

I'm looking foward to being able to make a start at running some elementary programs, but there is still a lot of PCB layouts and soldering to do until then. I'm working on the various PCB layouts for the computers master controller unit now (very much analogous in operation to an old school CRO timebase). That will be a major step in the right direction.

BTW, does anyone know an affordable source of PCB tin plate power? For the integrator banks (the brain of an analog computer) guarded jfet input currents need to be minimised to prevent drift in the "hold" mode of operation. Therefore I don't want to conformable coat tp preserve the copper and need to board wash after soldering.
Title: Re: Home Brew Analog Computer System
Post by: FenderBender on February 11, 2013, 03:32:24 am
GK I really like this analog computer stuff. Is your knowlege of analog computing just accumulated from years of experience? Do you have any resources on them? I'd really like to learn about them. Shall I start on analogmuseum.org?
Title: Re: Home Brew Analog Computer System
Post by: GK on February 11, 2013, 03:33:57 am
Very nice stuff GK.  :-+ I had not followed this thread. Now I see why you are not jumping on the differential amplier project.....yet  ;D

Hey, you know with your machinist skills and workshop facilities you'd be able to construct something pretty impressive if the analog computing bug ever bit.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 11, 2013, 03:37:28 am
GK I really like this analog computer stuff. Is your knowlege of analog computing just accumulated from years of experience? Do you have any resources on them? I'd really like to learn about them. Shall I start on analogmuseum.org?

90% of my knowledge on the operation of analog computers comes from stuff downloaded from analogmuseum.org. Download all the stuff in the library section (the big Systron Donner text is the best introduction). Also try to find a copy of the Korn and Korn book (I picked one up last week form a sechondhand book seller).
Title: Re: Home Brew Analog Computer System
Post by: robrenz on February 11, 2013, 01:09:51 pm
Hey, you know with your machinist skills and workshop facilities you'd be able to construct something pretty impressive if the analog computing bug ever bit.

"Please don't feed the animals" thanks but I am sure that you are like me and don't need any help getting distracted to a new project.  ;D
Title: Re: Home Brew Analog Computer System
Post by: saturation on February 11, 2013, 05:07:49 pm
You could make a difference engine, aka "mechanical calculator":

Tim Robinson's Meccano Difference Engine — Maker Faire 2006 (https://www.youtube.com/watch?v=o6i9Ckm2Z5E#)
Title: Re: Home Brew Analog Computer System
Post by: robrenz on February 11, 2013, 06:18:44 pm
That is some very nice work in both cases :-+
IF i was going to do something along those lines it would probably be a 6 foot diameter circular slide rule.  You could get some awesome resolution at that diameter. But that would require some single arc second accuracy angular division which is not easy. Also requires extremely accurate trueness of rotation on the bearings because any rotational runout will give angular error.
Title: Re: Home Brew Analog Computer System
Post by: megajocke on February 13, 2013, 08:41:02 am
Cool project!  O0  :-+
Title: Re: Home Brew Analog Computer System
Post by: GK on February 13, 2013, 10:45:47 am
Oh no, another audio forum refugee  :) How's it going?
Title: Re: Home Brew Analog Computer System
Post by: GK on February 15, 2013, 12:20:17 pm
The last batch of 0.1% resistors arrived today and this evening I was finally able to finish loading the prototype Sine/Cosine module PCB and test it out. It worked just as planned. I haven't calibrated it with a voltmeter or linearity tester yet; just tweaked it while viewing the waveforms on the oscilloscope.

Here are some pics of it operating with the 0-100V unipolar triangle wave from the calibration/test oscillator used as an input signal.
To recap, the Sine/Cosine module accepts a positive input signal ranging 0V to 100V representing phase angle, which is scaled to 3.6 degrees per volt, so 100V=360 degrees or two pi radians. The output has a scaling factor of 100, so sin(90) and cos(0) = 100V and sin(270) and cos(180) = -100V. In the cosine mode the module generates a continuous sinewave output from the 100V triangle wave test signal.

Now I have another 8 of the Sine/Cosine boards to complete. I’m keeping a tally of the computers total component count. The PCB’s for the finished Sine/Cosine function chassis alone will contain a grand total of:

2252 resistors.
808 diodes
805 transistors
349 capacitors
51 trimpots
29 voltage reference ICs
27 single op-amps
10 inductors
9 dual comparators
9 555 timers
9 reed relays
9 trimmer capacitors
4 CMOS digital ICs
2 regulator ICs
2 DPDT relays
2 diode bridges
1 crystal
Title: Re: Home Brew Analog Computer System
Post by: robrenz on February 15, 2013, 12:42:25 pm
Awesome work there GK :-+ Makes me feel electronically inept :'(
Title: Re: Home Brew Analog Computer System
Post by: GK on February 15, 2013, 12:52:44 pm
Yeah I'm pretty awesome.
Title: Re: Home Brew Analog Computer System
Post by: mamalala on February 15, 2013, 03:27:19 pm
BTW, does anyone know an affordable source of PCB tin plate power?

There are immersion tin mixtures available. One is "SUR-TIN" from Bungard:

http://www.bungard.de/index.php?option=com_content&view=article&id=29&Itemid=80&lang=english#top9 (http://www.bungard.de/index.php?option=com_content&view=article&id=29&Itemid=80&lang=english#top9)

Another one is "Seno Glanzzinn" (dunno if/under what name they sell it outside Germany).

I still have some of the Bungard stuff left, ready to be mixed for 1 liter or more. I could send it your way, but i'm not sure if that is at all possible, since it's a few nasty chemicals.... Sulfuric acid, uric acid, and some powdery stuff.

Strange that this stuff is so ridiculously expensive on Farnell. Here is German shop, for example:

http://www.octamex.de/shop/?page=shop/flypage&product_id=53&category_id=538bc6e72af65cf55e7fcba4ee8c099f&/Chemisch_Zinn_kaufen.html (http://www.octamex.de/shop/?page=shop/flypage&product_id=53&category_id=538bc6e72af65cf55e7fcba4ee8c099f&/Chemisch_Zinn_kaufen.html)

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: megajocke on February 16, 2013, 02:49:19 am
Oh no, another audio forum refugee  :) How's it going?

Just fine! And you?

On the subject of analog stuff with lots of components, recently a friend and I have been working on a microprocessor controlled polyphonic analog synthesizer inspired by the Rhodes Chroma. Though I guess using digital computers is cheating...  ;)
Title: Re: Home Brew Analog Computer System
Post by: GK on February 17, 2013, 11:26:37 am
BTW, does anyone know an affordable source of PCB tin plate power?

There are immersion tin mixtures available. One is "SUR-TIN" from Bungard:

http://www.bungard.de/index.php?option=com_content&view=article&id=29&Itemid=80&lang=english#top9 (http://www.bungard.de/index.php?option=com_content&view=article&id=29&Itemid=80&lang=english#top9)

Another one is "Seno Glanzzinn" (dunno if/under what name they sell it outside Germany).

I still have some of the Bungard stuff left, ready to be mixed for 1 liter or more. I could send it your way, but i'm not sure if that is at all possible, since it's a few nasty chemicals.... Sulfuric acid, uric acid, and some powdery stuff.

Strange that this stuff is so ridiculously expensive on Farnell. Here is German shop, for example:

http://www.octamex.de/shop/?page=shop/flypage&product_id=53&category_id=538bc6e72af65cf55e7fcba4ee8c099f&/Chemisch_Zinn_kaufen.html (http://www.octamex.de/shop/?page=shop/flypage&product_id=53&category_id=538bc6e72af65cf55e7fcba4ee8c099f&/Chemisch_Zinn_kaufen.html)

Greetings,

Chris

Thanks for the offer Chris, but you're probably right, shipping the hazardous chemicals overseas probably wouldn't be viable. Yes the Farnell (Element 14) price for the powder is ridiculous. I didn't know that you could buy it as a mixture. Does that have a finite shelf life? I know the powder only lasts several months once mixed.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 17, 2013, 11:33:19 am
Oh no, another audio forum refugee  :) How's it going?

Just fine! And you?

On the subject of analog stuff with lots of components, recently a friend and I have been working on a microprocessor controlled polyphonic analog synthesizer inspired by the Rhodes Chroma. Though I guess using digital computers is cheating...  ;)

I'm fine also.

Lots of common ground between analog computing and analog synthesizer design  :-+ . I've always been interested in the design of analog synthesizers and once had fantasies of building one myself (polyphonic, with lots of keys) but I'm not musically inclined, so in the end it would be a bit pointless.
Title: Re: Home Brew Analog Computer System
Post by: mamalala on February 17, 2013, 01:51:10 pm
Thanks for the offer Chris, but you're probably right, shipping the hazardous chemicals overseas probably wouldn't be viable. Yes the Farnell (Element 14) price for the powder is ridiculous. I didn't know that you could buy it as a mixture. Does that have a finite shelf life? I know the powder only lasts several months once mixed.

Yes, they all have a limited shelf life once mixed with water. It's usually around 6 months. If you keep it really cool, and use distilled water, it will last a bit longer.

It doesn't stop working completely, but the tin layer wont be that shiny anymore, and it takes much longer to deposit on the board. Also, it partially crystalizes. You can re-dissolve them by heating it up and mixing it well again.

Also, you have to solder the boards pretty quick once tinned. After a few weeks it will become virtually impossible to solder it anymore. You would have to give it a good scrub then, which probably will partially remove the tin layer completely. I used that stuff for a while, but don't use it anymore at all. It smells like foul eggs, has nasty chemicals, a limited shelf life, and it forces you to solder the boards quickly.

The "Seno Glanzzinn" comes in a brown bag, no liquids. I guess that would be rather easy to send. A pack is around 19 Euro, plus shipping. Let me know if you are interrested, i could then forward one to you. One pack is good for 1 liter ready-to-use solution, about 40 Euro-Card sized boards (160mm x 100mm).

However, you can get a can of leaded solderpaste, spread it on the boards and reflow that in an oven. Not the most beautiful thing, but it works well and protects the copper.

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: GK on February 18, 2013, 12:39:47 pm
Hmmm... The whole tin plate idea is looking less and less attractive. I'm probably being a bit paranoid about PCB leakage current in my integrators anyway and would be hardly worse off just using a conformable coat. JFET leakage currents will likely dominate anyway, and you shouldn't expect the computer to hold your solution in the "Hold" mode with the utmost stability over extended periods (eg. while going off to lunch) anyway.

That said, now just thinking aloud (way too late at night), how much luck would I have evenly/uniformly solder-coating a bare copper board if I melted a hefty roll of solder in a frying pan over a gas burner and somehow just skimmed/floated the board over the surface?
Title: Re: Home Brew Analog Computer System
Post by: notsob on February 18, 2013, 01:03:11 pm
If you are looking at plating systems and supplies, I recently found these guys when looking for liquid electrical insulation (look at their plasti dip range), anyway I haven't used them but it may be worth contacting them.

http://www.caswellplating.com.au/store/store.php (http://www.caswellplating.com.au/store/store.php)
Title: Re: Home Brew Analog Computer System
Post by: mamalala on February 18, 2013, 01:34:10 pm
That said, now just thinking aloud (way too late at night), how much luck would I have evenly/uniformly solder-coating a bare copper board if I melted a hefty roll of solder in a frying pan over a gas burner and somehow just skimmed/floated the board over the surface?

Virtually none. You will always get an uneven solder coating that way. Just look at consumer electronics that is assembled using a solder-bath. There is a reason why you almost never see big chunks of copper plane solder coated that way there. They either go fo a "grid" type copper-pour instead of a solid copper plane, or they restrict the available tinable area with a solder mask.

If anything, you have to recreate the HAL process to get a somewhat even surface. This is basically just applying the molten solder to the PCB, and then using hot air to "level" (i.e. blow away) the excess solder. HAL = Hot Air Leveling.

So, if you don't care about an even surface, you can do it the way you proposed. Otherwise that method is good only for etched boards, i.e. when tinning only the traces instead of a whole bare copper area.

So, i would think that conformal coating would probably the best way to go. Cleaning in an ultrasonic bath, with suitable solvent. Maybe then dry the boards in an oven for a few hours before coating, to make sure that no moisture is trapped under the coating to be applied.

How were the boards "finished" in the commercial analogue computers? After all, these machines are a rather old thing.

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: GK on February 20, 2013, 12:48:32 pm
I vaguely recall seeing it done as you describe but couldn't say if it was Pease or Williams.

It was Williams:

http://cds.linear.com/docs/en/application-note/an124f.pdf (http://cds.linear.com/docs/en/application-note/an124f.pdf)

bottle cap was epoxy filled too.

I'm almost finished loading/testing the Time Base PCB. After that I'll be doing the Log Amp boards. I've already collected 10 coke bottle caps. I think I'll drill a ~5mm hole in to the top of each and inject araldite with a syringe.

Title: Re: Home Brew Analog Computer System
Post by: GK on February 21, 2013, 12:06:16 pm
The Timebase board is slowly nearing completion. I decided in the end that I wanted much more comprehensive sweep waveform (x-axis) output options and provisions for re-trace blanking (z-modulation) for use when viewing problem solutions on an X-Y oscilloscope in the repetitive operation mode. These functions will be performed on a separate circuit board. As a consequence I modified the circuit a bit. The revised schematic is attached.

Title: Re: Home Brew Analog Computer System
Post by: GK on March 01, 2013, 08:00:56 am
A geofiz trip put me out in the middle of nowhere again for several days, but I'm now back in the shed. The timebase board is finished and works just as planned. Got it wired to a scope with more channels this time! (A DSO for now, until I finish calibrating two of my Tek 1A1 plug-ins for the 551 mainframe).
The two rotary switches (time [1s, 2s & 5s] and five-position multiplier) which select one of the 15 calibrated compute time settings (from 1mS to 50S) will be double pole types, with one half of each switching a diode decoding matrix and MPSA44 HV transistors to display/indicate the timebase setting on three Nixie tubes (and two neon lamps in bezels to indicate either ms or S), which I have salvaged from an old stuffed "panel" meter (along with a suitable transformer to supply the anode potential).

Title: Re: Home Brew Analog Computer System
Post by: SeanB on March 01, 2013, 02:54:33 pm
You need a new slip indicator. I got quite good at knitting them out of a big ball of bright red wool i bought at the sale section at a haberdashery. What chopper were you flying over the sand.
Title: Re: Home Brew Analog Computer System
Post by: GK on March 01, 2013, 10:42:13 pm
Robinson R44 Raven I. I actually drove a ~6 tonne truck/mobile lab out there, battling sand dunes. When things didn't go to plan (as usual), instead of sitting around in the 40+ heat with sand up my arse, I managed to hitch a free seat on the chopper out to a hotel room for the night. Touched down right in front of the pub!

Title: Re: Home Brew Analog Computer System
Post by: FenderBender on March 01, 2013, 10:55:58 pm
Awesome work there GK :-+ Makes me feel electronically inept :'(

I'd say...

Yikes, I'm still trying to understand class-b amplifiers...
Title: Re: Home Brew Analog Computer System
Post by: GK on March 02, 2013, 08:59:00 am
A DSO for now, until I finish calibrating two of my Tek 1A1 plug-ins for the 551 mainframe.

Done! Well, almost. The 1A1's are still way out of calibration, but I have fixed all of their faults and they are functional. Also spent the entire afternoon tracking down faults in the 551 mainframe, before I could calibrate it properly. My long run with ancient Tek gear and no dodgy electrolytic capacitors has come to an end. One "125MFD 350WVDC", of the -150V regulated reference supply, suddenly decided to go <100nF, giving me huge ripple on all of the regulated rails along with a really funky CRT display. Another PSU electro decided to low impedance instead and burnt out some parallel peak-current-limiting resistors between it and the bridge rectifier. I will have to compile a shopping list and do an electrolytic capacitor blitz on my old Tek mainframes one weekend  :-/O

But anyway, two 1A1 dual-trace plug-ins in a 551 dual-trace mainframe gives a 4 channel scope. The next step is to track down a pair of 1A4 plug-ins on Ebay to make 8 channels.................

Title: Re: Home Brew Analog Computer System
Post by: GK on March 02, 2013, 12:53:26 pm
Robinson R44 Raven I.

Holy crap! I wouldn't have guessed that that crappy little thing was equipped with an engine almost 9 liters in capacity:

http://en.wikipedia.org/wiki/Lycoming_O-540 (http://en.wikipedia.org/wiki/Lycoming_O-540)

Title: Re: Home Brew Analog Computer System
Post by: SeanB on March 02, 2013, 02:23:49 pm
500hP is better........ http://en.wikipedia.org/wiki/A%C3%A9rospatiale_Alouette_III (http://en.wikipedia.org/wiki/A%C3%A9rospatiale_Alouette_III)

You need a lot of power to keep from sweating in there.
Title: Re: Home Brew Analog Computer System
Post by: GK on March 27, 2013, 11:55:51 am
Some major progress has been made in the construction of this computer, but I won't have much further fully functional to show until a bunch of back-order bits arrive.

Here is a little play in LTspice in the meanwhile   :D:

www.users.on.net/~glenk/bouncingball.asc (http://www.users.on.net/~glenk/bouncingball.asc)
Title: Initial baby steps to a TV-based oscilloscope
Post by: GK on March 29, 2013, 10:40:02 am
Well perhaps this is a little more exciting than the above............................... ???

Since I started working on this analog computer project I've been pondering over what kind of X-Y oscilloscope would make the best display device. For example, something like this: http://www.analogmuseum.org/english/examples/bouncing_ball/ (http://www.analogmuseum.org/english/examples/bouncing_ball/)  just isn't as impressive as it should be when viewed on a tiny CRO tube screen with a 10 by 8 cm grid.

So this afternoon I started investigating the idea of converting an old TV set with magnetic deflection into an oscilloscope. An old little TV set which has been sitting in my cupboard for the last 11 years unused was sacrificed for the purpose. The pics below show how far I got. To my delight, my basic theoretical understanding of how to undertake the conversion proved entirely adequate and the conversion is really going to be a piece of cake.

I started by reverse engineering the RGB driver board (plugged into the rear of the CRT) and disabling the video. I reconfigured the gun driver amplifiers so that I could adjust the intensity of each color beam independently/manually. In the photo below I just have the green gun operating; the others are biased to cathode current cut-off. I then identified the connections to the separate horizontal and vertical deflection coils and disconnected them from the sets circuitry. So, from that point on, I am only utilizing the TVs motherboard to provided the operating voltages for CRT.

The vertical deflection coil is actually quite sensitive. My AWA G231 oscillator was easily able to drive the coil for full scale vertical deflection on the CRT at frequencies of 1kHz or so and less. To approximate a current drive in this initial test, I am simply driving the coil through a low value series resistor. So long as the value of the resistor is low compared to the inductive reactance of the deflection coil (at the operating frequency) current drive is adequately approximated and a linear(ish) deflection appears on the screen.

For driving the horizontal coil, however, I had to knock something up. I initially assessed the deflection sensitivity of the horizontal deflection coil by connecting it to my bench power supply in the CC mode. By dialing the dc current through the coil up and down I could therefore manually move the dot across the screen. A current of approximately 1A was required to shift the dot from the center of the screen to the edge (with no current through a deflection coil the dot returns to the center of the screen for the respective axis).

I then made a really simple and crappy (but adequate for "proof of concept") single-ended class A, current-output power amplifier stage capable of driving +/-1A peak into the horizontal deflection coil. This amplifier stage was build up around an MJL21193/MJL21194 power transistor pair screwed down onto an adequate heat sink. This amplifier is shown in the photographs. Being single-ended class A a bit more than 1A is constantly drawn from the supply (note the current reading on the bench supply providing the +/-15V supply rails). By driving this horizontal deflection coil amplifier with my crappy little Jaycar "pocket" signal generator I has able to get some nicely linear Lissajous figures up on the screen. yahoo!

The next step was to knock up a crappy triggered "timebase". For this I used a 555 wired as a one-shot monostable. It is triggered (via a transistor switch configured as a crossing detector) by the AWA G251 oscillator output signal, providing the vertical deflection. For a linear ramp, a current source is used for the 555 one-shot and the linear ramp voltage across the timing capacitor is buffered with a BC550C (c-grade for high gain) emitter follower and then applied to the H-coil driving I-out power output stage input via a pot to vary the horizontal sweep width on the screen.

This allowed me to get a conventional, stable oscilloscope-like display of a ~500Hz sine wave on the screen, as shown in one of the pictures below. Note the feint retrace line though as I wasn't bothered to implement retrace blanking at this early experimental stage.

Now that I know exactly what needs to be done to turn this old TV into a scope with 10-20 kHz bandwidth or so, I can begin with the electronics design proper. I am going to have to build class B I-out deflection coil driver amplifiers with several hundred volts of voltage compliance. I also intend to do away with the TV's original circuitry entirely, building my own PSU to deliver all of the necessary voltages for the CRT. For the gun drivers, I currently intend to make them digital - each gun either on or off in accordance with logic control signals with a common, overriding cut-off control input (for retrace blanking) and with a common brightness control that varies the "on" threshold of the thee guns in unison and thus the beam current and the resultant display intensity. A 7-position rotary switch will select the trace colour (3 bits actually gives 8 "colours" but one of them isn't very useful as it is black  ;D).

What I also intend to implement is alternative logic RGB inputs. This will allow, via multiplexing, the display of multiple traces off of different colours. So the 7-position rotary switch will rather be an 8-position one with the eighth input selecting external logic signals for the trace colour control. For example, I will eventually be able to run Bernd Ulmann's "ball in a box" simulation (as linked to above) on my machine, but instead displayed on my large screen TV scope, with multiple bouncing balls with different coefficients on screen at once displayed in different colours!

Also, as a bonus, my parents (on the big LCD-screen craze) pensioned off today a perfectly fine CRT TV with a screen twice as big as the one shown, which is due for delivery here tomorrow morning; another to be sacrificed for TV-to-CRO conversion  ;D

Title: Re: Home Brew Analog Computer System
Post by: SeanB on March 29, 2013, 11:02:54 am
Just use a scope to make a note of the drive to the LOPT and the drive to the transformer driving the line output stage, then just use that and nothing else aside from the tuning capacitors along with the appropriate HT supply. The PSU of the set can be cut out of the board complete, and used as a unit to provide mostly 130VDC for the LOPT, assorted low voltage lines like 12V, 26V and a 5V line for the low voltage stuff. Then you can have a much simplified unit.
Title: Re: Home Brew Analog Computer System
Post by: GK on March 29, 2013, 02:04:03 pm
If I had a spare LOPT/trippler that is something that I would consider, but how long before these things are unobtanium and what would I do if the thing went poof a couple of years from now? They are a highly stressed part and failures are not uncommon. There is still heaps of this stuff around right now, but people (down here at least) are now throwing away their CRT televisions and computer monitors as if they were something one could catch rabies from!

I was considering winding my own HV step-up transformer on a large ETD core (I have a kit of selected samples from the entire range) and making my own voltage multiplier. The multiplier could have its HV diodes and ceramic caps laid out on a spacious PCB. Spray half a can of conformable coating over it and it should last forever.

Title: Re: Home Brew Analog Computer System
Post by: SeanB on March 29, 2013, 03:50:13 pm
I can still buy LOPT's and triplers for Trinitron TV sets, the bloody things just keep on trucking, horrible bodges to replace GTO thyristors notwithstanding. If you are worried just use the LOPT and grab a few spares from similar sets, they all run off pretty much the same voltage (108-130V) and have near identical charactaristics, so can just be substituted when needed, just make a note ( place in plastic baggie and cable tie to LOPT EHT lead) of pins used for HT and GND along with the drive pin, and the values of the tuning caps ( put the caps themselves and the transistor in the baggie as well) needed.

3 Dead Trolls in a Baggie...........

http://youtu.be/nL24aNugo_4 (http://youtu.be/nL24aNugo_4)

Title: Re: Home Brew Analog Computer System
Post by: GK on April 02, 2013, 09:14:55 am
Well I guess I could get my hands on a few spares if I really wanted to, but I still prefer to roll my own, just because I can.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

I've completed the design for the horizontal coil driver amplifier. The yokes horizontal coil has an inductance of 2mH shunted with 70pF winding capacitance and a series resistance of 1.2 ohms and requires a smidge under 1.4A (accurately measured this time) peak for full scale deflection.

The composite current driver amplifier I have come up with (schematic attached) forces -Vin across resistor Rsense (lower right hand side of the schematic). The current flowing through Rsense is the deflection coil current. The small signal bandwidth is 35kHz and the large signal bandwidth (a coil current of 2.8Ap-p) is a fraction over 2kHz. The large signal bandwidth and slew rate is constrained by how much "compliance" voltage the I-out driver amplifier has. I settled on +/-40V rails as a sane compromise between bandwidth and worse case power dissipation, which gives a clipping threshold of approximately 35V.

The small signal bandwidth is constrained by how much feedback can be wrapped around the deflection coil whilst maintaining stability. The first attached plot shows the loop gain and phase of the current sensing feedback loop enclosing the deflection coil. The second plot shows the voltage and current waveforms for the coil driven to full scale deflection (2.8Ap-p) by a 1kHz squarewave input.

I'm currently laying out the PCB for this circuit. Should have it knocked off in a couple of evenings. Then I will start considering the design of the current driver for the vertical deflection coil. It will be a fair bit different as the vertical coil has completely different characteristics (140mH inductance, 62 ohms Rs, 180mA peak for full scale deflection).

Post by: GK on April 10, 2013, 09:59:12 am
I'm making steady progress with the deign and construction of the electronics for this magnetic deflection CRT XY oscilloscope, but right now I'm still playing around with the crappy/bodged/experimental/test bread-boarded circuits on the bench.

I'm having an issue with the beam convergence when wishing to display additive colours. Displaying red, green and blue traces independently works fine, but I'm having an issue when wanting to mix red with any of the other colours (eg red+green for a yellow trace). At the moment, the green and blue beams are, for all sakes and purposes, perfectly converged, but the red beam will only accurately converge with the others when the focus control is right at one end of its travel - but display focus is optimal at roughly mid position.

So, obviously, I need to adjust/calibrate the convergence for red beam. My CRT here is of the modern type in which the individual beam convergences are adjusted by means of rotatable pairs of magnets on the neck of the CRT only. There are no coils nor electronic compensatory circuits at all. I've attached a picture of the neck of the CRT and the rotatable magnet assemblies.

However, I'm not sure what the correct procedure is and I'm a bit paranoid about screwing things up! Any ex-TV service technicians out there who can offer advice? To the best of my knowledge, for this type of CRT, the convergences are adjusted for a single point in the middle of the screen with no currents applied to the deflection coils. However if someone could kindly outline the magnet adjustment procedure before I take a crack of it I'd be quite appreciative!

I've also attached screen pictures of the 7 binary (a beam either on or off) colour combinations as they are currently generated, with the less than optimal focus setting required to keep the red gun converged with the green and blue. The colors don't appear as vivid in photos as they do in real life, unfortunately.

Title: Re: Home Brew Analog Computer System
Post by: GK on April 10, 2013, 10:21:45 am
Some major progress has been made in the construction of this computer, but I won't have much further fully functional to show until a bunch of back-order bits arrive.

Here is a little play in LTspice in the meanwhile   :D:

www.users.on.net/~glenk/bouncingball.asc (http://www.users.on.net/~glenk/bouncingball.asc)

Some more playing around............ Just for fun I used the ".wave" LTspice directive in a modified version of that simulation to record and save the simulated X and Y signals into the left and right channels of an audio file. This enabled me to connect the headphone socket on my PC to an XY oscilloscope for a visual display, playing the audio file with windows media player.

I modified the simulation for a much quicker solution time (10mS instead of 1s) and used alternate-write multiplexing to simulate and plot the trajectories of two bouncing balls in unison; one having a slightly higher mass than the other and subjected to a slightly stronger constant for gravity. I simply couldn't do a slow simulation such that the "balls" (CRT beam dots) could be observed slowly bouncing about on the screen (which I could have videoed), due to the high-pass, low frequency response of my PC's audio and there is some significant waveform distortion due to the AC coupling, but it makes a nice demonstration of a PC emulating an analogue computer nonetheless  ;D.

Title: Re: Home Brew Analog Computer System
Post by: SeanB on April 10, 2013, 06:38:22 pm
With the CRT you are using did you connect up the degaussing coil ***EXACTLY*** as it was in the set originally, along with connecting it up to power to operate when on the bench in the position it is in. Certain tubes are incredibly sensitive to stray fields, and this often will affect only the gun nearest to the source, or where the change is greatest. You might want to try using a rolled Mumetal shield around the CRT base that envelopes the whole gun assembly and the magnets, just do not kink it, and solder a wire to connect it to the CRT earthing band. If the magnets are as they were in the original set then it is better not to touch them, as they are both going to be interactive with each other and probably have been glued to the CRT neck as well during tube alignment.

I have had CRT monitors where the tube back was covered with plastic strips and full of small ferrite plastic magnets to do beam correction across the tube. Others just had under 5 for the same model.
Title: Re: Home Brew Analog Computer System
Post by: GK on April 11, 2013, 04:53:06 am
I have had CRT monitors where the tube back was covered with plastic strips and full of small ferrite plastic magnets to do beam correction across the tube. Others just had under 5 for the same model.

Thankfully this CRT doesn't have any of that; it just has three pairs of rotatable magnets on the CRT neck, as can be seen in the photo I posted. They are not glued to the actual CRT at all, but poorly "locked" in place with small dabs of that common white compound that sets hard and brittle (which is also visible in the posted photo). I don't think it should be too much of a hassle to tweak, but I think I shall refrain from playing with it until the whole thing is reassembled into its new chassis with my own electronics.

I'm going to have a 19" rack mount front panel made by Front Panel Express, with a proper cut-out and mounting holes for the CRT. The rest of the chassis I'll fabricate myself out of galvanised sheet steel and aluminium ribs. I will shield the CRT entirely in its own metal box. This will be necessary as there will be some hefty power transformers to power the linear deflection coil driver amplifiers.

The degaussing coil is currently still connected as original and operational at each power-on cycle. That part I have not reverse engineered yet but I'm pretty sure it's not much more complicated than a series R and an NTC thermistor, though there might be a TRIAC switch and timer or similar to shut off the degaussing coil current completely after it has done its job.

Worse case, if the red beam convergence cannot be adequately aligned with the green and blue beam with the CRT assembled into its new and final magnetic environment, I'll just design the digital control of the guns such that the only displayable trace colours are only either red, green or blue. No convergence issues if you’re only ever running one beam at a time  ;D
Title: Re: Home Brew Analog Computer System
Post by: GK on April 11, 2013, 10:46:40 am
OK, I now know how to adjust the convergence. This is from the Commodore 1084S computer monitor manual, rather than a Palsonic TV, but the CRT and magnet assembly is practically identical.

Title: Re: Home Brew Analog Computer System
Post by: GK on April 14, 2013, 06:24:04 am
Finally have the horizontal deflection coil driver up and running.

Now I have highly linear horizontal deflection. In the vid the vertical coil(s) are being driven directly from my AWA G251 oscillator. The schematic diagram *.pdf for the horizontal deflection amplifier is attached. The vertical coil driver will be very much the same, with the exception of operating on +/-100V for the discrete power output stage, as the vertical coils have much higher inductance than the horizontal coils. This CRT originally have the two vertical coils wired in series (140mH total). To reduce (halve) the required voltage compliance for the driver amplifier I have rewired them in parallel.

Title: Re: Home Brew Analog Computer System
Post by: GK on April 23, 2013, 03:21:09 pm
I needed a break this evening from doing PCB layouts for this huge project and decided to fire up the soldering iron instead. I couldn't wait until all the boards are etched so I quickly knocked up a "dead bug" version of the vertical deflection coil current amplifier (the mess in the foreground of the attached picture).

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=45578;image)

I decided in the end to orientate the CRT vertically. It's looks way cooler this way when simulating and plotting missile trajectories and like stuff. However there is also a sound technical reason. The vertical deflection coil(s) has a great deal more inductance and a much lower self-resonant frequency than does the horizontal deflection coil. In the end I had to frequency compensate the vertical coil driver amplifier for a small signal bandwidth one tenth that of the horizontal coil driver.
In a display such as this, vertical bandwidth is much more important than horizontal bandwidth. The horizontal bandwidth just has to accommodate the horizontal sweep/repetition rate; and that only needs to be quick enough for a flicker-free display.
So, by flipping the CRT on its side, the slow vertical deflection becomes the horizontal and the fast (comparatively) horizontal deflection becomes the vertical. There was of course another option - I could have just rotated the yoke 90 degrees instead, but as I mentioned already, my preference if for the CRT on its side.

The attached pic shows the prototype monitor displaying my simulation of the trajectory of two bounding balls simultaneously (one ball a little heavier than the other and subjected to a larger constant for gravity). Tomorrow evening I will "dead bug" the colour gun multiplexing and get the individual ball trajectories showing in different colours (and perhaps modify the simulation to simultaneously compute another ball trajectory or two).

Title: Re: Home Brew Analog Computer System
Post by: GK on April 25, 2013, 08:45:34 am
WOW! I am blown away by all of the discussion this project presentation is generating!  :P  ::)

Here is the final schematic for the horizontal deflection coil driver (utilizing the high inductance, previously vertical, coils of the deflection yoke).

Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on April 25, 2013, 11:56:47 am
WOW! I am blown away by all of the discussion this project presentation is generating!  :P  ::)

careful what you wish for dude. I have been watching your progress and sort of biting my tongue. A slightly evil urge has come over me.

You see decades ago I became fascinated with the Fermi-Pasta-Ulam problem, which is a seminal problem in nonlinear dynamics from the 50's. It was an early digital simulation done by the Los Almos peeps at a time when people were still playing with analog computers and hybrids. The surprising thing about the FPU problem is that it was a demonstration of a system which had chaotic modes when it was expected to time evolve ergodicly with equi-distribution  of energy. I have always wondered how you could do this simulation with strictly analog computation and have the results graphically displayed in real-time. Now I don't have the chops to make an analog FPU problem simulator so I want you to make it happen for me.
I mean you have all this equipment and ability but nothing interesting to calculate.   >:D
Title: Re: Home Brew Analog Computer System
Post by: GK on April 25, 2013, 02:10:47 pm
So how many individual integrators will that problem require then?  ;D I'm assembling into this computer project 30. I still have a ship load of hardware assembly to complete before I can run anything serious. I currently have this machine ~90% designed and ~5% built. The former has been taking nearly all of my free time over the past several months, but should make way for the latter (construction) in another month or two in a major way. Once this thing is built I'll have all the time in the world to study problems to run. However my mathematical background is rather weak, and I require more than just a little revision. That is going to be as much if not more of an endeavor as was designing and building the computer to begin with. I'm currently tracking down and filling a bookshelf with classic analog computing texts (a dozen so far). My current bedtime reading is Albert S. Jackson's Analog Computation
Title: Re: Home Brew Analog Computer System
Post by: GK on April 25, 2013, 02:24:54 pm
....... and here is the revised/final schematic for the vertical deflection driver amplifier. At ~50kHz it has 10 times the small signal bandwidth of the horizontal deflection driver amplifier.

Title: Re: Home Brew Analog Computer System
Post by: baljemmett on April 25, 2013, 03:01:52 pm
WOW! I am blown away by all of the discussion this project presentation is generating!  :P  ::)

I think you need to chuck in an Arduino, a blinky LED and some obvious design errors if you want real discussion ;)

But seriously, I'm enjoying reading about your progress - analogue computing (hell, analogue anything) is not something I know a busting lot about, so I'm keeping my head down and my ignorance hidden, but I'm fascinated nevertheless.
Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on April 25, 2013, 09:58:01 pm
So how many individual integrators will that problem require then?  ;D I'm assembling into this computer project 30. I still have a ship load of hardware assembly to complete before I can run anything serious. I currently have this machine ~90% designed and ~5% built. The former has been taking nearly all of my free time over the past several months, but should make way for the latter (construction) in another month or two in a major way. Once this thing is built I'll have all the time in the world to study problems to run.

Well my comment was a sideways query as to how you would implement an FPU simulator, because I don't know how. The original and canonical  FPU problem is 64 idealized and simulated spring-mass units connected in a line so I was thinking 64 oscillators of some sort,  maybe simple RC's or an array of 74HC14's in a ring oscillator configuration. That would be the first step. Next I would need to add in the non-linear terms in a controlled way, thats the second step. Finally how to display what is happening in the system.

Anyway I thought you might have some ideas.
Title: Re: Home Brew Analog Computer System
Post by: GK on April 26, 2013, 12:55:53 am
So how many individual integrators will that problem require then?  ;D I'm assembling into this computer project 30. I still have a ship load of hardware assembly to complete before I can run anything serious. I currently have this machine ~90% designed and ~5% built. The former has been taking nearly all of my free time over the past several months, but should make way for the latter (construction) in another month or two in a major way. Once this thing is built I'll have all the time in the world to study problems to run.

Well my comment was a sideways query as to how you would implement an FPU simulator, because I don't know how. The original and canonical  FPU problem is 64 idealized and simulated spring-mass units connected in a line so I was thinking 64 oscillators of some sort,  maybe simple RC's or an array of 74HC14's in a ring oscillator configuration. That would be the first step. Next I would need to add in the non-linear terms in a controlled way, thats the second step. Finally how to display what is happening in the system.

Anyway I thought you might have some ideas.

OK, basic rule of analog computing - most physical systems can be simulated with enough of rather few building blocks, namely, the integrator, the inverting summer and the function generator. The spring mass problem is rather simple (see attached). in it simplest form it is just a double integration in a loop with damping feedback. It requires two inverting summer and two integrator stages. To simulate 64 (does it have to be 64?) of them I would need 128 integrators and 128 summers. You say they were connect in a line? That makes it a fair bit more complex (much more than just summing outputs as the masses of all of the lower units are hanging on and thus influencing the higher units). Sounds like an interesting problem though. The attached simulation just shows three independent spring mass simulations run simultaneously.

Another rule of analog computing; you don't actually need an analog computer as all of its building blocks and be readily simulated and interconnected in SPICE  ;D . However, in comparison, that is hardly any fun.

EDIT: I don't have the time to search for it right now, but in one of my textbooks a double (series connected) spring mass system is described as part of a car suspension system simulation. From memory the first spring mass represents the weight of the wheel in its entirety and the suspension spring while the second spring mass represents the "spring factor" of the inflated tire and the weight of the tire itself. The solution to the problem you describe could be as simple as expanding upon that problems basic methodology by simply adding to the number of series-connect spring masses.

Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on April 26, 2013, 05:23:02 am

OK, basic rule of analog computing - most physical systems can be simulated with enough of rather few building blocks, namely, the integrator, the inverting summer and the function generator. The spring mass problem is rather simple (see attached). in it simplest form it is just a double integration in a loop with damping feedback. It requires two inverting summer and two integrator stages. To simulate 64 (does it have to be 64?) of them I would need 128 integrators and 128 summers. You say they were connect in a line? That makes it a fair bit more complex (much more than just summing outputs as the masses of all of the lower units are hanging on and thus influencing the higher units). Sounds like an interesting problem though. The attached simulation just shows three independent spring mass simulations run simultaneously.

Another rule of analog computing; you don't actually need an analog computer as all of its building blocks and be readily simulated and interconnected in SPICE  ;D . However, in comparison, that is hardly any fun.

Thank you for the thoughtful reply. Need to be 64?, well if I want to be true to the original, yes. Enrico Fermi (nobel physics), Stan Ulam mathematician and co-inventer of the hohlraum type of fusion bomb, Pasta a relative nobody computer guy and Mary Tsingou  a mathematician/programmer were researching models of heat diffusion in solids and looked for a simplified model to be simulated on an early digital computer. The mass-springs  in the model are undamped (frictionless). I see in damping in the double spring model in your png, otherwise its on the right track. What I was hoping for was to be able to simulate the  individual mass-springs with a few cheap components, I thought trying to display what is happening would be much more of a challenge. Note that the surprising thing about the FPU simulation is that it never settles down for a broad spectrum of inputs, instead it exhibits chaotic behaviour.

I agree spice is no fun, I wanted the tactile experience of real hardware. My brother gave me a "chaotic pendulum" for christmas many years ago, it is just a magnet hanging from a string and some disk magnets  you position around the base which cause the pendulum to swing in widely different directions and periods. It is fun to play with and I thought a real FPU simulator would be even better. Sort of a high brow mathematical lava lamp. I am a coder and if I was forced to I probably wouldn't use spice, and instead code it up myself. But I don't have to as multiple implementations are available on the net.

http://www.scholarpedia.org/article/Fermi-Pasta-Ulam_nonlinear_lattice_oscillations (http://www.scholarpedia.org/article/Fermi-Pasta-Ulam_nonlinear_lattice_oscillations)
http://physics.ucsc.edu/~peter/242/FPU-birth-of-nonlinear-science-Lilienfeld.pdf (http://physics.ucsc.edu/~peter/242/FPU-birth-of-nonlinear-science-Lilienfeld.pdf) - this is a good intro pdf of lecture slides
Title: Re: Home Brew Analog Computer System
Post by: GK on April 26, 2013, 06:18:18 am
Hmmmm..........Problem is if it is un-damped you somehow have to maintain a loop gain of precisely 1, otherwise the oscillations will either grow until the amplifiers saturate or decay altogether. To do this with a real world analog computer you will then need a level detector controlling a multiplier to act as a servo loop to regulate the amplitude of oscillation. However the feedback contribution of the servo leveling loop(s) may corrupt the experiment (there may also be some serious interaction issues too). At this stage I really don't know. Perhaps this is a reason why they had to hang out until someone had finally developed a digital computer that they could play with?

Title: Re: Home Brew Analog Computer System
Post by: GK on April 26, 2013, 06:27:50 am
I just deleted and re-posted revised circuits for the vertical and horizontal deflection coil drivers attached to posts 81 and 84.

I ended up modifying the frequency compensation. In the previous iteration(s) I had pole-zero pairs in the coil current-sense negative feedback loop(s) to give greater loop gain at DC, but this compromised the transient response to some degree, producing significant (10%) overshoot to the edges of a full amplitude square wave stimulus due to the zero (a high-pass pole) introduced into the loop response.

I have now removed the pole-zero pairs in each amplifier circuit to keep the feedback loops 100% DC coupled. This gives the deflection amplifiers an almost perfect transient response without any overshoot. Now I will have to revise the PCB layouts yet again.......damn.
Title: Re: Home Brew Analog Computer System
Post by: GK on April 26, 2013, 06:56:01 am
I think you need to chuck in an Arduino, a blinky LED and some obvious design errors if you want real discussion ;)

;D Well, this project has now grown to the extent that the digital section of this hybrid computer (along with the display unit) will have to be built into a seperate 19" rack which I have acquired. There will literally be hundreds of blinky LED's indicating the status of the logic elements; but definitely no Arduino.
Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on April 26, 2013, 07:40:22 am
Hmmmm..........Problem is if it is un-damped you some how have to maintain a loop gain a precisely 1, otherwise the oscillations will either grow until the amplifiers saturate or decay altogether. To do this with an real world analog computer you will then need level detector controlling a multiplier to act as a servo loop to regulate the amplitude of oscillation. However the feedback contribution of the servo leveling loop(s) may corrupt the experiment. At this stage I really don't know. Perhaps this is a reason why they did it on a digital computer?

Considering active devices was giving me a headache for another related reason. The system to be modelled is adiabatic (I think!), that is once it is charged with its initial energy it neither dissipates nor consumes power, only transfers it loss-lessly among the masses. Obviously  real components can't do this and I don't know how to fix that. Some kind of sealed chamber-calirometer controlling the power input  would be my only guess. That is why I started thinking about RC networks with the only servo loop controlling power in vs power out, but I am no engineer  :P so I just hit the brick wall  |O.  While digital computers can evade most of these road blocks even the digital simulations run into the limit of finite precision due to the sensitive dependence on initial conditions.
Title: Re: Home Brew Analog Computer System
Post by: GK on April 26, 2013, 10:07:37 am
Thinking about a bit more with my limited mathematical insight, having skimmed the links that you provided, I think this is an abstract mathematical problem not realizable in a functional analog constructed with real world electronic components and operational amplifiers. It's probably, for all sakes and purposes from a practical perspective, just as feasible as cold fusion in the HAM shack  :P . Moving along now to the next challenge please...................  ;D
Title: Re: Home Brew Analog Computer System
Post by: GK on April 26, 2013, 02:29:22 pm
Here is the signal preamplifier for the display unit. Two of these will be incorporated into the display unit; one for the X-axis input and one for the Y-axis input. This module gives an oscilloscope-like front-end with a 1M input, an AC/GND/DC input coupling switch, an 11-position 1/2/5 sensitivity switch, a 1-to-0.4 variable sensitivity control, beam/trace positioning pots and a signal inversion switch.

These boards along with the revised PCB's for the horizontal and vertical deflection coil drivers will be going into the etch tank tomorrow morning...........

Title: Re: Home Brew Analog Computer System
Post by: GK on April 29, 2013, 12:52:56 pm
The two signal pre-amplifiers are almost done..... one is complete and the other still need to be wired. I've assembled the complete pre-amplifiers into their own sub-chassis, which will mount behind the display units from panel. This makes assembly a great deal easier as the wiring to all of the controls does not have to be done inside the case.

Title: Re: Home Brew Analog Computer System
Post by: GK on May 05, 2013, 05:57:14 am
..... chaotic modes....

Well, here is some pseudo chaos in the meanwhile.....

I solved the coupled differential equations of the famous Lorenz system in LTspice and recorded the x and z polar coordinated to a 60 second stereo *.wav file. Now that I have a sound card modified for a response down to DC and have finished building up the deflection amplifiers I can begin plotting some fancy formula solutions on my CRT.

It didn't video real well due to the crappy resolution and frame rate of my camera, but the demonstration is clear enough. I started the mathematical solution with a rather long time constant of integration and slowly ramped it up linearly. So the display begins with the dot produced by the CRT beam apparently randomly and chaotically revolving about the "Lorenz attractor", dancing between the two domains until it becomes fast enough for the displayed image to evolve into the well known "owl face". I also included audio of the summed x and z signals in the video. Sounds kind of spooky once the frequency of oscillation (if that is the correct word) becomes high enough to be audible.

Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on May 05, 2013, 10:28:15 pm
Yup, that looks like the lorenz attractor. Its good to get confirmation that your boards are working. The only demonstration of an analog computer actually being used in anger that I can remember viewing was running the lorenz attractor. The problem of what to do with your machine as it nears completion is only going to get more acute  :'(  That's common to a lot projects where the fun is in the building.

My father was a boy/teen in Germany during WWII and he was drafted into the FLAKhelfer (anti-aircraft assistant, or auxiliary) mobilization in the last year of the war. He had exceptionally good eyesight and could see and identify aircraft before the others so he was part of the spotting team. They had an optical sight/rangefinder with exaggerated parallax and some kind of analog ballistics computer that compensated for wind and azimuth and other inputs. I  think it may have been mechanical and I doubt it did the predictor/corrector type of aim control like American radar directed guns. He still gets exited talking about those things but he never explained to me how they worked. Not much call for analog anti-aircraft directors these days. Something I have fantasized making is a laser  fly zapper with digital computer vision and control, but then when I add up the work involved my bio computer just directs me to grab  a swatter.
Title: Re: Home Brew Analog Computer System
Post by: GK on May 07, 2013, 12:51:54 pm
You mean like one of these:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=46736;image)

My classic analog computing texts are slowly arriving in the mail. I love Abebooks; you can find almost anything. One book only cost me a dollar. These books are packed with ideas and examples of problems to run. I don't think I'll have any problem finding problems to solve and run once the computer is completely built. Haven't really scratched the surface so far.

(https://www.eevblog.com/forum/index.php?action=dlattach;topic=12331.0;attach=46739;image)

Some of these books come from interesting places:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=46740;image]https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=46740;image)

But anyway, here is another simulation in the meanwhile:

Title: Re: Home Brew Analog Computer System
Post by: GK on June 13, 2013, 12:56:08 pm
An analog computers brain under construction...................

These are the integrator boards (schematic here: https://www.eevblog.com/forum/projects/glass-diode-photoelectric-effect/msg230406/#msg230406 (https://www.eevblog.com/forum/projects/glass-diode-photoelectric-effect/msg230406/#msg230406) ).
Turns out that I couldn't etch the boards myself in this quantity cheaper than having them made.

Also got my front panel for the display unit from Front Panel Express. Things are slowly progressing.........
Title: Re: Home Brew Analog Computer System
Post by: alanb on June 13, 2013, 04:44:50 pm
I'm constantly amazed by the scale of this project. Are you able to provide an estimate of the total cost and the time that you will have spent on it when complete.
Title: Re: Home Brew Analog Computer System
Post by: GK on June 14, 2013, 01:04:00 am
It would be really difficult to estimate the total time spent; Hundreds of hours. Note that those integrator boards pictured constitute probably ~5% of the total circuitry. I reasoned that the cost in monetary terms is justified alone by the educational benefit conferred by having a full blown differential analyser on which to apply problems in physical systems modelling and differential calculus.
If you can pardon my immodesty, I think this is going to be quite an impressive (two relay-rack) machine when finished. An eventual hyperlink to a full expository technical write up on my web domain probably won’t hurt my resume either.
Title: Re: Home Brew Analog Computer System
Post by: GK on June 20, 2013, 01:31:57 am
I used to have a box of mechanical sine/cosine resolvers and hundreds of other styles of synchros and resolvers, they were parts of anb autopilot. We were cannibalising them for spares to fix moving map displays and other synchro indicators

Hey, you wouldn't happen to have by chance a few sine-cosine potentiometers laying around, would you?

I've got a prototype matrix computational circuit on the go which transforms the Cartesian coordinates (X,Y,Z) of 3-dimensional objects and graphs into 2-dimensional polar coordinates (X,Y) for isometric projection on a 2-dimensional display.

However at the moment the angles of rotation of the isometric projection around the x and y axis' are fixed and in order to make them independently and continuously variable I require a pair of sine-cosine law potentiometers.

Such things still appear to be available new: http://www.precisionsales.com/potentiometers/singleturn/sinecosine.htm (http://www.precisionsales.com/potentiometers/singleturn/sinecosine.htm)
.........however I'm afraid to even bother asking what they cost.

One possible alternative is to fake the dual sine-cosine law with digital pots driven by a rotary encoder via a uC programmed with appropriate look up tables (or just solving each increment) but even with lots of "linear" bits to work with the steps still get quite chunky at the extremes where the rate of change is high and many "counts" are skipped. A pair of "old school" pots are still the preferred option.

These kind of pots were used extensively back in the day for radar displays (2-D projection of 3-D) and early medical imaging equipment.

Title: Re: Home Brew Analog Computer System
Post by: SeanB on June 20, 2013, 04:18:22 pm
Sorry, they stayed when I left.
Title: Re: Home Brew Analog Computer System
Post by: GK on June 21, 2013, 02:07:06 am
Poo.

It looks like I'm stuck with digital pots and a uC. Looking at the datasheets a little closer those sine-cosine pots from Precision Sales aren't the right type anyhow. I reguire a pair of the quad wiper radar display types which operated over 90 degrees of shaft rotation.

A pair of A5204's and a PIC16F874 with sin/cos look-up tables it is for now.
Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on June 21, 2013, 03:26:02 am

I can't tell what kind of latency you need from your synthetic pots, but you might find the classic CORDIC algorithm a useful speed/accuracy/table size trade-off. CORDIC by its very nature simultaneously computes SIN and COS for a given theta and requires a much smaller table once the number of bits of resolution desired goes up.
Title: Re: Home Brew Analog Computer System
Post by: GK on June 21, 2013, 06:50:06 am
Hmmm......... looks interesting. However if I am restricted to the 8-bits of a typical digital pot there really isn't any point in attempting to rotate my isometric projection in steps of finer resolution than 1 degree. The full sine/cosine lookup table (0-90 degrees) is therefore only 182 bytes and for simplicity can hardly be beat.

An 8-bit approximation (rounding down to the nearest integer) doesn't seem to be quite that bad or excessively chunky for the most part after all:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=52352;image)

Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on June 21, 2013, 08:53:30 am

Ya, for 8 bits out there is no sense going beyond straight lookup. Due to symmetry in the trigonometric functions you can further compress the domain to 0 - 45 but beyond that it  isn't worth the effort.
Title: Re: Home Brew Analog Computer System
Post by: GK on June 29, 2013, 02:14:00 am
BTW, here is the Lorenz Attractor in isometric projection. The angles of rotation on both the X and the Y axis are still fixed at 45 degrees (by a fixed resistor sin/cos matrix) as I haven't ordered my digital pots yet. Some boof heads require Matlab to produce a display like this  ::) I do it with op-amps and a Tek545 ;D

I'll make a video of the display when I get my sin/cos synthesized digital pots wired into the transformation circuit. It will look pretty cool when I can twiddle a pair of pots to fully manually rotate the projection on both axes.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=53059;image)
Title: Re: Home Brew Analog Computer System
Post by: baljemmett on June 29, 2013, 02:54:40 pm
Some boof heads require Matlab to produce a display like this  ::) I do it with op-amps and a Tek545 ;D

Oh, very nice work, sir!  A thumbs up is definitely in order ;)
Title: Re: Home Brew Analog Computer System
Post by: megajocke on June 30, 2013, 04:53:08 am
Cool! Nice progress   O0
Title: Re: Home Brew Analog Computer System
Post by: Rerouter on June 30, 2013, 05:31:08 am
what is the cause of the blip on the 3rd gratical to the right and 1 down? appears there is a similar blip on the same position on the other side of the oscillation,
Title: Re: Home Brew Analog Computer System
Post by: GK on June 30, 2013, 10:51:59 am
That I believe is due to a transfer non linearity in my dodgy and barely adequate multiplier stage temporarily knocked up on breadboard.
Title: Re: Home Brew Analog Computer System
Post by: robrenz on June 30, 2013, 02:39:46 pm
A fine example of analog Beauty in both computation and display :-+
Title: Re: Home Brew Analog Computer System
Post by: jahonen on June 30, 2013, 04:15:17 pm
Apparently fairly simple circuit is enough to produce the Lorenz attractor, as shown here by Paul Horowitz himself:

Lorenz Attractor - Physics 123 demo with Paul Horowitz (https://www.youtube.com/watch?v=DBteowmSN8g#)

Regards,
Janne
Title: Re: Home Brew Analog Computer System
Post by: GK on June 30, 2013, 11:46:01 pm
Yes, the circuit I used is quite similar. However it requires a few more o-amps to make a 3-dimensional projection unit.

If you compare Pauls 2D display of the LA to mine, you can easilly make out the 45 degrees of rotation on both the X and Y axes:

Title: Re: Home Brew Analog Computer System
Post by: GK on July 01, 2013, 09:53:23 am
Some more experimentation with the isometric projection unit. Once again the angle of rotation / perspective on both axes is fixed at 45 degrees as I haven't prototyped the synthesized sin/cos pots yet to make them (angles of rotation) fully variable. My two AD5204 quad digital pots are supposed to arrive tomorrow. I'll post up full circuit details of the 3-D projection unit once I have verified the design and finished building it.

It is the operation of the projection unit that I was trying to show off in the Lorenz Attractor example, as at the time I just happened to have had a bread-boarded generator circuit for this 3-dimensional object on the bench to act as the signal source. This evening I knocked up some generator circuitry for some much simpler 3-dimensional objects (a straight spring and a conical one). With these simpler objects the nature of the 3-D projection is much more obvious.

Title: Re: Home Brew Analog Computer System
Post by: GK on July 01, 2013, 01:05:20 pm

However I still need to implement a multiplexer to get a pair on the screen rather than just one. No time to do that now as it's 10:30pm and time for bed  :'(  Oh man this analog computer project is going to be so awesome! When I have the multiplexer implemented along with the synthesized sine/cosine "pots" in the projection matrix/transformation circuits I'd be able to project a full boobie pair in any 3-dimensional, fully rotatable viewing angle!

Woo hooo!  ;D

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=53242;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on July 02, 2013, 07:53:51 am
Done!

Now that I've had my CRT boobie fix I promise to keep the thread a little more mature from now on.  ;D

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=53319;image)
Title: Re: Home Brew Analog Computer System
Post by: SeanB on July 02, 2013, 07:16:23 pm
C cup, as they are 3 divisions each........... ;)
Title: Re: Home Brew Analog Computer System
Post by: GK on July 04, 2013, 12:58:31 pm
Interesting conversion factor. Which manual did you get that from?  ;D

I've now written the uC code for the synthesised sine/cosine pots. The 3-D projection unit requires 8 pots in total; 4 with a sine law and 4 with a cosine law. They are arranged into two quad gangs; each quad gang comprised of two sine law pots and two cosine law pots.
One quad gang controls the angle of rotation of the 3-D projection around the Y axis and the other quad gang controls the angle of rotation around the X-axis.

Instead of using a pair of rotary encoders for the manual adjustment of the Y & X angles of rotation I ended up using a pair of single gang potentiometers across a voltage reference; their position read by the internal ADC of the PIC uC.

All I have to do now is wire in the two AD5204 quad digital pots and then I'll have full manual control over the "perspective" of the 3-D projection, rather than the currenly fixed 45/45 degree one. The first thing I'll video is the Lorenz Attractor being manually rotated on its axes.

Time for bed again, right now though.

Title: Re: Home Brew Analog Computer System
Post by: GK on July 05, 2013, 08:34:51 am

Due to symmetry in the trigonometric functions you can further compress the domain to

Yes, of course. You just read the table in the opposite direction for cos instead of sin or sin instead of cos:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=53638;image)
Title: Re: Home Brew Analog Computer System
Post by: woodchips on July 05, 2013, 10:11:31 am
Wow, found this post and delayed going to bed by a couple of hours!

Some comments, my interests are in mechanical analogue computers so similar. Have you seen the differential analysers by Vannevar Bush etc in the 1930s? Also an earlier one, 1890s, for calculating tides but I can't at the moment track this down as to the why or how.

What is the current book collection? A list of author, title and brief comments would be useful. Another interest of mine is wind turbines so I have some books on waveforms as regarding electromagnetism, again, similar but not identical.

Hewlett Packard and Tektronix made large screen monitors, occasionally available. I have a HP 143S which works to 15MHz in X and Y. There is also the Kikusui 5121A but that is electromagnetic deflection so 1kHz X and 10kHz Y.

I have some sine cosine pots, somewhere. They were rescued from some 1950s aircraft navigation equipment, mechanical analogue computers.

In post 44 a comment was made about circular slide rules. Find a 1 arc second theodolite for the glass discs and reading method. Another wonderful piece of technology that electronics has consigned to the scrap heap.

Bob

Title: Re: Home Brew Analog Computer System
Post by: GK on July 06, 2013, 01:40:00 am
Hi Bob,

I'll keep an eye out for those X-Y monitors you mention, thanks! I'm not particularly familair with any of the old mechanical analog computers. My book collection is almost exclusively concerned with electronic analog computers. Not sure if it is still of interest, but on the bookshelf I currently have:

1)
Analog and Hybrid Computing
Hyndman, D. E.
2)
Fundamentals of Analog Computers
Weyrick, Robert C.
3)
Analog computer programming
Michael G. Rekoff
4)
Introduction to analog computation
Ashley, J. Robert
5)
Analog Computation and Simulation: Laboratory Approach
Jenness, Roger R.
6)
Introduction to Electronic Analogue Computers
C. A. A. Wass
7)
Analogue Computing at Ultra-High Speed
Donald Mackay
8 )
Computation by Electronic Analogue Computers
Borsky, V. and Matyas, J.,
9)
Electronic Analog Computer Primer
Stice, James E. & Bernet Swanson
10)
Analogue Computers
I. I. ETERMAN
11)
Introduction To Electronic Analog Computers
Warfield, John. N.
12)
Analog/logic computer programming and simulation
Fred J Ricci
13)
Computer Handbook
Huskey, Harry D.
14)
Principles of Analog Computation
Smith, George W. and Roger C. Wood
15)
Basic Analog Computation
Gerald R. Peterson
16)
Analog computation in Engineering Design
Rogers and Connolly
17)
Analog methods
Karplus and Soroka
18)
Analog simulation
Karplus
19)
Hybrid computation
Bekley and Karplus
20)
High Speed analog computers
Tomovic and Karplus
21)
Design fundamentals of analog computer components
R. M. Howe
22)
Analog computation
Albers S. jackson
23)
Electronic analog computers
Korn and Korn
24)
Electronic analog and hybrid computers (DC analog computers)
Korn and Korn
25)
Methods of solving engineering problems using analog computers
Leon Levine
26)
Analog computer techniques
C. L. Johnson

Title: Re: Home Brew Analog Computer System
Post by: SeanB on July 06, 2013, 05:07:05 am
Those vector analysers that were on here a few months ago would have made nice XY monitors, they have equal bandwidth in both channels, and the signal amps inside have sine and cosine generators.
Title: Re: Home Brew Analog Computer System
Post by: woodchips on July 06, 2013, 04:59:06 pm
GK, thanks for the book list, only have a couple of them. They are full of calculus and similar and my maths simply isn't up to that.

Had a scrummage in the library and the following might be of interest. Again, more towards mechanical analogue computers or electromagnetism but if you see them for a £ (or local currency of course) or two then worth buying, I reckon anyway.

1)
Electronic Digital Integrating Computers, Digital Differential Analysers - Mayorov
2)
Electronic Computers, Principal & Application - Ivall (trivial level)
3)
Graphical & Mechanical Computation - Lipka
4)
The MIT Radiation Laboratory Series, 28 volumes but in particular
Theory of Servomechanisims - James
Computing Mechanism & Linkages - Svoboda
Components Handbook - Blackburn
Waveforms - Chance
5)
The Journal of the Franklin Institute, articles about the Bush differential analyser

These are electromagnetism books, but might have some ideas for programs to run
6)
Elementary Treatise on Curve Tracing - Frost
7)
Practical Curve Tracing - Duncan
8)
Alternating Current Waveforms - Kemp
9)
Waveform Analysis - Manley
10)
Practical Geometry & Engineering Graphics - Abbott
11)
No particular book but equalisation of telegraph lines, under the ocean etc, not trivial!

Otherwise, I have found one of the sine/cosine pots. It is 14.4k and in a servo size 15 case. Came from a co-ordinate converter used in the navigation system (Green Satin) used in 1950s bomber aircraft, no tolerance specs but must be pretty good. The tide predictor was designed by Thompson, Lord Kelvin, in the 1890s but still can track down the article. Some in the Britannica to give a flavour.

Hope this is of some interest.

Title: Re: Home Brew Analog Computer System
Post by: GK on July 07, 2013, 02:25:48 pm
Thanks for the book list - I'll check them out. You are right about the heavy math in most of these texts. Analog computation was all about implementing electrical analogs of physical systems of which the first step is to formulate a mathematical model for the physical system; the analog computer then solves the mathematical model. So you can't really get around the maths! I can't pretend to have my head fully wrapped around even a tenth of it all but that is something I plan to rectify to some degree with the aid of this machine I'm building.

From that book list I posted, the titles numbered 13, 21,23 and 24 are largely devoid of really heavy math as they are concerned almost entirely with the engineering and design of the electrical components and circuits of which analog computers were comprised; they are texts on practical analog circuit design that, despite their age, should be on the bookshelf of every budding analog designer, IMO. Although the technology has moved on the fundamental principles given exhaustive treatment remain the same. Just for example the Korn & Korn volumes contain some of the most thorough analysis of sources of error in operation amplifier circuits and the most succinct and practically detailed explanation of dielectric absorption in capacitors I have found so far.

BTW, would you be interested in selling those sine/cosine pots?

Title: Re: Home Brew Analog Computer System
Post by: GK on July 07, 2013, 02:40:28 pm
Well, finally, here is the Lorenz Attractor in 3-D projection with variable angles of rotation (the 3-D projection unit in action). I have to say that I am quite happy with the way the synthesized sine/cosine potentiometers worked out with the 8-bit digital pots and the sine/cosine look up table. The 1 degree step resolution and 8-bit accuracy gives a fluid variation in display that is, for all sakes and purposes, totally analog as far as I as the operator can discern. In all honesty the Lorenz Attractor probably isn't the best 3-D "object" to demonstrate the operation of the projection unit, as it is a bit complex and an interpretation of the display isn't intuitively obvious as it is with simpler shapes and objects, such as the assorted springs I posted screen photos of a few posts previously.

Here is a simplified schematic of  the initial, prototype projection unit. It is based on the basic 3-D projection principle outlined in chapter 9 (Multi-Dimensional Displays) of Analog Computing At Ultra High Speed, D M.MacKay, M E. Fischer.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=53934;image)

Title: Re: Home Brew Analog Computer System
Post by: woodchips on July 08, 2013, 11:08:50 am
Hi, yes, you are definitely correct about the maths! But, does it have to be so inpenetrable? About 30 years ago DSP chips appeared and I was designing the boards but they looked interesting so started to learn about signal processing. I never really got anywhere. Not so long ago I bought the book by Abbott, phew, Fourier transform with a pencil and ruler!!!!! But why couldn't all these wonderful DSP teaching texts have done the same thing?

I have found that if you want to learn something then any book published after the mid 1960s won't be of any help, they seem to have just swallowed formula and regurgitated them. Just buy lots and lots of books, they all have something of interest in but occasionally you hit a masterpiece, your Korn books for example. My interest was electromagnetism so not really relevant here, did end up with about 200 books though!

Yes, how many of the sine cosine pots did you want? Not certain how many I have got, in the middle of a serious sort out.
Title: Re: Home Brew Analog Computer System
Post by: GK on July 08, 2013, 01:44:40 pm
Well, I've managed to design my 3-D projection unit without them now, but I could probably eventually find a use for two or three. What would you want for them?
Title: Re: Home Brew Analog Computer System
Post by: GK on July 11, 2013, 12:13:10 pm
Well, after a couple of late evenings of tearing out hair and banging my head against the table I have finally managed to work out a practical and functional electrical analog for the Rössler Attractor.

http://en.wikipedia.org/wiki/R%C3%B6ssler_attractor (http://en.wikipedia.org/wiki/R%C3%B6ssler_attractor)

The Rössler Attractor is somewhat similar to the Lorenz Attractor, but simpler, and 2 of the 3 coupled differential equations that describe it are linear. However designing a functional electrical analog of the Rössler Attractor was a bit of a challenge due to the way the variables scale and the resultant hyper sensitivity of the circuit to DC offsets (particularly those of the single multiplier stage required). However I succeeded in the end and here is the result:

The Rössler Attractor, being a simpler display that the Lorenz attractor, much better shows off the operation of my 3D projection unit, I think. Also note that I have included a "Chaos potentiometer" into the circuit, which permits me to linearly vary the "d" parameter from a high point at which oscillations cease, down to and through and beyond the point at which the oscillations begin to become chaotic. This is shown in the video.

Rossler Attractor in 3D projection (https://www.youtube.com/watch?v=3YexZeY_Tbs#)

Here is the complete setup (there is a quad op-amp hiding behind the "chaos pot"):

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=54392)

Title: Re: Home Brew Analog Computer System
Post by: robrenz on July 11, 2013, 12:32:43 pm
Very nice! I am still following watching all this
Title: Re: Home Brew Analog Computer System
Post by: GK on July 11, 2013, 11:25:09 pm
Hey, thanks for noticing!  ;D
Title: Re: Home Brew Analog Computer System
Post by: GK on July 14, 2013, 01:15:08 am
Wow, found lots more chatoic stuff ripe for analog simulation here:

http://ibiblio.org/e-notes/Chaos/contents.htm (http://ibiblio.org/e-notes/Chaos/contents.htm)

Think I'll wire up a Hénon map simulation next.
Would also like to get a slow growing Mandelbrot happening on a the display of a storage oscilloscope (my BWD 845 should do)

Also, besides the Lorenz Attractor and the Rössler Attractor (the latter of which I only discovered several days ago) does anyone know of any other chaotic systems that exhibit oscillation around one or more attractors?

Title: Re: Home Brew Analog Computer System
Post by: c4757p on July 14, 2013, 01:35:48 am
Awesome! That stuff brings back pleasant (hey, I'm not insane!) memories from when I was majoring in math. I might have to dig into some of it myself.

Hell, someday I might embark on a similar project. I've always wanted to build 1) an analog computer and 2) a digital computer.
Title: Re: Home Brew Analog Computer System
Post by: GK on July 17, 2013, 01:23:01 am
Can anyone out there offer any advice on technique for accurately drilling holes in 1/8" thick aluminium (19" relay rack) panels?

To save some bucks I'd like to buy blank (Hammond) panels and drill them myself, instead of having pre-drilled panels made by Front Panel Express. The majority of the panels needed (to fill two full height relay racks) are either 2U or 3U with a 300mm-wide section filled by a grid of 4mm banana panel jacks/sockets on a 15mm x 15mm grid spacing.

Each banana jack requires a 7mm diameter hole. However a panel ends up looking like a dogs breakfast if the holes of the banana jack grid are not very accurately positioned. My drill press is a floor standing pedestal unit. I've tried clamping down the work to the table to limit movement and vibration whilst drilling but the table isn't super rigid itself. It just seems to be a real bother to drill a  panel hole of ~7mm diameter with a standard twist drill with anything better than +/-1mm accuracy in position (which is waayyy too loose a tolerance for a good looking panel).

Title: Re: Home Brew Analog Computer System
Post by: notsob on July 17, 2013, 01:53:57 am
1. new drill bits - for an accurate centre
2. centre punch the location to be drilled after you accurately mark it out.
or
3. get a small jig made up, say about 1/4 the width of your panel, but with tabs at top and bottom so you can slide it - this could be made from wood. (with guide holes pre-drilled) that you can slide across your panel, use the first drilled holes to lock it into position as you move it across the panel.
4 find someone locally that has a CNC
Title: Re: Home Brew Analog Computer System
Post by: Jebnor on July 17, 2013, 02:14:04 am
1) Centre punch the point
2) drill with a small hole (2mm) or with a center Drill that can be purchased at any  machine tools shop.
3) drill with final size.

*USE a drill press*
Title: Re: Home Brew Analog Computer System
Post by: GK on July 17, 2013, 02:20:18 am
1. new drill bits - for an accurate centre
2. centre punch the location to be drilled after you accurately mark it out.

That's what I've been doing, but the "large" diameter bit still walks, no mater how accurate the initial center punch. I've even tried drilling accurate 1mm pilot holes with the dremmel, but still not good enough - the 7mm still walks to some degree. Standard twist drills are also a PITA for drilling in sheet as the larger holes never come out round.

What I can immagine I need is a 7mm drill bit with a really long, pointy tip, rather than the standard 45 degrees. Never seen something like that in the hardware store though. Or perhaps some kind of reaming bit?

Jig fabrication and/or and CNC means machine shop services; then it is easier and cheaper to just get the panels made by FPE.

Title: Re: Home Brew Analog Computer System
Post by: GK on July 17, 2013, 02:52:09 am
2) drill with a small hole (2mm) or with a center Drill that can be purchased at any  machine tools shop.

You mean:

?

Used them many times in the tailstock on the lathe but never in a drill press. Instead of using one to drill a small diameter pilot hole (the larger twist drill will still walk to a degree), how about using a larger diameter one to drill the hole in its entirety?
Title: Re: Home Brew Analog Computer System
Post by: robrenz on July 17, 2013, 03:10:20 am
These  (http://www.harborfreight.com/3-piece-titanium-nitride-coated-high-speed-steel-step-drills-91616.html)are great on sheet metal.  The bit on the left has a 9/32" diameter which is very close to your 7mm.  These also chamfer the hole very nicely. Use a lube on it while cutting.
Title: Re: Home Brew Analog Computer System
Post by: GK on July 17, 2013, 03:26:53 am
Hmmm. I've got a "unibit" (10mm to 22mm step sizes) but didn't consider a smaller one as the damn thing became hopelessly clogged up drilling aluminium in the past. Just re-jogging my memory getting back into this now, the banana jack datasheet specifies an oddball 8.33mm hole (rather than 7mm) so I guess 1/3” will do.

http://www.newark.com/pdfs/datasheets/spc/TA-376.PDF (http://www.newark.com/pdfs/datasheets/spc/TA-376.PDF)
Title: Re: Home Brew Analog Computer System
Post by: robrenz on July 17, 2013, 03:34:32 am
That 8.33 is probably clearance for a 5/16 or 8mm.  Get some TapMagic aluminum cutting fluid and that will keep the unibit from clogging up with aluminum an give a nice finish.
Title: Re: Home Brew Analog Computer System
Post by: GK on July 17, 2013, 04:44:52 am
Okkaayyyyyy........ I'll pick up a smaller diameter Unibit, a 5/16 centre drill and some appropiate cutting fluid tomorrow. See how I'll go with that.
Title: Re: Home Brew Analog Computer System
Post by: poorchava on July 17, 2013, 08:13:38 am
I'd say find a job shop or become friends with someone who has an access to a CNC.
Title: Re: Home Brew Analog Computer System
Post by: woodchips on July 17, 2013, 05:12:49 pm
If you want several panels then much the best way is to make a jig from some 3mm or 1/8" steel 19" panel. This will drill much better than aluminium. Then drill through the steel into the aluminium panels, can do 6 at once. If drills don't work then try a 3 flute slot drill with centre cutting. Alternatively punch the holes again using the jig.
Title: Re: Home Brew Analog Computer System
Post by: SeanB on July 17, 2013, 06:29:47 pm
I will second making a drill jig to get the initial holes, then use a 2mm or so pilot drill, followed by a larger drill, or an end mill to do the final hole size. 6 flutes and cutting fluid or wax will drill a nice clean hole. If you have a shop vacuum use it to remove the swarf to make the holes neater.
Title: Re: Home Brew Analog Computer System
Post by: GK on July 18, 2013, 02:31:29 am
A 5/16" center drill is working a treat. No walking from the center point and perfectly round holes. Yahoo.

Title: Re: Home Brew Analog Computer System
Post by: notsob on July 18, 2013, 03:32:32 am
Congrats and keep the project info coming, I really look forward to and enjoy reading each installment
Title: Re: Home Brew Analog Computer System
Post by: GK on July 19, 2013, 12:34:56 am
Hey, no worries. The next batch of panels are on backorder, so drilling has ceased for the time being. Stupid car has just swallowed \$2k in maintenance, so that has put a hold on the next major parts order. My almost 10 year old exhaust system finally gave out. I knew there was something amiss when I could only barely outrun an R32 Golf (although I suspect modified). How embarrassing! Spun it up on the chassis dyno and I was down about 100hp at the wheels; internally rusted out and collapsed muffler.
Title: Re: Home Brew Analog Computer System
Post by: woodchips on July 21, 2013, 10:23:25 pm
Just seen this post on tekscopes about capacitor probems etc.

http://www.maximintegrated.com/app-notes/index.mvp/id/5663 (http://www.maximintegrated.com/app-notes/index.mvp/id/5663)
Title: Re: Home Brew Analog Computer System
Post by: AlfBaz on July 22, 2013, 02:12:41 am

On the subject of front panels, have you considered laser cutting services? I was just looking and found quite a few that were reasonable, especially if you can get away with plastic. If shielding is an issue it may still be more viable to simply line the inside of a plastic panel with foil. Given that they can not only cut holes of whatever shape but may also be able to do 2 tone legend engraving

Just a thought
Title: Re: Home Brew Analog Computer System
Post by: GK on July 22, 2013, 02:13:34 pm
Just seen this post on tekscopes about capacitor probems etc.

http://www.maximintegrated.com/app-notes/index.mvp/id/5663 (http://www.maximintegrated.com/app-notes/index.mvp/id/5663)

Dunno if anyone is going to get stroppy over copyright on these old texts, but here is a bit on capacitor leakage and dielectric absorption from Computer Handbook Huskey & Korn, and Electronic Analog and Hybrid Computers, Korn & Korn. Numerous other ancient texts cover the same ground too.

I'm sorry to say it but Bob Pease was a little late to the party on this one.

Title: Re: Home Brew Analog Computer System
Post by: GK on July 22, 2013, 02:21:06 pm

On the subject of front panels, have you considered laser cutting services? I was just looking and found quite a few that were reasonable, especially if you can get away with plastic. If shielding is an issue it may still be more viable to simply line the inside of a plastic panel with foil. Given that they can not only cut holes of whatever shape but may also be able to do 2 tone legend engraving

Just a thought

Thanks, but I'm not sure that plastic would be strong enough; especially so to support the weight of each "modular" chassis. Another thing is that the entire composite rack system front panel serves as a ground plane for my signal ground.
Title: Re: Home Brew Analog Computer System
Post by: GK on July 22, 2013, 03:16:09 pm
Well, finally, here is the Lorenz Attractor in 3-D projection with variable angles of rotation (the 3-D projection unit in action). I have to say that I am quite happy with the way the synthesized sine/cosine potentiometers worked out with the 8-bit digital pots and the sine/cosine look up table. The 1 degree step resolution and 8-bit accuracy gives a fluid variation in display that is, for all sakes and purposes, totally analog as far as I as the operator can discern. In all honesty the Lorenz Attractor probably isn't the best 3-D "object" to demonstrate the operation of the projection unit, as it is a bit complex and an interpretation of the display isn't intuitively obvious as it is with simpler shapes and objects, such as the assorted springs I posted screen photos of a few posts previously.

Here is a simplified schematic of  the initial, prototype projection unit. It is based on the basic 3-D projection principle outlined in chapter 9 (Multi-Dimensional Displays) of Analog Computing At Ultra High Speed, D M.MacKay, M E. Fischer.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=53934;image)

I have made a significant improvement to the above described 3D projection unit. The unit as shown above is only capable of rotating the projection on both the X and Y axes over the range of 0 to 90 degrees. This is quite adequate an adjustable range for graphs and shapes in isometric projection, which are typically shown at a "perspective" of 45 degrees. However I figured that it would be a lot cooler if the projection unit could in fact spin the projected display on either axis the full 360 degrees.

The reason the design detailed above is limited to 0-to-90 degree range is that the digital pots connected as potential dividers (to implement the necessary sine and cosine multiplications) can only effectively multiply in two quadrants (the positive ones) as the range of multiplication of the applied input signal is limited to the range of 0 to 1. Now while 2 quadrants of operation for either a sine or cosine function on its own represents a 180 degree range of rotation, the range is in fact limited 90 degrees when a sine/cosine complement is generated as only a 90 degrees of variation is achievable before one function hits its limit at the point of transition into an off-limits negative quadrant.

However I figured out a simple way to achieve the full 4-quadrant range of operation with each digital pot, thus eliminating the above described restriction and permitting a full 360 degree range of variable rotation on each axis. It's quite simple really. I just followed each of the 8 digital pots implementing the sine and cosine multiplication functions with an individual "amplifier" having a gain of either 1 or -1, depending on the state of a logic control input. The range of multiplication is thus extended from 1 to 0, to 1 to -1, simply by asserting the logic control line to switch the amplifier from a gain of 1 to -1 whenever operation in the negative quadrants are required.

Here is a video of the resultant prototype in action. At the moment the angles of rotation are not manually variable/settable as they were previously as I haven't gotten that far with the code yet. I just wrote a test subroutine to linearly and continuously rotate the projected display on each axis the full 0-to-360 degrees at a fixed and steady rate (one axis rotating twice as fast at the other). Once again the "object" being displayed is the Rössler Attractor:

Rössler Attractor Analog Simulation MKII (https://www.youtube.com/watch?v=-kTEU-vx1p4#)

Cool, huh?  ;D

Title: Re: Home Brew Analog Computer System
Post by: Odysseus on July 22, 2013, 10:02:24 pm
Damn right it's cool.

Give us a heads up when you try attacking the N-body problem.  :-+
Title: Re: Home Brew Analog Computer System
Post by: GK on July 24, 2013, 09:12:18 am
N-body problem.  :-+

I looked it up and the some of the equations looked quite scary!

Title: Re: Home Brew Analog Computer System
Post by: Odysseus on July 25, 2013, 02:06:38 am
Could you simulate a single moving mass orbiting a fixed gravitational center?  Just F=ma and F=m1*m2/r^2.  In vector form for more dimensions than one.

Then try a two body system where you have two moving masses pulling on each other.
Title: Re: Home Brew Analog Computer System
Post by: GK on August 03, 2013, 03:08:34 pm
Such a problem may probably best be broken down into something simple and then built upon. Really don't have much time to devote to that now though! Thoroughly stuck into the computers hardware construction right now.

--------------------------------------------------------------------------------------------------------------------

BTW, could anyone suggest to me a more elegant way of converting a long integer (value ranging 0 to 360) into three seperate decimals (0 to 9) (hundreds [xh], tens [xt] and units [xu])? It should probably be obvious but it is getting close to 1am now.

I've added digital readouts (7-segment LED) for the variable angles of rotation to my 3-D projection unit. The code and hardware is done and operational, but I am now tidying it up the firmware and annotating.

Here is how I am currently doing it:

xh = abs(angle_of_rotation_X_axis / 100);
xt = angle_of_rotation_X_axis - (xh * 100);
xu = xt - 10 * (abs(xt / 10));
xt = abs(xt / 10);

Title: Re: Home Brew Analog Computer System
Post by: baljemmett on August 03, 2013, 05:54:22 pm
BTW, could anyone suggest to me a more elegant way of converting a long integer (value ranging 0 to 360) into three seperate decimals (0 to 9) (hundreds [xh], tens [xt] and units [xu])? It should probably be obvious but it is getting close to 1am now.

One approach is to convert to BCD, then mask off nibbles - if you happen to have a library function for that, or an app note with efficient code for your uC (I presume this is in the 'pretend pot' firmware?), that might be reasonably elegant.

Another way to avoid the hit of the division and multiplication is to loop over it:

Code: [Select]
`unsigned int input = 276;char hundreds = 0, tens = 0, units = 0;while (input >= 100){    hundreds++;    input -= 100;}while (input >= 10){    tens++;    input -= 10;}units = input;/* should now have hundreds = 2, tens = 7, units = 6 */`
Crude, but it's been effective for me in the past - faster than doing division with the library functions, at any rate.
Title: Re: Home Brew Analog Computer System
Post by: Chalky on August 03, 2013, 09:16:20 pm
BTW, could anyone suggest to me a more elegant way of converting a long integer (value ranging 0 to 360) into three seperate decimals (0 to 9) (hundreds [xh], tens [xt] and units [xu])? It should probably be obvious but it is getting close to 1am now.
Hi there, I don't know your language, am assuming some sort of embedded C, but if you have a MOD operator or function available then you could so an equivalent of this VB.NET code (works with either positive or negative angle, just returns absolute digit):
Sub Main()
Dim angle_of_rotation_X_axis As Long = -359
Dim xh As Short = GetDigit(angle_of_rotation_X_axis, 100)
Dim xt As Short = GetDigit(angle_of_rotation_X_axis, 10)
Dim xu As Short = GetDigit(angle_of_rotation_X_axis, 1)
End Sub

Function GetDigit(value As Long, unit As Integer) As Short
Return CShort(Int((Abs(value) Mod unit * 10) / unit))
End Function
Cheers.
Title: Re: Home Brew Analog Computer System
Post by: GK on August 05, 2013, 10:01:45 am
OK, thanks for the replies. The language is C; code for a PIC uC using "Custom computer services" (CCS) PIC-C compiler.
Yes, it for my "pretend pot" firmware of the 3-D projection unit. I've written a lot of PIC C firmware but I am far from a professional code writer. Here is the complete program. It's functional and I think relatively tidy, but those who program for a living may very well see things that could be done better.
Also attached is the complete schematic of the final unit.

Quote

//   3-D PROJECTION UNIT
//   DATE         AUGUST/2013
//   AUTHOR      Glen Kleinschmidt
// VERSION      1.0
// DEVICE      PIC16F874

// ROM used: 1533 (37%)
// Largest free fragment is 2048
// RAM used: 24 (13%) at main() level
// 131 (69%) worst case

#include <16f874.h>
#use delay(clock=4000000)
#use standard_io(A)
#use standard_io(B)
#use standard_io(C)
#use standard_io(D)
#FUSES HS,NOWDT,PUT,NOPROTECT,NOLVP,NOCPD,NOWRT,BROWNOUT

long int       angle_of_rotation_X_axis;
long int       angle_of_rotation_Y_axis;

int            data;
int            shift;

int            xh;
int            xt;
int            xu;

int            yh;
int            yt;
int            yu;

int            sine_X;
int            cosine_X;

int            sine_Y;
int            cosine_Y;

short int      polarity_sine_X;
short int      polarity_cosine_X;

short int      polarity_sine_Y;
short int      polarity_cosine_Y;

{
delay_us(100);                                           // Wait for ADC-input MUX to settle

delay_us(100);                                           // Wait for ADC-input MUX to settle

if (angle_of_rotation_X_axis > 360)                      // Limit X value (0-to-360 degrees)
angle_of_rotation_X_axis = 360;                          //

if (angle_of_rotation_Y_axis > 360)                      // Limit Y value (0-to-360 degrees)
angle_of_rotation_Y_axis = 360;                          //
}

seven_segment_display_decode(void)
{
int   sevenseg[10] = {2,158,36,12,152,72,192,30,0,24};   // Look-up table for 7-segment LED display decode

xh = abs(angle_of_rotation_X_axis / 100);                // Decode decimal values (hundreds, tens & units)
xt = angle_of_rotation_X_axis - (xh * 100);              // for X-axis angle-of-rotation digital display
xu = xt - 10 * (abs(xt / 10));                           //
xt = abs(xt / 10);                                       //

yh = abs(angle_of_rotation_Y_axis / 100);                // Decode decimal values (hundreds, tens & units)
yt = angle_of_rotation_Y_axis - (yh * 100);              // for Y-axis angle-of-rotation digital display
yu = yt - 10 * (abs(yt / 10));                           //
yt = abs(yt / 10);                                       //

xh = sevenseg[xh];                                       // 3-digit 7-segment decode for X-axis angle-of-rotation display
xt = sevenseg[xt];                                       //
xu = sevenseg[xu];                                       //

yh = sevenseg[yh];                                       // 3-digit 7-segment decode for Y-axis angle-of-rotation display
yt = sevenseg[yt];                                       //
yu = sevenseg[yu];                                       //

output_low(pin_D4);                                      // Digital display digit latch lines low
output_low(pin_D5);                                      //
output_low(pin_D6);                                      //
output_low(pin_D7);                                      //
output_low(pin_B0);                                      //

output_b(yu);                                            // Set "units" digit latch for Y-axis angle-of-rotation
output_high(pin_B0);                                     //
output_low(pin_B0);                                      //

output_b(yt);                                            // Set "tens" digit latch for Y-axis angle-of-rotation
output_high(pin_D7);                                     //
output_low(pin_D7);                                      //

output_b(yh);                                            // Set "hundreds" digit latch for Y-axis angle-of-rotation
output_high(pin_D6);                                     //
output_low(pin_D6);                                      //

output_b(xu);                                            // Set "units" digit latch for X-axis angle-of-rotation
output_high(pin_D5);                                     //
output_low(pin_D5);                                      //

output_b(xt);                                            // Set "tens" digit latch for X-axis angle-of-rotation
output_high(pin_D4);                                     //
output_low(pin_D4);                                      //

output_b(xh);                                            // Put "hundreds" digit on 7-segment data bus
}

sincostable(void)
{
int   sincos[91] = {0,  4,  8,  13, 17, 22, 26, 31, 35, 39,    // Look-up table for sine and cosine trig. function
44, 48, 53, 57, 61, 65, 70, 74, 78, 83,
87, 91, 95, 99, 103,107,111,115,119,123,
127,131,135,138,142,146,149,153,156,160,
163,167,170,173,177,180,183,186,189,192,
195,198,200,203,206,208,211,213,216,218,
220,223,225,227,229,231,232,234,236,238,
239,241,242,243,245,246,247,248,249,250,
251,251,252,253,253,254,254,254,254,254,
255};

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (angle_of_rotation_X_axis <= 360)                     // Read sine(x) table value for 271-to-360 degree segment
{                                                        // Inverting for this segment (0 = true)
sine_X = sincos[360 - angle_of_rotation_X_axis];      //
polarity_sine_X = 0;                                  //
}                                                        //

if (angle_of_rotation_X_axis <= 270)                     // Read sine(x) table value for 181-to-270 degree segment
{                                                        // Inverting for this segment (0 = true)
sine_X = sincos[angle_of_rotation_X_axis - 180];      //
polarity_sine_X = 0;                                  //
}                                                        //

if (angle_of_rotation_X_axis <= 180)                     // Read sine(x) table value for 91-to-180 degree segment
{                                                        // Non-inverting for this segment (1 = false)
sine_X = sincos[180 - angle_of_rotation_X_axis];      //
polarity_sine_X = 1;                                  //
}                                                        //

if (angle_of_rotation_X_axis <= 90)                      // Read sine(x) table value for 0-to-90 degree segment
{                                                        // Non-inverting for this segment (1 = false)
sine_X = sincos[angle_of_rotation_X_axis];            //
polarity_sine_X = 1;                                  //
}                                                        //

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (angle_of_rotation_X_axis <= 360)                     // Read cosine(x) table value for 271-to-360 degree segment
{                                                        // Non-inverting for this segment (1 = false)
cosine_X = sincos[angle_of_rotation_X_axis - 270];    //
polarity_cosine_X = 1;                                //
}                                                        //

if (angle_of_rotation_X_axis <= 270)                     // Read cosine(x) table value for 181-to-270 degree segment
{                                                        // Inverting for this segment (0 = true)
cosine_X = sincos[270 - angle_of_rotation_X_axis];    //
polarity_cosine_X = 0;                                //
}                                                        //

if (angle_of_rotation_X_axis <= 180)                     // Read cosine(x) table value for 91-to-180 degree segment
{                                                        // Inverting for this segment (0 = true)
cosine_X = sincos[angle_of_rotation_X_axis - 90];     //
polarity_cosine_X = 0;                                //
}                                                        //

if (angle_of_rotation_X_axis <= 90)                      // Read cosine(x) table value for 0-to-90 degree segment
{                                                        // Non-inverting for this segment (1 = false)
cosine_X = sincos[90 - angle_of_rotation_X_axis];     //
polarity_cosine_X = 1;                                //
}                                                        //

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (angle_of_rotation_Y_axis <= 360)                     // Read sine(y) table value for 271-to-360 degree segment
{                                                        // Inverting for this segment (0 = true)
sine_Y = sincos[360 - angle_of_rotation_Y_axis];      //
polarity_sine_Y = 0;                                  //
}                                                        //

if (angle_of_rotation_Y_axis <= 270)                     // Read sine(y) table value for 181-to-270 degree segment
{                                                        // Inverting for this segment (0 = true)
sine_Y = sincos[angle_of_rotation_Y_axis - 180];      //
polarity_sine_Y = 0;                                  //
}                                                        //

if (angle_of_rotation_Y_axis <= 180)                     // Read sine(y) table value for 91-to-180 degree segment
{                                                        // Non-inverting for this segment (1 = false)
sine_Y = sincos[180 - angle_of_rotation_Y_axis];      //
polarity_sine_Y = 1;                                  //
}                                                        //

if (angle_of_rotation_Y_axis <= 90)                      // Read sine(y) table value for 0-to-90 degree segment
{                                                        // Non-inverting for this segment (1 = false)
sine_Y = sincos[angle_of_rotation_Y_axis];            //
polarity_sine_Y = 1;                                  //
}                                                        //

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (angle_of_rotation_Y_axis <= 360)                     // Read cosine(y) table value for 271-to-360 degree segment
{                                                        // Non-inverting for this segment (1 = false)
cosine_Y = sincos[angle_of_rotation_Y_axis - 270];    //
polarity_cosine_Y = 1;                                //
}                                                        //

if (angle_of_rotation_Y_axis <= 270)                     // Read cosine(y) table value for 181-to-270 degree segment
{                                                        // Inverting for this segment (0 = true)
cosine_Y = sincos[270 - angle_of_rotation_Y_axis];    //
polarity_cosine_Y = 0;                                //
}                                                        //

if (angle_of_rotation_Y_axis <= 180)                     // Read cosine(y) table value for 91-to-180 degree segment
{                                                        // Inverting for this segment (0 = true)
cosine_Y = sincos[angle_of_rotation_Y_axis - 90];     //
polarity_cosine_Y = 0;                                //
}                                                        //

if (angle_of_rotation_Y_axis <= 90)                      // Read cosine(y) table value for 0-to-90 degree segment
{                                                        // Non-inverting for this segment (1 = false)
cosine_Y = sincos[90 - angle_of_rotation_Y_axis];     //
polarity_cosine_Y = 1;                                //
}                                                        //

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}

RDACclock(void)                           // Strobe digipot clock line
{
delay_us(100);
output_high(pin_C1);
delay_us(100);
output_low(pin_C1);
delay_us(100);
}

{
for (shift=0; shift<3; shift++)
{
RDACclock();
}
}

RDACdata(void)                            // Shift the 8 data bits to the digipot data line
{
for (shift=0; shift<8; shift++)
{
output_bit(pin_C2, bit_test(data, 7 - shift));
RDACclock();
}
}

set_digital_potentiometers(void)
{
output_low(pin_C0);                    // !CS low to initiate data transfer
data = cosine_Y;                       // Set data value to cosine_Y
RDACdata();                            // Send the 8 data bits
data = cosine_X;                       // Set data value to cosine_X
RDACdata();                            // Send the next daisy-chained 8 data bits
output_high(pin_C0);                   // !CS high to complete data transfer

delay_us(200);

output_low(pin_C0);                    // !CS low to initiate data transfer
data = sine_Y;                         // Set data value to sine_Y
RDACdata();                            // Send the 8 data bits
data = sine_X;                         // Set data value to sine_X
RDACdata();                            // Send the next daisy-chained 8 data bits
output_high(pin_C0);                   // !CS high to complete data transfer

delay_us(200);

output_low(pin_C0);                    // !CS low to initiate data transfer
data = sine_Y;                         // Set data value to sine_Y
RDACdata();                            // Send the 8 data bits
data = sine_X;                         // Set data value to sine_X
RDACdata();                            // Send the next daisy-chained 8 data bits
output_high(pin_C0);                   // !CS high to complete data transfer

delay_us(200);

output_low(pin_C0);                    // !CS low to initiate data transfer
data = cosine_Y;                       // Set data value to cosine_Y
RDACdata();                            // Send the 8 data bits
data = cosine_X;                       // Set data value to cosine_X
RDACdata();                            // Send the next daisy-chained 8 data bits
output_high(pin_C0);                   // !CS high to complete data transfer
}

set_sinecos_polarity(void)
{
output_bit(pin_D1, bit_test(polarity_sine_X,   0));   // Connect polarity status to sine(x) amplifiers
output_bit(pin_D2, bit_test(polarity_cosine_X, 0));   // Connect polarity status to cosine(x) amplifiers
output_bit(pin_C3, bit_test(polarity_sine_Y,   0));   // Connect polarity status to sine(y) amplifier
output_bit(pin_D0, bit_test(polarity_cosine_Y, 0));   // Connect polarity status to cosine(y) amplifier
}

MAIN()
{
SETUP_ADC_PORTS(RA0_RA1_ANALOG_RA3_RA2_REF);    // Define ADC inputs: RA0 & RA1=inputs, RA2= -Vref, RA3= +Vref)

loop:

seven_segment_display_decode();              // This routine sets the digital display of the angles of rotation
sincostable();                               // This routine sets the sine and cosine values for the digipots
set_digital_potentiometers();                // This routine programs the digipots (daisy-chained serial)
set_sinecos_polarity();                      // This routing sets the switchable inverting/non inverting
// amplifiers as required for 4-quadrant sine/cosine multiplication

goto loop;                                      // Play it again Sam!
}

Here is the completed unit:
(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=56636;image)

Title: Re: Home Brew Analog Computer System
Post by: GK on August 05, 2013, 10:11:05 am
Here is a video of the unit in action, with a full 360 degrees of variable rotation of both X and Y axes. Once again I am using my Rössler Attractor signal generator as the source. I'm currently laying out a PCB for that one will post up the circuit details when done.

3D projection unit Rossler Attractor (https://www.youtube.com/watch?v=Ln4cc6NWLIc#)
Title: Re: Home Brew Analog Computer System
Post by: mamalala on August 05, 2013, 03:52:15 pm
Hi Glen,

there are a few things you can do to improve the code wrt. the table-lookup, avoiding a lot of calculations and stuff. It is a tradeoff between ROM/FLASH usage for the table on one side, and codesize & execution speed on the other side. But since you are using the table a lot with lots of code calculating it, i guess the overall ROM/FLASH used will be less, plus a faster processing speed.

First, make the lookup-table 256 entries large. The native data size of the PIC is 8 bits, using that as table size allows for some really fast methods for reversing the lookup direction and inverting the value.

Then, the PIC has a 10-bit ADC. Use that! This will make things even simpler. To store the result, the PIC uses two registers, ADRESL and ADRESH. Configure the ADC to give you a right-justified result. (register ADCON1 bit ADFM set to 1). This will result in the lower 8 bits of the readout to be stored in ADRESL, and the upper 2 bits into the lower 2 bits of ADRESH.

The effect of this is that in ADRESH you get only the value 0, 1, 2 or 3 over the full range. Now, 4 values, 4 quadrants, a table with 256 entries and a ADRESL of 8 bits... I guess you can already start to see where this goes.

Now about how to access it using simple methods and the ADRESH bits of the result. The lookup table contains the first 90° of a sinewave here. If you invert the index value, you read that table backwards. That way you now have 180°. To decide wether to read forwards or backwwards, you use bit 0 of ADRESH. If it is set, you simply invert the index into the table.

In code this would look something like this:

Code: [Select]
`if (ADRESH & 0x01){    result = sintab[~ADRESL];}else{    result = sintab[ADRESL];}`
Now for the inverting of the read value of the lookup. You use bit 1 of ADRESL to do that. If it set to 1, you simply invert the value you just read from the lookup-table. Again, in code this looks like:

Code: [Select]
`if (ADRESH & 0x02){    result = ~result;}`
OK, this was just for sine lookup from the table. The bits of ADRESH for those 4 quadrants in sequence look like this:

Code: [Select]
`00000000 - first sine quadrant00000001 - second sine quadrant00000010 - third sine quadrant00000011 - fourth sine quadrant`
Which is, of course, also the same sequence you get in ADRESH in 10 bit ADC mode when going from 0 to maximum.

Code: [Select]
`00000001000000100000001100000100`
This is OK because only the lowest two bits are evaluated anyways. Now, if you want to have the full sine or cosine inverted, you simply add another 2 to ADRESH. Doing all the above allows you to write a single routine that does this. With a little more bit-magic the polarity bits that you use to control the actual output can also be set. You can also combine those bits into a single byte instead of spreading it over four int's. There is the nifty thing of #define, which allows you to define things with a name.

Attached is a textfile with some ad-hoc example code of all that with lots of comments. Of course not tested for bugs, just to show you the overall process. Hope that helps. If you have any questions, let me know.

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: mamalala on August 05, 2013, 04:56:11 pm
What i forgot to mention. In my example i do invert the readout value _and_ set the negative-polarity bit. I just assumed that when you toggle the output pin that the DAC output is inverted after the OpAmps, that is 5V input becomes 0V and 0V input becomes -5V output when negative, while for the positive half 5V in becomes 5V out, and 0V in becomes 0V out (just as an example). If that is not the case, simple comment out the "result = ~result" line there.

Personally i would prefer the first method. This ensures that the generated quadrants are symetrical. And at 8 bits for one quadrant you have a resolution of roundabout 0.35°, so the small "error" of not having complete 0° or 90° is just roundabout +/- 0.175°.

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: woodchips on August 05, 2013, 06:42:32 pm
Just got a copy of the Korn Electronic and Hybrid Analogue Computers book. I like it. Dates from 1963 so right at the very end of both designing with valves and analogue computers, a few years later both were history. And all those ECC83s that were junked!

What is really nice is that the book can be read as a guide to design, there is lots of useful and interesting information. If you like the MIT Rad Lab books then you will like this. So many, most, text books are, quite frankly, boring and a chore to read, but every now and then a real gem pops up. Others are ones by Scroggie, Cathode Ray of Wireless World, Steinmetz from the early 1900s.

Thanks for the suggestion.

Title: Re: Home Brew Analog Computer System
Post by: GK on August 06, 2013, 02:37:52 am
What i forgot to mention. In my example i do invert the readout value _and_ set the negative-polarity bit. I just assumed that when you toggle the output pin that the DAC output is inverted after the OpAmps, that is 5V input becomes 0V and 0V input becomes -5V output when negative, while for the positive half 5V in becomes 5V out, and 0V in becomes 0V out (just as an example). If that is not the case, simple comment out the "result = ~result" line there.

Personally i would prefer the first method. This ensures that the generated quadrants are symetrical. And at 8 bits for one quadrant you have a resolution of roundabout 0.35°, so the small "error" of not having complete 0° or 90° is just roundabout +/- 0.175°.

Greetings,

Chris

Hi Chris,

Thanks for going through this in such detail - it's appreciated. I'd like to implement your recommendations and see how it compares to the current code, speed wise. However the electronic/firmware side of the project has been put aside for now as I work on installing and wiring it into its instrument case. Give me several days to get back to revising the code.

Title: Re: Home Brew Analog Computer System
Post by: GK on August 06, 2013, 02:57:34 am
Just got a copy of the Korn Electronic and Hybrid Analogue Computers book. I like it. Dates from 1963 so right at the very end of both designing with valves and analogue computers, a few years later both were history. And all those ECC83s that were junked!

What is really nice is that the book can be read as a guide to design, there is lots of useful and interesting information. If you like the MIT Rad Lab books then you will like this. So many, most, text books are, quite frankly, boring and a chore to read, but every now and then a real gem pops up. Others are ones by Scroggie, Cathode Ray of Wireless World, Steinmetz from the early 1900s.

Thanks for the suggestion.

If you liked the Korn & Korn book, you'd also enjoy Design Fundamentals of Analog Computer Components by R. M. Howe. That one is even more of a "design guide" than K&K. However, unlike K&K which delves into transistor circuit design as well, it deals exclusively in tube circuitry.

BTW, have not forgotten about those pots, just have some annoyances to sort out ATM with my PayPal account.

Title: Re: Home Brew Analog Computer System
Post by: woodchips on August 07, 2013, 09:42:32 pm
Thanks, have to get the Howe book now as well!

If you are still looking for equations like the Lorenz, have you seen the Cornu's spiral? Beyond me but looked a pretty picture in the book, Slater & Frank - Electromagnetism.

No problems with the sine cosine pots, also have some resolvers as well.
Title: Re: Home Brew Analog Computer System
Post by: mamalala on August 07, 2013, 09:56:51 pm
Hi Chris,

Thanks for going through this in such detail - it's appreciated. I'd like to implement your recommendations and see how it compares to the current code, speed wise. However the electronic/firmware side of the project has been put aside for now as I work on installing and wiring it into its instrument case. Give me several days to get back to revising the code.

No problem, you're welcome. Just as a side-note, if you plan to use a lot of table lookups in the future, you might want to consider to use PIC18 instead of the PIC16 series chips. They allow a more direct access to the program memory especially for stuff like tables, strings, etc.

On the PIC16, what actually happens is that you load the index in the W register and then call a subroutine. That will use the value in the W register to calculate the target address of a coputed goto, then jumps to that location, which in turn returns the actual value back in the W register.

On PIC18 you have a dedicated set of registers to do that. You simply load the index value into those registers, and can immediately read back the result from another register. Much faster, and allows to keep large tables simple as well (PIC16 would need some extra code to access tables larger than 256 entries).

It also has registers to directly access arrays and stuff in RAM. And all of those (for RAM and ROM) have various registers that define how the access happens. One register reads without changing the address pointed to. Another one increases the address, yet another one decreases it. And then there is one that allows you to access the address you set plus/minus an offset given by what is currently in W.

Makes working with memory blocks and tables _much_ more performant.

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: GK on August 15, 2013, 01:48:55 pm
If you are still looking for equations like the Lorenz, have you seen the Cornu's spiral? Beyond me but looked a pretty picture in the book, Slater & Frank - Electromagnetism.

Looks interesting, but not chaotic though. in addition to the Rossler Attractor and the Lorenz Attractor, I have also found "Chua's circuit":

http://en.wikipedia.org/wiki/Chua%27s_circuit (http://en.wikipedia.org/wiki/Chua%27s_circuit)

I will have to get an analog simulation of that up and running as well, of course.

Title: Re: Home Brew Analog Computer System
Post by: GK on August 15, 2013, 01:56:08 pm
Hi Chris,

Thanks for going through this in such detail - it's appreciated. I'd like to implement your recommendations and see how it compares to the current code, speed wise. However the electronic/firmware side of the project has been put aside for now as I work on installing and wiring it into its instrument case. Give me several days to get back to revising the code.

No problem, you're welcome. Just as a side-note, if you plan to use a lot of table lookups in the future, you might want to consider to use PIC18 instead of the PIC16 series chips. They allow a more direct access to the program memory especially for stuff like tables, strings, etc.

On the PIC16, what actually happens is that you load the index in the W register and then call a subroutine. That will use the value in the W register to calculate the target address of a coputed goto, then jumps to that location, which in turn returns the actual value back in the W register.

On PIC18 you have a dedicated set of registers to do that. You simply load the index value into those registers, and can immediately read back the result from another register. Much faster, and allows to keep large tables simple as well (PIC16 would need some extra code to access tables larger than 256 entries).

It also has registers to directly access arrays and stuff in RAM. And all of those (for RAM and ROM) have various registers that define how the access happens. One register reads without changing the address pointed to. Another one increases the address, yet another one decreases it. And then there is one that allows you to access the address you set plus/minus an offset given by what is currently in W.

Makes working with memory blocks and tables _much_ more performant.

Greetings,

Chris

OK, thanks for the pointers! I'm currently using a ~ 10 year old version of the CCS compiler, so am currently restricted to a ~10 year old list of supported devices. However I'll soon be upgrading to the latest and greatest version and will also be looking for new candidates for my "preferred devices" inventory. I've been using the 16F87X series for a long time now but it's a bit old hat now and time to move on.

Title: Re: Home Brew Analog Computer System
Post by: GK on August 15, 2013, 02:03:43 pm
Finally, here is the completed 3-D Projection unit.

The red and white potentiometer knobs under the digital displays are the coarse and fine X axis and Y axis angle-of-rotation / perspective control knobs respectively. The X, Y and Z signal inputs all have identical 1/2/5 input attenuators and AC/GND/DC switching. Signal handling it up to 100V. Control legends are printed onto a laminated transparency. The two BNC's under the power switch are the horizontal and vertical drive signal outputs for the display (typically an X-Y oscilloscope).

Title: Re: Home Brew Analog Computer System
Post by: baljemmett on August 15, 2013, 10:42:20 pm
Finally, here is the completed 3-D Projection unit.

That's a really nice looking build - many thumbs up, sir!
Title: Re: Home Brew Analog Computer System
Post by: mamalala on August 16, 2013, 01:31:33 am
OK, thanks for the pointers! I'm currently using a ~ 10 year old version of the CCS compiler, so am currently restricted to a ~10 year old list of supported devices. However I'll soon be upgrading to the latest and greatest version and will also be looking for new candidates for my "preferred devices" inventory. I've been using the 16F87X series for a long time now but it's a bit old hat now and time to move on.

Microchip's C18 does a nice job, and is still available if you look around on the Micochip website. Combine that with MPLab or MPLabX and you are good to go.

Another alternative is SDCC. It may not have all the "chips" by default, but adding additional ones is just a matter of providing the right include file (after all, PIC16 are the same no matter what, just theperipherials are different, and the same applies for PIC18 parts).

Here i am happily using C18 and MPLabX on Linux, before i used SDCC for my own projects and MPLab in a virtual Windows machine, but again with C18.

MPLabX requires Java, and that makes it rather sloe, unless you have a good machine.

Other than that, great work with your analogue computer! I wish i had the time and funds for that (the former would be not that much of a problem, but the latter definitively is....)

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: GK on November 26, 2013, 08:10:44 am
OK...... Have had a bit of a break from this project due to other stuff getting in the way, but am about to make some major construction progress in the near future as the coming Friday is my last day at work for the year, after which I'll be able to work on this more or less full time. The integrator (30), analogue multiplier (10) and variable diode function generator chassis's are well under way. However in the meanwhile.........

For the digital section of this "hybrid" computer project, I'm developing a CRT readout device that will simultaneously display the status of the computers counters and registers. In keeping with the old school analog pretext, and inspired by the clever Fourier synthesis method described in this old paper:

http://www.nixiebunny.com/crtgen/crtgen.html (http://www.nixiebunny.com/crtgen/crtgen.html)

I've decided to base the design roughly on the same technique. With modern components and design techniques the unit will be much easier to implement than it was in 1958. I intend to make a 16-charachter alpha numeric ROM to reproduce the numbers 0 through 9 and the upper case letters A through F. This will permit Hexadecimal readouts of the computers counters and registers. The ROM will simply be a bank of 16 pairs of (op-amp based) summing amplifiers each with a unique resistor matrix for defining the Fourier composition of each character - much easier that winding a few dozen toroidal transformers!

Some pics are attached of a preliminary design concept/evaluation conducted in SPICE. The harmonic generator will simply consist of a 5-stage binary ripple counter to produce the fundamental and harmonic frequency components. The sine fundamental and harmonic functions are produced by filtering the squarewaves with simple resistance-tuned multiple-feedback bandpass filters and the -cosine terms for each sine function are produced by simple resistance-tuned all-pass filters acting as unity gain 90 degree phase shifters. Not stuffing around with crusty inductors or trimmer capacitors here. Unlike in the 1958 design paper with its "shock-excited" resonant circuits, oscillation will be continuous with the gating and sequencing pulses/control signals derived appropriately from the harmonic generator clock source and ripple counters.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=68676;image)
(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=68678;image)

The numbers 0 through 7 shown in the picture above were produced using the Fourier coefficient values given in the tables of Figure 3 in the linked-to paper. They're a bit wonky and could do with some tweaking, but that is good enough for now. In SPICE I simply used behavioral voltage sources to generate the X and Y deflection signals, summing the Fourier components with the polarities and amplitudes for each numeral as required. The LTspice plotter can't to Z-modulation, so to get a usable display I had to fudge in some vertical deflection "blanking".

The article gives an explanation of the graphical method (Figure 1) for manually drawing out the character on Cartesian coordinates and then working out and plotting the X and Y waveforms required for reproduce the character. This is quite simple and straight forward enough, but the article does not then go on to explain or detail the "purely graphical" method for manually computing the Fourier components of the produced X and Y waveforms - though a reference is given: T.C. Blow, Graphical Fourier Analysis, Electronics, p194, Dec. 1947. Anyone have a stash of old copies of Electronics magazine?? I need to further compute the Fourier components for the numbers 8 and 9 and the letter A through F. Any other reference provided or insight into the technique would be appreciated!
Title: Re: Home Brew Analog Computer System
Post by: zapta on November 26, 2013, 09:21:28 pm
..... I've been working like a man possessed to design and build my own solid state hybrid digital/analog computer to modestly put virtually all of those extinct commercial offerings to shame (complexity, size, precision, etc).

I wonder why there are still commercial analog computers these days that digitals computers are so cheap and powerful.  Can you give a few examples where they have an advantage over digital?

Years ago I used to maintain an analog computer. It was a Philips unit with a CRT that used to display underwater sound wave propagation based on the vertical thermal profile of the water. I had billion of potentiometers on the front and zillions trim pots inside. Calibrating it was a nightmare and it needed 24h to stabilize before being used (it was 100% solid state).
Title: Re: Home Brew Analog Computer System
Post by: Dave Turner on November 26, 2013, 10:05:55 pm
As a relative newcomer to the EEVblog forum I've only just come across this thread; much of the day has been lost reading it. It has brought back many of my memories, particularly as earlier this year I was forced due to circumstances to skip, almost overnight, ALL of my magazine collections of Practical Wireless, Practical Electronics etc. etc. dating from the early sixties through to the early nineties. Including those editions about  the Analogue Computer mentioned at the start of this thread. (Several thousand magazines).

In 1966 I joined the newly formed computer club at school and wrote my first "Hello World" equivalent in Algol via coding sheets and punched cards to be run on the mainframe at Keele University. Wonderful a 2 week development cycle.

To the point of this thread a book book given to me then was a source of inspiration some of which is relevant. Have a look at http://books.google.co.uk/books?id=aQ84AAAAIAAJ&printsec=frontcover&dq=cambridge+university+press+we+built+our+own+computers&hl=en&sa=X&ei=YvOUUvvPBuSV7AbwsoCIDw&ved=0CD0Q6AEwAA#v=onepage&q=cambridge%20university%20press%20we%20built%20our%20own%20computers&f=false (http://books.google.co.uk/books?id=aQ84AAAAIAAJ&printsec=frontcover&dq=cambridge+university+press+we+built+our+own+computers&hl=en&sa=X&ei=YvOUUvvPBuSV7AbwsoCIDw&ved=0CD0Q6AEwAA#v=onepage&q=cambridge%20university%20press%20we%20built%20our%20own%20computers&f=false)

I may be missing something but why would you need to use the ABS() function when using integer arithmetic? I don't know whether the compiler is clever enough to recognize this or not; but if not you could save computational time.

Please keep this project going with as many updates as are reasonably possible. Under many circumstances, once set up, an Analogue computer will solve a problem faster in real time than a Digital computer. With the preponderance of digital circuitry now, this is often forgotten. (Occam's Razor)
Title: Re: Home Brew Analog Computer System
Post by: GK on November 27, 2013, 08:42:31 am
..... I've been working like a man possessed to design and build my own solid state hybrid digital/analog computer to modestly put virtually all of those extinct commercial offerings to shame (complexity, size, precision, etc).

I wonder why there are still commercial analog computers these days that digitals computers are so cheap and powerful.  Can you give a few examples where they have an advantage over digital?

I'm not aware of any analog computer model still being commercially made. An analog computer could still be useful in the electronics lab for the study of control theory fundamentals, and that is where their application lingered on the longest.
Title: Re: Home Brew Analog Computer System
Post by: GK on November 27, 2013, 11:31:58 pm
As a relative newcomer to the EEVblog forum I've only just come across this thread; much of the day has been lost reading it. It has brought back many of my memories, particularly as earlier this year I was forced due to circumstances to skip, almost overnight, ALL of my magazine collections of Practical Wireless, Practical Electronics etc. etc. dating from the early sixties through to the early nineties. Including those editions about  the Analogue Computer mentioned at the start of this thread. (Several thousand magazines).

Hi,

Thanks for the interest. Pitty you had to turf all those old magazines! Although it doesn't contain much at the moment, I have a website ( http://www.glensstuff.com (http://www.glensstuff.com) ) that will eventually have a full write up and all technical details of the project. I've made a lot of progress with the construction so far, but no one section/chassis is fully complete at this time, which is why the presentation hasn't much happened yet.

Title: Re: Home Brew Analog Computer System
Post by: GK on November 28, 2013, 11:42:31 am
The article gives an explanation of the graphical method (Figure 1) for manually drawing out the character on Cartesian coordinates and then working out and plotting the X and Y waveforms required for reproduce the character. This is quite simple and straight forward enough, but the article does not then go on to explain or detail the "purely graphical" method for manually computing the Fourier components of the produced X and Y waveforms - though a reference is given: T.C. Blow, Graphical Fourier Analysis, Electronics, p194, Dec. 1947. Anyone have a stash of old copies of Electronics magazine?? I need to further compute the Fourier components for the numbers 8 and 9 and the letter A through F. Any other reference provided or insight into the technique would be appreciated!

Soooo, there isn't anyone here skilled in the art of graphical Fourier analysis then?? Our state library doesn't have copies of the periodical Electronics dating as far back as 1947. However I am working my way around the issue and here is how far I got this evening. I now have an Excel spread sheet that will plot the waveform from the entered Fourier coefficient values (5 harmonics, sine and cosine terms). The idea is that I will draw out my characters on graph paper, as described in that article and pictured Fig.1, to work out the coordinate values for the X and Y waveforms require to reproduce the alpha or numeric character on the CRT display.

I will then enter the coordinate values for each waveform in a special reserved column in my spread sheet, which will then plot them up onto the same chart as the waveform generated by the Fourier coefficients. I will then manually alter the Fourier coefficients by trial and error until the Fourier coefficient generated waveform is a best fit to the desired waveform. At that point I will have my required Fourier coefficient values.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=68925;image)
Title: Re: Home Brew Analog Computer System
Post by: ElectroIrradiator on November 28, 2013, 12:48:53 pm
Soooo, there isn't anyone here skilled in the art of graphical Fourier analysis then??

Surely you are joking? No-one is insane enough to do a Fourier analysis by hand today, as we have these things called computers. There is no magic involved in the 'graphical method', it is just a tedious manual method of doing what your spreadsheet does better and faster. Guesstimate a coefficient for your target graph by using transparent overlays/Mk. I eyeball/experience, calculate difference and scale 'error graph', rinse/repeat for higher order coefficients.
Title: Re: Home Brew Analog Computer System
Post by: GK on November 28, 2013, 01:28:07 pm
Soooo, there isn't anyone here skilled in the art of graphical Fourier analysis then??

Surely you are joking? No-one is insane enough to do a Fourier analysis by hand today, as we have these things called computers.

Yes, I am aware of these things called computers, I am sitting in front of one right now. I had no intention of doing the Fourier analysis by hand on paper, I was simply interested in the old methods as they may give some insight into how to more speedily estimate and manually optimize the coefficients with the aid of SPICE and/or a spreadsheet.

Title: Re: Home Brew Analog Computer System
Post by: GK on November 30, 2013, 04:27:11 am
Well this isn't easy. Due to the complex way the Fourier components interact in the generation of a waveform, simply tweaking each coefficient one after the other and then back again for a best fit to the desired function just doesn't result in a satisfactory outcome. Attached below is my first attempt - to synthesize the X deflection waveform required to generate the figure 9. A more complex methodology for tweaking the coefficients will be required here to arrive at a satisfactory fit.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=69152;image)
Title: Re: Home Brew Analog Computer System
Post by: zapta on November 30, 2013, 05:26:19 am
Well this isn't easy. Due to the complex way the Fourier components interact in the generation of a waveform, simply tweaking each coefficient one after the other and then back again for a best fit to the desired function just doesn't result in a satisfactory outcome.

Can you use Excel solver or other solver to find the optimal coefficients?  E.g. define some distance function and let the solver minimize it.
Title: Re: Home Brew Analog Computer System
Post by: GK on November 30, 2013, 07:44:39 am
I really don't know. That's well beyond my familiarity with Excel right now.
Title: Re: Home Brew Analog Computer System
Post by: jahonen on November 30, 2013, 07:51:06 am
I think since you have only few coefficients to determine, it could be feasible to just use discretized Fourier analysis to find out the required coefficients. That is easily done by basically multiplying the desired signal against sine and cosine terms, and then summing the results and I think that the results should be multiplied by the time step used (dt).

Regards,
Janne
Title: Re: Home Brew Analog Computer System
Post by: GK on November 30, 2013, 12:23:14 pm
Hmmm.... I half follow, but wouldn't I need a great deal more data points for my desired waveform to do any kind of moderately accurate DFT calculation on it? At the moment the waveforms are derived from my hand-drawn figures on graph paper. The coordinate values are entered into the spreadsheet and the smoothing function of Excels chart plotter gives a smooth, continuous function. Is it in some way possible to have Excels chart plotter output "smoothed" functions with the n-th fold increase in data points to a data file rather than a chart diagram?

I think my spreadsheet as is would be perfectly adequate if only I could get my hands on that cited Dec. 1947 issue of Electronics. Those guys back in 1958 did the same Fourier synthesis with impressive/adequate accuracy with pen and paper! There is obviously some kind of (most likely quite simple and straightforward) systematic methodology required in adjusting the coefficient values to eventually arrive at the desired result. Googling for hits on "Graphical Fourier Analysis" has been less than enlightening so far. The knowledge seems to be arcane now.

Title: Re: Home Brew Analog Computer System
Post by: GK on November 30, 2013, 12:33:27 pm
In case anyone wants to have a play, my spreadsheet is attached. The aim of the game is to tweak the coefficient values in orange cells B3 through K3 until the blue synthesized waveform plotted on the chart matches the desired function plotted in pink. Have fun!  ;D
Title: Re: Home Brew Analog Computer System
Post by: jahonen on November 30, 2013, 02:06:01 pm
I did give it a go. I think you only need so much samples so that you don't alias. Then just calculate the Fourier integrals piecewise numerically. That is the approach I did here. FFT is optimized for speed, but I don't think that is the main objective here. For best results, the angle spacing should be uniform, or the difference in angle taken into account for each interval. I did just enter a experimental number of 0.05 which I used to scale down the sums so that results were in the same ballpark you had.

Result seems to be vertically offset because I didn't immediately find DC term. I leave it for your judgement if it is any better. Less work for sure.

Regards,
Janne
Title: Re: Home Brew Analog Computer System
Post by: GK on November 30, 2013, 02:55:40 pm
Fantastic. Thanks! I really had no idea that an DFT could be done so effectively on my crude and limited set of data points. It's > 1am and I'm new to this Fourier transformation stuff, but how does one go about computing the DC term? This was an issue in that 1958 character generator design, as the toroidal transformers with the series-connected secondaries used to sum the sin and cos terms could not of course pass the DC terms. This caused some wonkyness in the on-screen positioning of some characters relative to the others. However I won't have that issue with my DC-coupled op-amp based summers, so if I can compute the DC terms for each waveform I'll be able to generate an all over better and more accurate display.

Title: Re: Home Brew Analog Computer System
Post by: jahonen on November 30, 2013, 03:01:06 pm
This calculation which takes account non-uniform spacing of sampling points could be done manually relatively easily with trapezoid rule as follows:

- Take an angle a1 and a2, with values x1 and x2. Angles must be in radians. "Sampling" interval for angle should be so dense that x1 and x2 is not aliased. Function should be periodic so that first point is equal to the last point.
- Calculate c11=sin(n*a1), c12=sin(n*a2), c13=cos(n*a1), c14=cos(n*a2), where n is desired harmonic number
- Calculate piece area with trapezoid rule as (x1*c11+x2*c12)/2*(a2-a1) repeat same for cosine term c13 and c14. a2 and a1 should be so that a2 > a1.
- Now make a1=a2 and x1=x2, get new values for a2 and x2. Repeat until all points are calculated.
- Sum all sine and cosine areas together, that (should) give sin/cos coefficients for harmonic n

DC term is just average of your data points, i.e. coefficients at zeroth harmonic.

I don't know if that explanation is of any help but that approach should work.

Regards,
Janne
Title: Re: Home Brew Analog Computer System
Post by: GK on November 30, 2013, 11:37:13 pm
Yes, your explanation is very helpful, thanks a lot. Now that the synthesis issue is essentially overcome I can get started on bread boarding the prototype.
Title: Re: Home Brew Analog Computer System
Post by: GK on December 01, 2013, 03:10:12 am
Apologies in advance for the potentially daft question, but that the DC component should be the average of my data points is obvious, but how do I incorporate that computed DC term into the computation of the Fourier coefficients such that the resultant waveform synthesized from said coefficients actually incorporates the necessary DC component?

EDIT: Duh! I just realised that is of course not possible. I will have to incorporate the DC terms for each characters X and Y waveform separately into my "ROM" with a settable DC-offset for each respective coefficient summing amplifier. That's simple and straightforward enough anyhow.

Title: Re: Home Brew Analog Computer System
Post by: GK on December 01, 2013, 05:20:22 am
Well here is the result - from the hand drawn character and listed X and Y data points on graph paper, through to the eventual synthesis of the waveforms in the SPICE circuit simulation, using the Fourier coefficients generated by the Excel spreadsheet DFT.

Is that good or what?   :D

The unit I have designed will essential be a 16 (column) by 8 (row) character screen display. I'll post up further details when I have the prototype up and running with some squiggles drawn out on the CRT.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=69268;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on December 01, 2013, 09:15:55 am
Figure 8!

Even so the figure 8 could return a closed function by itself, the system has a blanked "retrace" interval, so closed function characters require the retrace interval tacked on as an appendage.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=69286;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on December 07, 2013, 01:44:19 pm
2) drill with a small hole (2mm) or with a center Drill that can be purchased at any  machine tools shop.

You mean:

?

Used them many times in the tailstock on the lathe but never in a drill press. Instead of using one to drill a small diameter pilot hole (the larger twist drill will still walk to a degree), how about using a larger diameter one to drill the hole in its entirety?

Here is how the panel drilling has worked out using a 5/16 center drill for the 4mm banana sockets. 120 holes drilled so far, a couple of thousand more to go.......... If one looks really closely some wonkyness can be perceived in the hole positions, but it's about as good as I think I should expect for a manual drill-press job.

These are the front/patch panels for the computers 30 integrators. The drilling template(s) are generated in Protel, printed and then sticky taped to the blank panels. After that it's just a tedious process of center punching and then drilling. Panels are 3mm thick, 19" relay rack by Hammond.
Title: Re: Home Brew Analog Computer System
Post by: GK on December 13, 2013, 08:02:27 am
Quote
Quote from: GK on November 26, 2013, 07:10:44 PM
The harmonic generator will simply consist of a 5-stage binary ripple counter to produce the fundamental and harmonic frequency components. The sine fundamental and harmonic functions are produced by filtering the squarewaves with simple resistance-tuned multiple-feedback bandpass filters and the -cosine terms for each sine function are produced by simple resistance-tuned all-pass filters acting as unity gain 90 degree phase shifters. Not stuffing around with crusty inductors or trimmer capacitors here. Unlike in the 1958 design paper with its "shock-excited" resonant circuits, oscillation will be continuous with the gating and sequencing pulses/control signals derived appropriately from the harmonic generator clock source and ripple counters.

Well that was a bit of an oversimplification. To generate the fundamental (20 kHz) and the 2nd through to the 5th harmonic reference frequencies something a little more complicated than a 5-stage ripple counter was of course required due to the non-integer division. Here is the circuit I knocked up on breadboard this afternoon to do the job, out of parts I had at hand.
The fundamental and the 2nd, 4th and 5th harmonics are all derived from an 8MHz master clock by digital division. The fundamental, 2nd and 4th harmonic are generated by three stages of ripple counting while the 5th harmonic comes from a separate free-running divider (IC2) locked into synchronization by the 20kHz fundamental waveform.
The trickiest part was the 3rd harmonic (60kHz), which cannot be derived from the 8MHz master clock by integer division (8M/60k = 133.33). It is no good generating the 3rd harmonic from a separate master clock (say 6MHz) as it then won't be phase coherent with the fundamental. The 3rd harmonic is generated by a PLL acting as a x3 multiplier, using the fundamental as a reference.
All generated signals have the necessary locked-in phase relationships, as all harmonics have a coincident negative going transition with the fundamental. Now I just have to knock up the tuned MFB filters that will turn the squarewaves into sinewaves (while maintaining the phase relationships), and the all-pass filters to produce the cosine reference terms. Then it will be onto assembling the Fourier character ROM..... and then the multiplexing, addressable screen location memory and deflection logic...............

Put my Type 551's "dual beams" to good use...............

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70725;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on December 13, 2013, 02:56:37 pm
I'm doing the final machine work to the front panels now (integrators panels only), but before I can complete the job and start assembling the individual 19" cases I have to figure out a convenient way to electrically connect (when mounted in the rack) each front panel to the other.

Back in the good old days analog computers were made with big, heavy power supplies with heavy, low impedance bus bars for the ground distribution as powering racks of various analog modules from common rails inevitably meant that the signal ground and power ground return was essentially one. Big heavy bus bars for the ground with low resistance were therefore mandatory to keep interference/interaction between the modules to a minimum.
I've worked around this problem by instead incorporating a separate power supply into each rack case, to power the (standardised ten) analog modules in that same case only.
Each front panel will have a single star grounding point to which all the module grounds and the PSU ground terminate. Power supply ground return currents are therefore kept inside the case and no power supply ground return currents share the signal ground termination between rack cases. This means that the entire front (patch) panel acts as a low impedance signal ground plane (and to a lesser extent the equipment cases and the actual relay rack(s) itself.

However I don't think that I can rely upon the mounting hardware holding each chassis into the relay rack to behave as a solid earth connection between the panel and the rack itself, thus ensuring that all (grounded) chassis panels are electrically connected together. After all the panels are painted, as is the rack, and the mounting bolts screw into (otherwise loosely fitted) cage nuts.

At the moment I am considering fitting a 4mm nutsert (press fitted captive nuts) into each of the four corners of each panel, so that each chassis panel (after fitting to the rack) can be linked to the ones directly above and below it with a total of four short (a couple of cm) earth braids having a lug at each end.
That will work but its probably not the most elegant solution. I am open to alternative suggestions. The design also needs to remain modular and not all chassis panels will be 3U.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70653;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on December 14, 2013, 08:34:06 am
Now I just have to knock up the tuned MFB filters that will turn the squarewaves into sinewaves (while maintaining the phase relationships), and the all-pass filters to produce the cosine reference terms. Then it will be onto assembling the Fourier character ROM..... and then the multiplexing, addressable screen location memory and deflection logic...............

First part done. Here are reference signals sin wt, sin 2wt, sin 3wt, sin 4wt and sin 5wt, as produced from the squarewaves by the MFB filters

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70719;image)

And here is -cos wt, -cos 2wt, -cos 3wt, -cos 4wt and -cos 5wt, as produced from the sine terms by the all-pass filters.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70721;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70723;image)

The circuit (repeat 5 times):

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70727;image)
Title: Re: Home Brew Analog Computer System
Post by: notsob on December 14, 2013, 11:19:25 am
For your 4mm shorting - perhaps use these shorting bars - http://au.element14.com/pomona/4115/shorting-bar-for-binding-posts/dp/1538396 (http://au.element14.com/pomona/4115/shorting-bar-for-binding-posts/dp/1538396)

or this is available but I would use a bolted on link - http://www.newark.com/pomona/5145/double-banana-plug-shorting-bar/dp/94F940 (http://www.newark.com/pomona/5145/double-banana-plug-shorting-bar/dp/94F940)
Title: Re: Home Brew Analog Computer System
Post by: GK on December 14, 2013, 01:19:35 pm
\$55 for a pack of 10 for those shorting bars is a little steep! Element 14 put really ridiculous prices on many things that sell in low volumes.
Title: Re: Home Brew Analog Computer System
Post by: notsob on December 14, 2013, 10:24:45 pm
Try x-on in perth  http://www.x-on.com.au (http://www.x-on.com.au)

their price for pomona 4115's is a little cheaper [ stil f&*^\$ing expensive for a bit of plated metal ]
Title: Re: Home Brew Analog Computer System
Post by: GK on December 15, 2013, 12:52:51 pm
My very first character, synthesised entirely in analog and discrete logic hardware. Now it's just a matter of constructing the multiplexing and screen RAM addressing/reading logic and finishing the tedious job of the Fourier coefficient character ROM. Then I'll have a 16 character per line by 8 line video text display.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70857;image)
Title: Re: Home Brew Analog Computer System
Post by: c4757p on December 15, 2013, 01:33:57 pm
That is some real commitment to this whole "analog" thing. :-+ I'm pretty sure I'd have just done a raster readout. You've executed it very nicely. That looks easily as good as the "perfect" SPICE plots.

And mildly off topic, but the traces all lined up nicely on the beautiful blue screen of your 551 is a work of art by itself.

Damn - the more you make me drool, the more I'm going to want to play around with this myself, and then I won't get anything done! :)
Title: Re: Home Brew Analog Computer System
Post by: Odysseus on December 15, 2013, 08:54:42 pm
It's possible to blank a trace in LTSpice by forcing a trace to become "invalid", i.e. by computing the logarithm or square root of a negative value.  However, this only works by doing the math in the waveform viewer, not in an arbitrary source.

An easy way to do this is to generate a blanking signal with a high value of 10V and a low value of -1V (or -anything).  Then in the waveform viewer, multiply your signal of interest by log10(V(blank)).
Title: Re: Home Brew Analog Computer System
Post by: GK on December 16, 2013, 03:40:48 am
It's possible to blank a trace in LTSpice by forcing a trace to become "invalid", i.e. by computing the logarithm or square root of a negative value.  However, this only works by doing the math in the waveform viewer, not in an arbitrary source.

An easy way to do this is to generate a blanking signal with a high value of 10V and a low value of -1V (or -anything).  Then in the waveform viewer, multiply your signal of interest by log10(V(blank)).

That's a neat trick. Thanks!

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70965;image)

Title: Re: Home Brew Analog Computer System
Post by: GK on December 16, 2013, 04:01:16 am
That is some real commitment to this whole "analog" thing. :-+ I'm pretty sure I'd have just done a raster readout. You've executed it very nicely. That looks easily as good as the "perfect" SPICE plots.

And mildly off topic, but the traces all lined up nicely on the beautiful blue screen of your 551 is a work of art by itself.

Damn - the more you make me drool, the more I'm going to want to play around with this myself, and then I won't get anything done! :)

Compare the pic in my post above to the scope photo. I think I've created the reference sine and cosines with a sufficiently high degree of fidelity.
The five traces on the 551 were produced by a pair of Type 1A1 dual trace plug-ins in the mainframe and a Type CA dual trace plug-in operating externally in a Type 127 preamplifier power supply; all operating in the "alternate" trace switching mode.
I have three 1A1 plug-ins, but one has not yet been restored and has a dodgy channel. That's why I had to resort to using one of my Type CA plug-ins in the Type 127. To operate in "alternate" mode however, the external "trigger" input of the Type 127 needs to be connected to the timebase "+Gate" output pulse provided on the front panel of the oscilloscope, so that the Type CA's trace switching bistable toggles at the end of each sweep.
Unfortunately, however, the Type 127's alternate trigger input is not compatible with the "+Gate" logic thresholds provided by the Type 551 oscilloscope, but it is compatible with the "+Gate" signal levels of my Type 545B oscilloscope. I got around the issue by externally triggering my Type 545B's timebase A from the Type 551's "+Gate" output, so that the timebases of the two oscilloscopes operate in synchronicity, and then triggering the Type CA via the "trigger" provision of the Type 127 from the "+Gate" pulse of the Type 545B.

You're right about this stuff consuming a great deal of time. I'm going to have to give it a rest now for a few days to attend to other obligations and chores, amongst which are two new babies to look after.............

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70967;image)
(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70969;image)
(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=70971;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on December 21, 2013, 01:09:12 pm
Haven't expanded the Fourier character ROM to include any character other that 3 at the moment, so regardless of the contents of the display RAM, the only character displayed is a 3.

It's all quite simple, really. The synthesized X and Y deflection waveforms to generate a specific character are traced out during each period of the 20kHz fundamental - so every 50uS. The first and last 12.5% of this period is blanked - this is the Z or intensity modulation for the CRT display.

The 20kHz fundamental clock feeds a 7 stage ripple counter. The first 4 LSB's of the counter feed a 4-bit R-2R DAC, which generates a 16 step staircase waveform that advances on the tracing out of each successive character. This staircase waveform is summed with the synthesized X waveform to generate the complete horizontal deflection signal for the display.
The 3 MSB's of the ripple counter feed a 3-bit R-2R DAC, which consequently generates an 8 step staircase waveform that advances each time the horizontal staircase re-traces back to zero, at the end of a complete line of 16 characters drawn out onto the CRT. The 8 step waveform is inverted and then is summed with the synthesized Y waveform to generate the complete vertical deflection signal for the display. Every advancement of the 8 step waveform thus produces a new line of 16 characters. There are therefore a total of 128 characters displayed, in 8 rows of 16. The full screen is therefore drawn out every 128*50uS = 6.4mS. This gives a refresh rate of 156.25Hz, so there is no perceptible display flicker.

The 7 bits of the ripple counter (Q0 through Q6) also assert the address lines of the screen RAM, while the data output lines of the screen RAM assert the character ROM analog multiplexer, which subsequently selects the character to displayed. There is also provision for the display of blank character spaces by decoding an assigned data value from the screen RAM to assert the blanking signal for the full 50uS character interval.

On top of all of that there is just a little more logic for enabling remote programming of the screen RAM - this includes bus routing and temporary data latches. To program the display, firstly a 7 bit value is placed onto data input lines of the parallel programming port. This value corresponds to the character location on screen to be programmed. An address latch line is then strobed and the data value is placed into the address data latch. A 5-bit data value for the actual character to be displayed is then placed onto the data bus. A character latch line is then strobed and the data value is placed into the character data latch. The control logic then automatically programs the screen RAM from the data values stored in the address and character data latches during the next subsequent blanking interval. This way the screen update is seamless, with no interruption to the display while the screen RAM is being user programmed.

The final version of the display system will also incorporate a "phosphor saver" circuit, with will simply be a pair of non-synchronized, free running ultra low frequency oscillators feeding +/- 10% deflection factors into the horizontal and vertical deflection signals. This will cause the entire display as a block to move/shift around on the CRT face by a small amount at an (at a glance) imperceptibly slow speed, thus saving the phosphor from burn by any static characters, as no character is permanently fixed to the one same position.

I will of course have some prettier/fancier CRT displays to post photos of once I have completed the character ROM.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=72596;image)
Title: Re: Home Brew Analog Computer System
Post by: dannyf on December 21, 2013, 01:31:46 pm
GK: that's some good stuff. Keep it up!

Quote
Analog Computer System

Sh!!!!!! Please don't tell those folks to whom computers can only be digital.

Title: Re: Home Brew Analog Computer System
Post by: GK on December 22, 2013, 03:54:16 pm
GK: that's some good stuff. Keep it up!

Quote
Analog Computer System

Sh!!!!!! Please don't tell those folks to whom computers can only be digital.

Well, despite the usage is was to some degree accepted that the term Analog Computer was a bit of a misnomer. For the pedant, Analog Simulator might be the technically correct, and preferred term.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=72728;image)
Title: Re: Home Brew Analog Computer System
Post by: woodchips on December 25, 2013, 09:24:09 pm
Yes, good stuff, catching up after a period away.

Don't know if you have seen the attached, from a book my Markus, Electronic Circuits.
Title: Re: Home Brew Analog Computer System
Post by: TimNJ on December 26, 2013, 04:19:38 am
I don't have much to input about any of the work you are doing because it is far beyond my scope of understanding, but I have to say, great work! It is really quite inspiring.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 03, 2014, 02:30:26 pm
Yes, good stuff, catching up after a period away.

Don't know if you have seen the attached, from a book my Markus, Electronic Circuits.

No, haven't seen that one. The references would be good to follow up.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 03, 2014, 03:08:04 pm
I don't have much to input about any of the work you are doing because it is far beyond my scope of understanding, but I have to say, great work! It is really quite inspiring.

Hey, thanks, no worries.

---------------------------------------------------

Here is the Fourier synthesis character display generator at its current level of completion. There will be 4 boards in total when finished. I have yet to etch and load the Fourier coefficient character ROM board and the sine/cosine filter board. The Sine/Cosine filters are currently (still) assembled on breadboard. There is no complete character ROM at the moment, just, for initial testing/running purposes, a single TL074 op-amp and several coefficient resistors assembled on the breadboard next to the filters to act as a single character ROM for the number 3.
The SOIC chip in the center of the board in the middle, sitting in the air on a piggyback DIP socket, is the SRAM which serves as the user-programmable screen RAM for the generated display. The SOIC is only temporary as I have a DIL-packaged version of the chip still to arrive on back order, which will substitute the SOIC. The part # is CY62256.

I ended up simplifying the remote programming logic by expanding the data bus to 12 bits. The programming of a specific character on the display is now just a simple matter of placing the 7-bit address value and the 5-bit character code (not ASCII) simultaneously on the 12-bit data bus and then strobing the programming port "write" control pin. This writes the address and character code data values in to a pair of latches (74HCT573) and the control logic automatically writes these to the screen RAM during the subsequent video blanking interval.

Each new character is drawn out on the CRT at 50uS intervals, 12.5uS of which is a blanking interval during which the CRT beam is cut-off. During this 12.5uS blanking interval the "write" control input to the programming port is disabled so that the latches cannot interrupted, and the screen RAM is written with the data stored in the larches. All this means that the screen RAM is programmed and updated without any interruption to the visible display.

However because the programming port is disabled during each 12.5uS blanking interval, and remote programming is completely asynchronous, the "write" control input of the remote programming port must be strobed for absolute minimum of 12.5uS plus a setup and hold time adequate for the latches to receive and store their data. So long as this simple requirement is met, the latches will be reliably written even if the rising edge of a "write" strobe on the programming port is time coincident with the very start of a blanking interval. This was about the simplest manner in which I could implement the remote programming logic.

All inputs to the remote programming port are TTL level compatible. Despite needing voltage level translation, the simple 12-bit port will make the display unit also directly compatible with the PDP8 work-alike digital computer project that I intend to start on once this analog computer is completed and out of the way.

The other assembled PCB contains the analog circuitry for generating the deflection circuitry. This includes a 2-channel by 16-way analog multiplexer, addressed by the data port of the screen RAM, which serves as the ROM multiplexer to select the character to displayed at any given position on the screen. The inputs to the multiplexer are currently not wired as I haven't assembled the ROM board yet. At the moment the only character that can be displayed is either a 3 or a blank space (as shown in the picture on on the scope CRT).

Dunno if all that babble makes the operation of the whole thing generally clear or not.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=74584;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=74586;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on January 04, 2014, 03:13:33 am
A pair of potentiometers permits the character X and Y sizes to be individually adjusted to user preference.....

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=74721;image)

I've also attached a PDF of the deflection board schematic. This board combines all of the analogue signals as necessary to produce the X and Y deflection and intensity (Z) signals for the oscilloscope. The 7 address lines from the screen memory on the digital board are decoded on the deflection board by a pair of R-2R DACs (4-bit for the horizontal and 3-bit for the vertical channel) which produce the X and Y step waveforms generating the 16 column by 8 row character grid.

The whole generated display as a block constantly moves around on the screen visually randomly, but very slowly, approx +/-5% on both the X and Y axes. This is the CRT "phosphor saver" function. These deflection factors are produced by the pair of non-synchronized, ultra low frequency triangle wave oscillators based on IC U9A through U9D.

Title: Re: Home Brew Analog Computer System
Post by: GK on January 12, 2014, 03:15:16 am
In a marathon sitting, with the aid of several sheets of graph paper and pen, a ruler and some string (to measure the lengths of my hand drawn closed-function curves in order to properly proportion the blanked to un-blanked portions) and Jahonen's discrete Fourier transform, I have finally worked out the the sine and cosine Fourier coefficient values for my entire character set. Now it is is just a matter of loading the analog character ROM board, and the display unit will be finished. Although hexadecimal values are usually written with uppercase letters, the more complex uppercase letters (A through F) were too difficult to trace out with a single closed function curve, so I had to settle for lower case.

Instead of visiting the forum from now on I'll be devoting my time to updating my so far largely neglected website instead. Further updated will be posted at www.glensstuff.com (http://www.glensstuff.com)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=76161;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on January 26, 2014, 05:45:35 am
Just finished the webpage write up for the 3-D projective unit:

http://www.glensstuff.com/3dpu/3dpu.htm (http://www.glensstuff.com/3dpu/3dpu.htm)

Has links to all of the design files... Gerbers / uC Hex, etc.
Title: Re: Home Brew Analog Computer System
Post by: C on January 26, 2014, 08:10:46 am

For you trick bag
You may not have seen this, Instead of using X and Y like a normal scope some old equipment used a circle for the trace with time being the rotation on the circle and what would be the vertical scope channel being a movement in radius. The advantage was the long trace compared to normal X & Y display. While it sounds hard to use, it was actually very easy. Using the beam to put up what would be grid lines was also quick.

Could be fun to play with

C
Title: Re: Home Brew Analog Computer System
Post by: GK on January 28, 2014, 07:58:02 am
Your description vaguely reminds me of some time standard/chronograph synchronizers. Do you recall a model number or make of scope that displayed that way?

Title: Re: Home Brew Analog Computer System
Post by: chickenHeadKnob on January 28, 2014, 08:45:56 am
I thought C was describing polar coordinates, no?
Title: Re: Home Brew Analog Computer System
Post by: GK on January 28, 2014, 10:20:17 am
One of the synchronizer scopes I have in mind used polar coordinates of sorts to indicate the beat between a ref. frequency and a signal input.

My 3-D projective unit could be used to produce spherical polar coordinate displays.  It would just be a simple matter of first transforming the spherical polar coordinates to Cartesian ones:

http://keisan.casio.com/exec/system/1359534351 (http://keisan.casio.com/exec/system/1359534351)

I could build a separate unit for doing that, or I could just patch a computer program to do it (summers combined with sin/cos function generators and 4-quadrant multipliers). The former would be more practical in use of course, which is why I have gone through the trouble of constructing the current projective unit. Could be an interesting project.................

Title: Re: Home Brew Analog Computer System
Post by: GK on January 28, 2014, 11:47:08 am
Come to think of it a 2-dimensional polar coordinate oscilloscope, where time is the independent variable, represented by the angle of rotation about the pole, would be a rather simple thing to make.

Firstly, you'd need to design a triggered timebase that produces a "sweep" consisting of a single cycle of a sine-wave, rather than a ramp voltage. From this an all-pass filter could then be used to generate the cosine "sweep" term. Simply multiply these two signals independently with the uni-polar signal input voltage representing the distance from the pole and you have your X and Y deflection signals respectively.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 29, 2014, 12:01:00 pm
Although my priority right now is to complete the construction of my Fourier synthesis display unit and write it up on my website, it seems I just can't help myself. This evening I got half way to having a functional polar coordinate oscilloscope. I knocked up a quick and dirty triggered timebase generator which produces sin and cos sweep terms, for time as the independent variable represented by rotation about the pole:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=79005;image)

The top waveform is the trigger pulse and the lower two waveforms are the subsequent (rising-edge triggered) sin and cos "sweeps". The slopes/breakpoints haven't been calibrated yet and I still have to breadboard the shaping circuit(s) that will transform these triangular waveforms into smooth sine and cosine curves. I will probably use BJT long-tail pair shapers. However that will have to wait for another spare evening.

In the meanwhile, here is a very quick play in SPICE, of sine, sawtooth and square waves displayed in polar coordinates:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=79007;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on January 30, 2014, 11:21:16 am
You say polar coordinate oscilloscope, I make polar coordinate oscilloscope (in 2 free evenings  ;D ).

As I had to use parts that I had at immediately at hand the bread-boarded prototype circuitry is still very crude and there is still plenty of scope for improving the phase and amplitude linearity of the generated displays. For shaping the sine and cosine "sweeps" for the angular deflection I used logarithmic shapers that exploit the non-linearity of a BJT long-tail transistor pair. I am not overall happy with this approach. No matter how the circuit constants are tweaked, the lowest THD null always results in a sine function with excessively pointy nipples (well that is what they look like to me). This non linearity is quite visible when plotting the circumference of a circle on the CRT. However there are other (better) ways to do that job. I'm also using quite crappy and obsolete (EXAR) multiplier chips that had to be compensated down for breadboard stability to the extent that phase distortion in the display is not insignificant at even modest operating frequencies. However the fundamentals are covered/proven and now it's just matter of refining the design. I intend to make an instrument with a full oscilloscope-like front-end, with comprehensive timebase, triggering, radial (rather than "vertical") input sensitivity and offset controls - though this will go on the back burner for the time being while I get back to finishing some other stuff.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=79119;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on January 30, 2014, 01:03:36 pm
For shaping the sine and cosine "sweeps" for the angular deflection I used logarithmic shapers that exploit the non-linearity of a BJT long-tail transistor pair. I am not overall happy with this approach. No matter how the circuit constants are tweaked, the lowest THD null always results in a sine function with excessively pointy nipples (well that is what they look like to me). This non linearity is quite visible when plotting the circumference of a circle on the CRT. However there are other (better) ways to do that job.

The squaring technique using a 4-quadrant multiplier (X & Y inputs connected together) looks like the most viable alternative right now........ Mathematically perfect sine curves..............

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=79125;image)
Title: Re: Home Brew Analog Computer System
Post by: robrenz on January 30, 2014, 01:08:54 pm
I am still following GK, great stuff :-+
Title: Re: Home Brew Analog Computer System
Post by: c4757p on January 30, 2014, 01:24:46 pm
Me too!

But mathematically perfect sine? What am I missing? Looks parabolic to me.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 30, 2014, 10:41:17 pm
What am I missing? Looks parabolic to me.

Nothing at all; I just shouldn't post after midnight on a workday, lol.
Yes, it is of course parabolic and that (sin/cos terms) results in a circle which is more like a square with broadly rounded corners. That rules it out, along with the logarithmic shaper.

I guess I'm left with breakpoint-shaping.

Title: Re: Home Brew Analog Computer System
Post by: C on January 31, 2014, 06:03:19 am
Hi

Are you making creating a time base circle too hard?
Look at the video of dave cal of the time base.
Just create a Sine wave for your time base, one cycle equal one sweep.
The default amplitude of which is the circle size.
Do a second Sine wave with 90 degree phase delay or add a 90 degree phase delay to the first.
You have your X an Y base.
Great timebase with no retrace time.
Think what would be the vert on scope is the input to two voltage-controlled amplifiers with the gain controlled by the X & Y above.

here is a quick find, real new stuff (1932)

Have you seen a radar scope.
Great for knowing what is around you but not real great for telling the direction. If you start at the outside edge with greater distance to the center, easer to read direction while harder to get the great picture understanding.

One use I recall the time base was the circle close to the outer edge of the tube with vert of normal scope being a radial deflection to or past the center of tube.

Some had a huge display with very long persistence.
I do remember that when used the circle display was much better then normal scope display.

Radio direction finding was one use.
Been to long for a lot of details, sorry.

Think the big selling points was the very long trace with no retrace time.

C
Title: Re: Home Brew Analog Computer System
Post by: GK on January 31, 2014, 07:38:35 am
Hi

Are you making creating a time base circle too hard?
Look at the video of dave cal of the time base.
Just create a Sine wave for your time base, one cycle equal one sweep.
The default amplitude of which is the circle size.
Do a second Sine wave with 90 degree phase delay or add a 90 degree phase delay to the first.
You have your X an Y base.

Sure, but that wouldn't be a true triggered timebase. What you describe is exactly what I did for my Fourier synthesis character generator, but that is an entirely different application.

A true triggered time base is important as you want the "sweep" synchronized with the input signal, just like in any other scope.

If I wanted to do it the simplest way possible, I would just make an injection-locked state variable (quadrature) oscillator. However that would have major  functional limitations - the timebase sweep time (and amplitude!) could not be calibrated and synchronization could only be had with input signals that are frequency multiples of the timebase oscillation frequency.

Title: Re: Home Brew Analog Computer System
Post by: C on January 31, 2014, 06:46:13 pm

you just need the electronic version of a  mechanical clutch.
On trigger you drop the clutch connecting the input (the X & Y signals) to the Output X & Y signals that was set to start with the desired starting reference..

I think Selsyn and Synchro Devices were some of the first IO devices of an Analog Computer
http://en.wikipedia.org/wiki/Synchro (http://en.wikipedia.org/wiki/Synchro)

Think of what a Sine wave really is, the result of having a marker attached to rim of a rolling circle when the rim is rolling on a line.
If you are thinking the circle has a shaft then rules have to change for that way of thinking.

I think I remember from a very short crash course on Selsyn's that there is a circuit that will do what you want. One of the first uses of a CRT was as an improvement from using Selsyns. So in the dust of time is probably the circuit with a good description.

Note that what you create for circuits today could be much more complicated due to not using something very common in old days.
A simple OP amp is shown as two variable resistors connecting the two supplies to a common output. In the old days it was not unusual to have resistors added to the supply leads of the output variable resistors.
By adding the two resistors, a single ended center input Op Amp could convert to a differential output from the power rails. Need more signal swing, connect the outputs of two Op Amps together with only one having the two to-rail resistors.

It was also not uncommon to have output of one or more Op Amps supplying the rail voltage to another Op Amp.

Some things you do not see much of these days

C
Title: Re: Home Brew Analog Computer System
Post by: robrenz on January 31, 2014, 07:28:16 pm
Think of what a Sine wave really is, the result of having a marker attached to rim of a rolling circle when the rim is rolling on a line.

C

That would be a Cycloid not a sine wave.
http://en.wikipedia.org/wiki/Cycloid (http://en.wikipedia.org/wiki/Cycloid)
Title: Re: Home Brew Analog Computer System
Post by: C on January 31, 2014, 09:43:39 pm
Think of what a Sine wave really is, the result of having a marker attached to rim of a rolling circle when the rim is rolling on a line.

C

That would be a Cycloid not a sine wave.
http://en.wikipedia.org/wiki/Cycloid (http://en.wikipedia.org/wiki/Cycloid)
Yes,
forgot the connecting rod.
or the slide slot.

C
Title: Re: Home Brew Analog Computer System
Post by: GK on January 31, 2014, 11:39:23 pm

you just need the electronic version of a  mechanical clutch.
On trigger you drop the clutch connecting the input (the X & Y signals) to the Output X & Y signals that was set to start with the desired starting reference..

I'm afraid it is not that simple. What you describe provides no mechanism for synchronizing the zero crossing of a free running sinusoidal timebase (oscillator) with the trigger pick-off threshold/point of a periodic input signal.

BTW, there is only one input signal (neither X nor Y) - that representing the distance from the pole, r.

Perhaps this simplified block diagram of the prototype circuit will make things clearer:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=79369;image)

Polar coordinate system explained here:
http://en.wikipedia.org/wiki/Polar_coordinate_system (http://en.wikipedia.org/wiki/Polar_coordinate_system)

Title: Re: Home Brew Analog Computer System
Post by: johnwa on February 03, 2014, 09:41:50 am

I'm afraid it is not that simple. What you describe provides no mechanism for synchronizing the zero crossing of a free running sinusoidal timebase (oscillator) with the trigger pick-off threshold/point of a periodic input signal.

BTW, there is only one input signal (neither X nor Y) - that representing the distance from the pole, r.

Perhaps this simplified block diagram of the prototype circuit will make things clearer:

Hi GK,

It is nice to see some more analogue computation ideas on the go! One of the things on my to-do list at the moment is a phasor display for working with polyphase systems. I am thinking that I will generate some quadrature sine waves, then multiply with the incoming signals and low pass filter to get the endpoints. A further multiplication with a ramp will give the lines for the phasors.

This is a somewhat similar situation to your current problem, though I was going to have my oscillator phase locked to one of the incoming signals, but otherwise free running.

One thought occurred to me - would it be possible to 'freeze' the state of a quadrature sinewave oscillator using some sort of sample and hold? It could then be set up to a known phase angle, then triggered by the input signal. I haven't really though through the details of this, but it might possibly be worth investigating.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 03, 2014, 12:41:01 pm
Hi GK,

It is nice to see some more analogue computation ideas on the go! One of the things on my to-do list at the moment is a phasor display for working with polyphase systems. I am thinking that I will generate some quadrature sine waves, then multiply with the incoming signals and low pass filter to get the endpoints. A further multiplication with a ramp will give the lines for the phasors.

This is a somewhat similar situation to your current problem, though I was going to have my oscillator phase locked to one of the incoming signals, but otherwise free running.

One thought occurred to me - would it be possible to 'freeze' the state of a quadrature sinewave oscillator using some sort of sample and hold? It could then be set up to a known phase angle, then triggered by the input signal. I haven't really though through the details of this, but it might possibly be worth investigating.

Hi John, that sounds like an interesting project. I have since gone back to pondering the differential equations that describe the desired waveforms and I am proud to say that I have come up with an extremely simple circuit that solves the problem of generating triggered, single cycle complementary sine and cosine waveforms of very high fidelity - simply by going back to good old analog computing fundamentals.

Here is the fundamental circuit:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=79686;image)

All there is to it is two integrator stages with initial conditions in a feedback loop with an inverter. Consider the circuit in the initial condition mode: Integrator 1 is steady/idle at 10V output while integrator 2 is steady/idle at 0V output. Now imagine the initial condition switches open (the "initial_condition" control line goes low). Integrator 2 will begin integrating the 10V potential from the output of integrator 1, its output, beginning at 0V, starting on a downwards trajectory. The output of integrator 2 is inverted by the third op-amp stage in the loop and fed back to integrator 1, which responds by integrating the inverted output of integrator 2. The result is a pair of sine and cosine waveforms from the output of the inverting stage and the output of integrator 1 respectively - it really is that simple!

Of course my real world implementation does not use a floating voltage source to set the IC of integrator 1 and there is some simple control logic involved, but I'll be able to share that with you another evening - got to go to bed now, unfortunately. I think this is probably close to what you were contemplating in your "sample and hold" idea?

EDIT:I have attached the LTspice file. Just rename it from *.asc.txt to *.asc (*.asc files not permitted by the forum software).

Title: Re: Home Brew Analog Computer System
Post by: c4757p on February 03, 2014, 12:46:11 pm
Oh, that is nice. :-+
Title: Re: Home Brew Analog Computer System
Post by: c4757p on February 03, 2014, 06:06:45 pm
There's my first attempt at a practical circuit. Unfortunately I don't have the time right now to breadboard it :(
Title: Re: Home Brew Analog Computer System
Post by: GK on February 04, 2014, 12:10:44 am
There's my first attempt at a practical circuit. Unfortunately I don't have the time right now to breadboard it :(

Now you just need a direction sensitive threshold comparator and some logic to terminate the "sweep" by reinstating initial conditions at the completion of the first cycle - to await the next sweep triggering pulse.

Title: Re: Home Brew Analog Computer System
Post by: GK on February 04, 2014, 08:48:29 am
Here is a pretty complete simulation of the polar-coordinate oscilloscope timebase that I have developed:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=79841;image)

Some brief notes:

Assuming equal R and C values for the two integrators and a unity gain inverting stage, the frequency of oscillation is equal to 1/2piRC.
Oscillation happens at the frequency at which the gain around the loop is equal to 1. The operating frequency can therefore be trimmed by tweaking the gain
of the inverting stage only. However this will result in a small amplitude imbalance between the sine and cosine waveforms (however they will always be in "perfect quadrature". This needs to the trimmed separately and externally, in an stage outside of the feedback loop.

Another thing that will cause an amplitude imbalance between the sin and cos waveforms is a C and/or R variation between the two integrator stages. I use 0.1% resistors for R so the greatest/actually significant source of error is in the capacitor tolerances. The resultant amplitude imbalance is directly proportional to the capacitor value imbalance.

In my timebase, I switch decade ranges by switching different value timing caps. There are 3 decade ranges. The range switch is a 4-pole 3-position rotary. Two of the poles are used to switch the integrator capacitors. The third pole is use to switch one of three gain-adjusting trimpots in the inverting stage feedback so that the operating frequency ("sweep" period) can be accurately trimmed for each range. Finally, the 4th and final pole of the range-selecting rotary switch is used to select one of another three trimpots that accurately trim the amplitude balance between the sin and cos waveforms for each range.

I implemented the initial condition setting in a manner that results in no amplitude glitching of the desired signals. Analog switches are used to short the integrator capacitors and a +5V initial condition for the cosine integrator is achieved by elevating the virtual earth of the integrator to +5V with a precision reference. Note that I have used an additional analog switch to disconnect (when initial conditions are forced) the summing junction of the integrator from which the sinewave is derived. This prevents the current that would otherwise be forced into this integrators summing junction by the +5V initial condition of the preceding (cosine) integrator stage from developing an DC offset error at the output of this integrator due to the non-zero on-state resistance of the analog switch shorting the integration capacitor.

The circuit can be likened to a simplified state-variable oscillator without the damping feedback and amplitude servo control. In theory, with ideal integrator stages, the circuit would oscillate indefinitely at a constant amplitude as initially defined by the initial conditions. However due to the finite gain-bandwidth product of real op-amps as used for the integrator stages, in this particular circuit, the Q-multiplication effect will always result in amplitude growth with time.
If allowed to oscillate for enough number of cycles, the amplitudes of the sin and cos terms will eventually grow until the amplifiers clip and they become square waves.
While this isn't an issue in the design here as only the first cycle of oscillation from the initial conditions is used for the oscilloscope sweep before initial conditions are reinstated, at higher operating frequencies I have found the amplitude growth over just one cycle to be significant (in the order of 0.5-1% at 10kHz). When potting a circle on the oscilloscope using these sin and cos terms, this results in the end point not meeting up exactly correctly with the start point.
However there is a simple fix to the problem. Trim-able negative damping (to precisely counter the amount positive damping due to Q-multiplication) can be applied with the simple inclusion of a high value trimmer resistor in parallel with the capacitor of the integrator from which the cosine term is derived only. This resistor is the one labeled "damping" in my simulation schematic.

In each range, I switch frequencies in three 1/2/5 steps, by switching fixed 0.1% tolerance R's for the integrators (16k, 32k and 80k). This requires and other rotary switch - 2 poles, 3-positions. There is therefore a total of 9 (3x3) calibrated timebase frequencies (50mS to 100uS). Switched integrator capacitors are 1, 10 and 100nF.

I have attached the LTspice simulation file (renamed *.txt once again). It includes a simplified logic simulation of the comparator an digital elements required to automatically detect the end of one complete "sweep" cycle and re-instate initial conditions in idle mode, until the next sweep trigger input pulse occurs.

So there you have it; that should be everything that you need to know to implement a timebase for your experimental polar-coordinate or phasor-display oscilloscope.  ;D

EDIT:
I have noticed one small error/infelicity in the simulation. For the hysteresis of zero-crossing detector/comparator U5 to work correctly (so that in real life the detector does not oscillate away while the sine term is maintained in the initial condition mode (0V) ), the open-collector pullup resistor R9 will be tied to +15V rather than +1V. 1V is used in the sim for the logic high level as this is the default in LTspice for the "special function" digital logic elements.
Title: Re: Home Brew Analog Computer System
Post by: johnwa on February 04, 2014, 11:10:10 am

Of course my real world implementation does not use a floating voltage source to set the IC of integrator 1 and there is some simple control logic involved, but I'll be able to share that with you another evening - got to go to bed now, unfortunately. I think this is probably close to what you were contemplating in your "sample and hold" idea?

Yes, this was basically what I was thinking of, though I hadn't worked out the details. I might give your circuit a go for my application, when I eventually get round to looking at it.

I have ordered a load of LM13700 OTAs for this project, primarily for use as multipliers (I would have liked to use AD833s, but they are \$\$\$  :( ) Though I think they can be used in an oscillator configuration that will give simple frequency control and amplitude stabilization, without problems with matching the phases.  (I will also want a three phase oscillator at some point). I will see what I can come up with when they get here.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 04, 2014, 11:41:19 am
A quick e-bay search came up with this:

http://www.ebay.com/itm/10pcs-XR2208CP-XR2208-DIP-16-EXAR-/180915775470 (http://www.ebay.com/itm/10pcs-XR2208CP-XR2208-DIP-16-EXAR-/180915775470)

Not my favorite multiplier IC, but that's pretty cheap at 10 devices for around about the price of a pair of AD633's. They are NOS, being long obsolete now, but fine for experimenting with. Might be worth a punt.

Datasheet attached.

Title: Re: Home Brew Analog Computer System
Post by: mikejp56 on February 09, 2014, 10:23:48 pm
Hi GK,
I started an analog computer project about 2 years ago, but it wasn't nearly as ambitious as yours.
After much research I decided on 4 integrators, 4 summing amps, 4 inverters, and 2 4 quadrant multipliers. I also decided to use 8 potentiometers for coefficients, +/- 1V reference supplies, and a zero center analog meter for output.
This system will use a handful of op amp ICs and logic ICs for switching, and several 4066 quad analog switches to actually do the switching.
I had started to build it, but then life intervened and I put it aside for 2 years. I have since resurrected it, and read your posts with great interest.
I wish you luck with your design, and when mine is finished and running, I will post the schematics and a writeup.
Regards,
Mike
Title: Re: Home Brew Analog Computer System
Post by: GK on February 10, 2014, 12:48:09 am
Hi Mike,

Sounds good; will be interesting to see.
Title: Re: Home Brew Analog Computer System
Post by: IanB on February 10, 2014, 01:18:13 am
All there is to it is two integrator stages with initial conditions in a feedback loop with an inverter.

This is fundamentally neat and elegant. You have a circuit that solves the following differential equations:

y = Tc dx/dt
x = -Tc dy/dt

Set x = sin(t/Tc), then y = Tc d[sin(t/Tc)]/dt = cos(t/Tc)
and x = - Tc d[cos(t/Tc)]/dt = sin(t/Tc)

However, I think in practice an automatic gain control circuit is required to keep the amplitude constant, otherwise any small errors in the system will be integrated without limit.
Title: Re: Home Brew Analog Computer System
Post by: c4757p on February 10, 2014, 01:21:51 am
However, I think in practice an automatic gain control circuit is required to keep the amplitude constant, otherwise any small errors in the system will be integrated without limit.

The beauty, though, is that it's only allowed to "oscillate" for one cycle.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 12, 2014, 11:12:09 pm
Yes, a single cycle before initial conditions are reinstated; but see my subsequent comments on damping.

If an amplitude servo is added to facilitate continuous oscillation, you'll wind up with what is known as a State Variable Oscillator, such as this:

http://www.users.on.net/~glenk/thd/generator.pdf (http://www.users.on.net/~glenk/thd/generator.pdf)
Title: Re: Home Brew Analog Computer System
Post by: GK on March 17, 2014, 11:19:47 am
I finally have a completed sin/cos, triggered timebase up and running using the above described method. Has 12 calibrated sweep speeds in 4 ranges, from 0.5s to 100uS in 1/2/5 steps. Other features included are an auto-triggering mode and user-variable trigger hold-off. I'm still tweaking a few component values and finalizing the schematic.
Title: Re: Home Brew Analog Computer System
Post by: GK on April 29, 2014, 01:50:03 pm
Things have been a little hectic for me lately, but this evening I finally managed to get the (almost complete) Fourier synthesis character generator/display unit up and running.

Here are the four main boards wired up:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=91737;image)

Here is a closeup of the actual analog Fourier ROM for the 16 character character set (0-through-f). The IC's are all TL074 quad op-amps. The ROM is just a resistor matrix, the Fourier components simply being passively summed to produce the necessary X and Y deflection waveforms to trace out each unique character onto the CRT. Soldering in all of those resistors was about two or three orders of magnitude less tedious than actually computing the values.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=91739;image)

When initially powered a random garble of characters appears on screen, depending on how the un-programmed screen RAM comes up:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=91741;image)

For initial testing purposes, I wired a series for switches to the 12-bit parallel programming port, to manually program the display. The seven switches to the left are the address lines, selecting the actual character to be programmed, while the 5 remaining switches are the data lines. There are 17 characters if the blank space is counted. This is why I required 5 bits for the data port rather than 4. The (micro) push button to the far right is the strobe line. When pressed the address and data line status is written to the internal latches and seamlessly transferred to the screen RAM during the next subsequent blanking interval, updating the display.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=91743;image)

Here is the display I initial generated playing with the switches. I numbered the columns (16) and rows ( 8 ) and left some of the random stuff in the middle.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=91745;image)
Title: Re: Home Brew Analog Computer System
Post by: dr_dan on April 29, 2014, 01:55:31 pm
Beautiful!  :clap:

Been waiting for this, since you posted a screenshot of "3" some while back!
Title: Re: Home Brew Analog Computer System
Post by: GK on April 29, 2014, 02:09:56 pm
Thanks  :D

Here is the schematic for the R.O.M. board.
Title: Re: Home Brew Analog Computer System
Post by: baljemmett on April 29, 2014, 02:48:22 pm
Things have been a little hectic for me lately, but this evening I finally managed to get the (almost complete) Fourier synthesis character generator/display unit up and running.

That's some lovely work, GK - thanks for sharing!
Title: Re: Home Brew Analog Computer System
Post by: robrenz on April 29, 2014, 03:10:17 pm
Things have been a little hectic for me lately, but this evening I finally managed to get the (almost complete) Fourier synthesis character generator/display unit up and running.

That's some lovely work, GK - thanks for sharing!

+1 :-+
Title: Re: Home Brew Analog Computer System
Post by: GK on April 30, 2014, 01:01:27 pm
Well, getting a little more serious now, this evening I removed the programming toggle switches, plugged a PIC16F874 into a bread board and wired it to the units programming port. A few quick test routines written for the '874 acting as the "remote" programmer and here is the result:

OK, I'm using a uC to program the display, but the character generator itself is 100% analogue and discrete digital logic (74HC' & 74HCT plus the SRAM).
Programming is completely asynchronous. You just put the data onto the 12-bit port and strobe the write pin. My simple discrete logic programming interface works flawlessly, transferring the asynchronously-received and latched data to the operating screen RAM during the blanking intervals without a glitch. Yahoo.

Title: Re: Home Brew Analog Computer System
Post by: mamalala on April 30, 2014, 03:06:15 pm
Fantastic stuff! A big thumbs up!

Greetings,

Chris
Title: Re: Home Brew Analog Computer System
Post by: robrenz on April 30, 2014, 03:35:43 pm
Your anti screen burn orbit is very nice ;D
Title: Re: Home Brew Analog Computer System
Post by: GK on May 01, 2014, 08:49:40 am
Your anti screen burn orbit is very nice ;D

I think I might still slow it down to make it less obvious. I've got a half dozen NOS CRT's as used in the Tek 422 oscilloscope, still in their original packaging, just for this kind of thing. Think I'll make a dedicated CRT display unit for this instead of utilizing a 'scope.
Title: Re: Home Brew Analog Computer System
Post by: johnwa on May 04, 2014, 12:13:23 pm
Hi GK,

That is some really nice work with the Fourier character display! Producing that display using analogue circuitry looks impossible at first glance, but we can all see that it is quite practical. The smooth curves give the characters a certain aesthetic appeal, too.

Now, I was thinking about how this works, and also about the Rossler experiment last year, and I wondered: would it be possible to apply this technique to the synthesis of three dimensional objects? After a certain degree of head scratching, it appears that the maths works out, though I think building a physical implementation will be on the edge of practicality, due to the overall complexity required.

For a 5th order approximation, the character generator requires ten frequencies plus a DC term. With these, it is possible to parameterise a curve as a function of one variable (s), in two dimensions, with a total of 22 coefficients.

A 3D surface can be parameterised as a function of two variables (u and v). Therefore, instead of five frequencies, 25 will be required for the same order synthesis (5 x u x 5 x v). Allowing for the sin, cos, and DC components, a total of 121 terms would need to be synthesised. To cater for the three axes, up to 363 coefficients might be required (although many shapes would only need a relatively sparse coefficient matrix).

The coefficients can be implemented fairly simply using resistors, so the main obstacle to using this technique would appear to be the generation of the signals at all of the different frequencies and phases. To generate them directly would require 100 analogue multipliers. It might be feasible to mix all the u harmonics and all of the v harmonics, multiply the sums, and then filter off the individual (m*u * n*v) components, but I suspect that this would involve a similar level of complexity.

Ideally, the low frequency parameter would change in discrete steps, while the high frequency parameter swept continuously, to give a rectangular U-V grid. However, I think it would be simpler if each parameter changed continuously. This would result in a slightly skewed U-V grid, similar to a television raster scan. It would also be desirable to be able to switch the U and V signals, in order to give grid lines in both directions.

I don't have any plans to actually try to build this - it would be huge! However, if anyone is crazy enough to give it a go, I might be able to offer some suggestions as to how to go about it.

I have attached a couple of Matlab simulations of this method. Note that it is not limited to solids of revolution, though these are the only ones that I have managed to figure out the coefficients for so far  :)
Title: Re: Home Brew Analog Computer System
Post by: GK on May 06, 2014, 09:02:40 am
That looks neat. Another approach might be to use spherical polar coordinates and generate objects by just synthesizing the three signals for the radial distance, azimuth and polar angles. It's easy enough to transform the spherical polar coordinates to xyz Cartesian values, and then to 2-D X-Y projective views.

I am considering building a spherical polar coordinate to xyz Cartesian coordinate transformation unit to complement the function to my already-built 3-D projective unit. However the problem is finding an analog computing application for it. I'm not aware at the moment of any physical system analogs that provide three variables that are readily plotted and unambiguously readable in spherical polar coordinates.

I have my polar coordinate oscilloscope adapter up and running and am planning to build another, more powerful MK II version. The current version can only generate plots over a polar angle of 2pi radians. The unit I am currently planning will be able to do 0.5 to 1024 pi radians in 0.5 pi radian steps.

Title: Re: Home Brew Analog Computer System
Post by: Clocky on May 06, 2014, 02:59:37 pm
That's really cool, I love this kind of stuff.
Title: Re: Home Brew Analog Computer System
Post by: GK on May 09, 2014, 02:16:06 pm
Well then, here is a little more  ;D

The polar rose (http://en.wikipedia.org/wiki/Rose_%28mathematics%29) is a mathematical curve easily generated by my completed MK I polar coordinate oscilloscope adaptor.
Here is a demo of a pair of 2 pi radian roses. The first is generated with a swept frequency sine function and the second with a triangle wave.

Title: Re: Home Brew Analog Computer System
Post by: johnwa on May 12, 2014, 12:25:01 pm
That looks neat. Another approach might be to use spherical polar coordinates and generate objects by just synthesizing the three signals for the radial distance, azimuth and polar angles. It's easy enough to transform the spherical polar coordinates to xyz Cartesian values, and then to 2-D X-Y projective views.

Yes, depending on the object, it might be possible to get better definition with fewer terms using polar coordinates. Although objects that deviate significantly from a spherical shape might still be better of in cartesian.

Anyway, this was just a random idea I had, I don't think I will take it any further at this stage - too much other stuff to do  :(.

Your rose figures are pretty neat too. I think there is a vaguely similar process for manufacturing faceted shapes on a lathe. I think it uses planetary gearing of the spindle, to give the part a complex motion. See, e.g. http://en.wikipedia.org/wiki/Hypotrochoid (http://en.wikipedia.org/wiki/Hypotrochoid) Obviously, the lobes of the pentagram get chopped off, and only the centre section remains. I imagine it would be fairly easy to plot these figures on your scope GK, though it might take a bit of work to get the equations in to the correct form.
Title: Re: Home Brew Analog Computer System
Post by: GK on May 14, 2014, 02:06:15 pm
That Hypotrochoid looks interesting, but at a glance it looks like it needs 6 pi radians of rotation to be plotted in full. Unfortunately my MK I polar coordinate adapter is limited to 2 pi radians. While consumed in the technical side of the design I didn't realize how much of a limitation a fixed "sweep" of only 2 pi radians (360 degrees) for the angular coordinate would be; that came afterwards, reading up on geometric curves and finding applications for the completed unit. The Hypotrochoid will have to wait for the MK II version.

However that will be a while off. ATM I'm currently struggling in my free hours here and there to complete the construction of my character generator and write it up on my webpage. I need to clear to bench to get onto others things that need attention.

All that's left is installing the power supply, some fabrication of panels and screwing the case together. I also designed an additional, 5th PCB, giving LED status indication to the 12-bit parallel programming port (green for the 7 address lines, yellow for the 5 data lines and a single monostable-stretched red LED for the write strobe line) . This 2-relay-rack analog/hybrid computer is going to have plenty blinky LEDs to make it look really technical ;D

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=93732;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=93734;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on May 24, 2014, 01:54:48 am
Here is a particular example of dither (these days known as triangular probability density function) that predates digital audio and video processing by a few years. I am currently applying the technique to my diode function generator design and it works well, turning the sharp diode discontinuities parabolic.

This page is from my earliest analog computing text out of several that summarizes the technique: Analog computing techniques, Johnson, McGraw Hill, 1956. None of my old texts actually use the word "dither", however. Not sure when that term was first applied. Dithering techniques go back even further than this, applied to mechanical analog computers by means of vibrator motors to compensate for quantization errors incurred by gear sticking and backlash.

The reference cited (8) is: Stone, J. J., Jr.: Smooth-curve Function Generation Using Diodes, IRE Airborne Electronics Digest, 1954.

Does anyone out there know of any earlier examples of the application of electronic dithering?

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=94979;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on August 16, 2014, 07:22:40 am
All that's left is installing the power supply, some fabrication of panels and screwing the case together. I also designed an additional, 5th PCB, giving LED status indication to the 12-bit parallel programming port (green for the 7 address lines, yellow for the 5 data lines and a single monostable-stretched red LED for the write strobe line) . This 2-relay-rack analog/hybrid computer is going to have plenty blinky LEDs to make it look really technical ;D

I finally got this thing finished and written up:

http://www.glensstuff.com/fouriersynthchargen/fouriersynthchargen.htm (http://www.glensstuff.com/fouriersynthchargen/fouriersynthchargen.htm)
Title: Re: Home Brew Analog Computer System
Post by: GK on January 19, 2015, 01:09:00 pm
After many other diversions I'm back to allocating time to this ongoing project again. I've finally competed all 30 of the programmable integrator modules and have them attached to their brackets and ready to be chassis mounted. Should get them chassis-mounted this coming long weekend, and at least partially wired. As pictured earlier in this thread, I've had the panels drilled and the 366 banana jacks installed for over a year already. Also have the sine/cosine circuit boards completed and an order for another ~ 1000 4mm banana jacks has recently arrived, so I have some further panel drilling to get on with...... The (twenty) Summing and (ten) Logarithmic amplifier PCBs are currently underway.....

The integrator board assembly was a little tedious as I had to pad the "timing" capacitors to the correct (measured) values. There are two selectable timing capacitance values. 10nF is permanently wired into the integrator and an additional 990nF (for a total of 1uF) is switched in by a reed relay. In each example I got the 990nF to within 1nF and the 10nF within 100pF. For low dielectric absorption I used polypropylene for the bulk of the capacitance (at least 820nF and 8n2 respectively) and padded with COG ceramic for the 100's of pF and polyester for the 10's of nF. Low value (nF's) polypropylene capacitors only seem to be available in very large packages with high voltage ratings (like 2kV and 1" lead pitch) and are expensive. The polyester was the most cost effective option. Back in the day the big analog computer manufacturers had custom polystyrene caps made to uF values with fraction of a percent tolerances - somewhat beyond the DIY budget.

The low-leakage summing junction clamp/protection diodes at the JFET0switched inputs are heat shrink covered to keep out the light as discussed here: https://www.eevblog.com/forum/projects/glass-diode-photoelectric-effect/ (https://www.eevblog.com/forum/projects/glass-diode-photoelectric-effect/)

Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on January 19, 2015, 10:55:36 pm
Wow!
Title: Re: Home Brew Analog Computer System
Post by: Dave Turner on January 21, 2015, 12:06:47 am
Have you estimated the total power requirement of the finished product? Apologies if this has already been answered.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 21, 2015, 12:29:05 am
The computer is being built in modular units, each with it's own self-contained, regulated power supply. Each unit, housed in either a 2U or a 3U case will contain, in general, ten identical computing units - a computing unit being either an integrator, a summing amplifier, a multiplier, a comparator, a logarithmic amplifier, etc.

The "integrator chassis", for example, of which there are three, for 30 computing nits in total, is a 3U case. Power consumption per integrator chassis is about 40W.
Title: Re: Home Brew Analog Computer System
Post by: Dave Turner on January 21, 2015, 05:02:03 pm
I, for one, eagerly await the completion of this project or at least it being sufficiently complete to demonstrate with a video or two.
Title: Re: Home Brew Analog Computer System
Post by: Alex Eisenhut on January 21, 2015, 05:14:15 pm
If you could build a Scanimate, that would be awesome.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 28, 2015, 12:04:31 pm
An integrator chassis slowly coming together. The banana jack functions are as follows:

White: initial condition (I.C.) input
Yellow: x1 input
Blue: x10 input
Red: signal output
Green: earth

The orange LED below each bank of integrator outputs is for individual overload/over-range indication. Each overload indicator output also feeds an internal alarm bus.

The brown and orange jack pair are for external logic control signals. The integrators will be ordinarily under the control of the computers timing/control unit, but a selector switch in the front panel will alternately route the control signals from these two banana jacks. There are 3 modes of operation: 1) Initial condition - the integrator is preset to the (inverted) DC potential applied to the I.C. input. 2) Compute/Run - the voltages applied to the summed x1 and x10 inputs are integrated. 3) Hold - operation is paused/halted and the integrators hold their value.

There will be three other selector switches on the front panel. One will be "Pot(entiometer) Set On/Off", which is used when setting up a "program" to assist the setting of the computers coefficient potentiometers. Another switch will be the time constant select, activating the timing capacitance reed relays of all integrators in parallel to select either the 10nF integration capacitance or the 1uF integration capacitance. The last switch will be a 10 position rotary switch used to select which one of the integrator signal outputs to route to the chassis' metering bus. By means of a selector which matrix, every single "computing module" signal output will be selectable for voltage measurement on the computers built-in 5-digit voltmeter (there will be a separate chassis associated with the timing/control chassis called the "metering chassis").

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=132834;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=132832;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=132836;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on February 01, 2015, 10:25:34 am
Getting closer........

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=133667;image)
Title: Re: Home Brew Analog Computer System
Post by: netdudeuk on February 01, 2015, 02:43:45 pm
Looks amazing.  It wouldn't even matter if it didn't work  :)
Title: Re: Home Brew Analog Computer System
Post by: peter.mcnair on February 01, 2015, 03:45:00 pm
Excellent!

From one analog computer builder to another:

Beyond Rössler...

dx/dt = - ax - cos(by),

dy/dt = -ay - cos(bz)

dz/dt = -az - cos(bx) .

I just finished my computer yesterday - well almost - still needs a back panel - and maybe a fan (or two...).

Given that I can now do trigonometric functions, I tried patching up the above equations...it's awesome - the results looks like soldering iron fumes!

(details in http://analog-ontology.blogspot.co.uk/2015/02/beyond-rossler.html (http://analog-ontology.blogspot.co.uk/2015/02/beyond-rossler.html))

Above equations from:

Experimental Study of the Sampled Labyrinth Chaos. Tomáš Götthans, Ji?í Petržela, Radioengineering, Vol. 20, No. 4, December 2011.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 02, 2015, 07:33:18 am
Very nice. That one might like look impressive rotated in 3D projection.

Just out of curiosity, have you tried to derive an electrical analogue for any of the systems from Sprott's book represented by the equations in jerk form (chapter 3.5)? He has a few example circuits in chapter 10, but this isn't something I've started at yet.

I like your trig function generator, but I think you've cheated a bit with the EPROM  ;D. I'm sticking with the traditional analogue methods for my function generators, but will be resorting to digital for my programmable/variable analogue time delay unit, for simulating transport lag.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 02, 2015, 11:50:04 am
Looks amazing.  It wouldn't even matter if it didn't work  :)

The power supply worked first time, well after I fixed the improperly wired transformers  ::). There are 4 regulated rails: +/-110V and +/-15V. The two vertically mounted toroidal transformers are 55V+55V secondary types with the secondary windings connected in series to give me 110V+110V (+/-155V rectified DC) for the high voltage rails. I accidentally wired them out of phase the first time around so the voltages summed to zero.

After fixing that issue and testing/calibrating the power supply I started testing the integrators by wiring them up to the regulated supply rails one by one. The "outboard" transformer shown in the picture is a 18V+18V secondary type for the +/-15V regulated rails. This one doesn't have a high enough VA rating to power all 10 integrators and is just wired in for testing purposes. I don't have the correct transformer for installation yet.

Anyway, for testing purposes I knocked up a quick test circuit (as shown in the pic) on the breadboard. Basically it's a couple of threshold comparators (LM311's) and a flip-flop (1/2 4013) and a BC560 acting as a level-shifter, wired to make a (when wired to the integrator under test) a 200Vp-p triangle wave generator.

This whole thing will look two hundred times neater when finished and all the wiring is neatly bunched up and cable tied.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=133855;image)

BTW, does anyone have long term experience with those soft, rubbery-like, self-adhesive thermal insulator pads? I had these hand so I used them for the TO-264 power transistors (+/-110V rails series-pass) mounted on the heat sink, but they appear rather marginal to me. I think I'll replace them with reliable mica and good old thermal paste.

Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on February 02, 2015, 12:19:58 pm
110V?  What for?  3/2 power functions from toobz?! ;D

Sil-pads are only good for the thermal resistance they claim (if even that..), so, typical on a TO-247 is 50W tops, maybe up to 100W with a water cooled sink.  So the 264's will be slightly better, but not by too much.  I shouldn't think that's a problem unless you need amperes from those supplies...

Tim
Title: Re: Home Brew Analog Computer System
Post by: GK on February 02, 2015, 12:30:28 pm
This is a 100V computer.

I'm not concerned with heat transfer, but electrical isolation. These double-sided adhesive pads are as soft as bubblegum.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=133858;image)
Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on February 02, 2015, 12:51:47 pm
Is that the almost jelly-like kind, then?

Those aren't intended for use with screw clamping force.  You need the stiffer rubber kinds for that.

The soft stuff is fantastic for filling space, like if you need better conduction between a PCB and mounting plate.  It works even if you've got a bunch of 0603 and 1206 parts on the backside.

Might also look into a "full pack" style transistor in that size.  Kind of late as you've already bought and installed them, and such variants aren't always available, but... just something to keep in mind.

Tim
Title: Re: Home Brew Analog Computer System
Post by: peter.mcnair on February 02, 2015, 12:53:06 pm
Just out of curiosity, have you tried to derive an electrical analogue for any of the systems from Sprott's book represented by the equations in jerk form (chapter 3.5)? He has a few example circuits in chapter 10, but this isn't something I've started at yet.

I've only done his JD5 (attached) and JD2...I will have a crack at his 'chaotic memory oscillators' - Table 3.3 - especially now I can do sinh(x) and the like - albeit digitally  ;)
Title: Re: Home Brew Analog Computer System
Post by: krivx on February 02, 2015, 01:30:11 pm
Off-topic, but how did you machine that case to have all those holes in such a neat grid? My efforts would be much sloppier...
Title: Re: Home Brew Analog Computer System
Post by: Ebivetar on February 02, 2015, 01:58:37 pm
Really amazing project. I have one book similar to this stuff, Analog&Digital simulations or something.

Can OP tell me what is the difference between using Analog computer and Matlab+Simulink?
Will this computer simulate the system faster and maybe with higher precision?
I am also interested how do you measure the processing speed/power of analog computer?

If you can please recommend me some books regarding this.
Title: Re: Home Brew Analog Computer System
Post by: GK on February 03, 2015, 05:31:33 am
The adhesive washers were cut to size with the mounting hole punched and sold specifically as transistor thermal mounting pads. Whatever they are they are cwap. I wouldn't even like to use them for transistors mounted with spring clamps. The issue is moot now anyway as I have a 100 pack of mica pads on the way.

See replies #196 and #198 in this thread for details of the panel drilling method.

Without delving in deep it's rather a bit difficult to make any truly meaningful comparisons between the processing power of an analog computer versus a digital computer, although I can say from first hand experience that an analog computer can plot a chaotic attractor waaaaayyyyyyyyy quicker than my 32k, BBC Model B computer can.  ;D

Ancient analog computing books that I've tracked down on Abebooks listed here:

http://www.glensstuff.com/analogbookshelf/analogbookshelf.htm (http://www.glensstuff.com/analogbookshelf/analogbookshelf.htm)

Title: Re: Home Brew Analog Computer System
Post by: GK on February 12, 2015, 12:49:38 pm
Just finished the patchable Summing Amplifier design and am about to send off the PCB files for manufacture. 20 of these are going to be made.
The design uses a variation of "chopper" stabilization to achieve a sub 100uV input offset error. In lieu of a mechanical chopper and high gain demodulator amplifier, I've used a modern "auto-zeroing" op-amp (AD8538) for the DC path. However the basic principle of operation is exactly the same as the old school approach, of which I have attached an example (taken from Electronic Analog and Hybrid Computers, Korn & Korn, chapter 4).

The amplifier is unity gain stable and has a GBWP a little under 2 MHz. Slew rate is 13V/us for a full "power" (or rather amplitude - 200 Vp-p) bandwidth of 20 kHz.
Simplifying by neglecting the effects of U1's Ib (15 pA typical) drawn from the summing junction and U1's Vos (5 uV typical) the net input offset error of the discrete HV op-amp is reduced by a factor of 1010 (61dB), which is equal to the DC gain of the stabilization path. The RC networks introduce a number of poles and zeros that work together to frequency compensate the stabilization path, giving it a continuous dominant pole roll-off throughout the effective operating frequency range. The DC stabilization path reaches unity gain at 140 Hz. At this frequency point the discrete HV op-amp open loop gain has only just begun itself to integrate and accumulate phase due to the dominant-pole Miller compensation, so the combined whole control loop sub 140 Hz never even reaches conditional stability (not that it would be much of a concern if it did).

Open loop gain at DC is obviously huge; being the sum of all stages. The only down side of this stabilization scheme (and all those that operate on the same principle) is that clipping must be avoided. If the amplifier output is "saturated", or slammed up against a rail, the high gain stabilization path goes open loop and itself rails out. Due to the long time constants involved, it takes the circuit a while to reach equilibrium again once the over-driving input signal is either removed or reduced in amplitude. However since I don't have to filter out 50/60Hz demodulation ripple to sub mV levels, by stabilizer time constant is orders of magnitude shorter than what the mechanical chopper guys had to live with back in the tube days.

The frequency compensation/equalization capacitors across the high-value feedback network resistors are mandatory for stability. The amplifier would never be stable at a GBWP of nearly 2 MHz with an un-bypassed 500k feedback resistor. For example 500k would corner with just 5pF of input capacitance at less than 70 kHz. The 15 pF bypass capacitance solves this problem not only by counteracting the LF pole that would otherwise be formed by the 500 k  feedback resistor and the amplifiers effective input capacitance, but by providing a healthy amount of phase-lead compensation to boot. Of course 15pF otherwise corners with 500k at only ~21 kHz, so in order to maintain the amplifiers full closed loop small signal bandwidth the equalization capacitors are added to the input resistors.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=136282;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=135825;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=135827;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on February 15, 2015, 04:12:28 am
Attached is the complete schematic for my logarithmic amplifier module. Due to the utility of log amps in a analog computer, I've decided to build 10 of these instead of only five. A custom 2U 19" chassis will house 10 of these along with their power supply. Another 2U chassis will house 10 exponential amplifier modules.

The transfer function is simply:

Eout = K * ln (Ein).

K = a fixed scaling factor of 20. The operating input voltage range is 0.01V to 100V, producing an output voltage in the range of +/- 92.1V.
The output amplifier clips at approximately +/-105V, so the dynamic range is a smidge over 4 decades.

The actual log converter based on the SSM2212 is a "fast" design I came up with on my own. Over the 4 decades it is very accurate (overall significantly better than 1% when trimmed).

A conversion to a logarithm of any base is simply a matter of external scaling by the programmer.

Two years and ~one month (wow) later and I've made a number of improvements to this original design. Attached is the final schematic for the board finally about (waiting for the end of Chinese New Year holidays.....) to be manufactured in a quantity of ten. For the record I've stumbled across prior art and my unique logarithmic converter circuit turns out to be not very unique after all.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=144386;image)
Title: Re: Home Brew Analog Computer System
Post by: TimNJ on March 02, 2015, 06:17:26 am

Ancient analog computing books that I've tracked down on Abebooks listed here:

http://www.glensstuff.com/analogbookshelf/analogbookshelf.htm (http://www.glensstuff.com/analogbookshelf/analogbookshelf.htm)

Hi Glen,

I've been learning about analog computation in my signals & systems class. I'm finding it very interesting and I want to get some literature on it. Out of the books that you own, is there one that you think would be a good book to start with and give a good overview for an analog computer beginner?
Title: Re: Home Brew Analog Computer System
Post by: GK on March 02, 2015, 07:50:14 am
Hi Tim,

I'd recommend Basic Analog Computation by Gerald R. Peterson.

Title: Re: Home Brew Analog Computer System
Post by: TimNJ on March 02, 2015, 08:04:54 am
Hi Tim,

I'd recommend Basic Analog Computation by Gerald R. Peterson.

Thanks! Looking forward to more of your great work.
Title: Re: Home Brew Analog Computer System
Post by: GK on March 30, 2015, 10:17:47 am
Tim - thanks for the interest,
Wilfred - great article.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Well I have the first of the 3 integrator chassis' up completed electrically and fully tested and all works absolutely perfectly except for one annoyance. The reed relay model I selected for switching the integration capacitance doesn't seem to be up to the task. I am getting (about 5% of the time) contacts intermittently sticking on after switching in the ~1uF integration capacitor.

The reed relay I am using is HE721A1210, "form A" here:

http://www.farnell.com/datasheets/16797.pdf (http://www.farnell.com/datasheets/16797.pdf)

The contact ratings are:

Voltage switching : 200Vdc
Current switching : 500mA
Current carrying : 1.2A
Power switching : 10W

When the ~1uF capacitor is switched in by the relay, the potential difference between the contacts can be as high as 210V. The integrator op-amp output V saturates at +/-105V. For example, if the 1uF was switched out while the integrator was railed out at -105V, the 1uF will be floating with a charge of 105V. If the 1uF is then switched back in when the op-amp output is railed out at +105V, then at that instant the relay contacts potential difference will be at that worst case 210V.

The op-amp power output stage is short-circuit proof and current limited to +/- 20mA, so that sets the maximum peak surge current through the capacitor when it is initially switched in. That is well below the relays maximum rated "switching" current of 500mA.

The relay datasheet makes not mention of switching current de-rating with switching voltage, but I figured that 20mA should be pretty safe. Well, unfortunately, not so. I'm getting intermittent contact sticking/fusing with that 20mA peak surge with less that 100V across the contacts. Giving the stuck relay a gentle tap reliably opens the contacts.

I guess that I am going to have to source a replacement relay, quite possibly not of the fragile reed type. I doubt that I'll find one with the same footprint so it will most likely have to be a fudge to the PCB.

Oh well, I guess you can't build something this complicated with out at least one thing going wrong.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=144381;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=144377;image)
Title: Re: Home Brew Analog Computer System
Post by: TimFox on March 30, 2015, 02:05:15 pm
Keep up the good work on this project!  In college, we had the Heath EC-1 analog computer with 9 opamps and +/- 60 V output range.  I believe that each amplifier used a single 6AN8 pentode/triode for an unbalanced inverter followed by a cathode follower, open-loop gain roughly 1000.
A few years ago, I was visiting a Boeing laboratory.  They received the Boeing house organ magazine, which was always interesting for its historical articles showing cool aircraft.  One month, they had a picture and short article about an analog computer, circa 1950, in the engineering lab.  Interesting details:
1.  The engineer was properly dressed, with white shirt and tie.
2.  To his right, there was a large blackboard with the differential equations and cross-reference to the controls on the analog computer.
3.  To his left, there was a 19" rack with about 6 feet of analog computer panels.
4.  The article, presumably written by a young person, said something like "The analog computer generated so much heat that 200 vacuum tubes were required to remove the heat."
5.  Next month's issue had quite a few corrections from senior Boeing engineers.
Title: Re: Home Brew Analog Computer System
Post by: SeanB on March 30, 2015, 04:19:58 pm
Can you not put a resistor of around 10R in series with the contact? It looks like the killer is the current spike when the relay switches the capacitor and there is a voltage stored on one set of capacitors that then equalises. High peak current, and with up to 100V of drive that will be a pretty hefty pulse, especially for a small low power relay to handle.
Title: Re: Home Brew Analog Computer System
Post by: TimFox on March 30, 2015, 04:37:31 pm
I just remembered another article, where the editor must have been a young person.
This was in EDN, maybe 10 years ago.  It was on the history of the vacuum-tube operational amplifier.
First, it described the design by Julie during WWII, which used a 6SL7 (octal) dual triode as the differential input stage.
Then, it described the postwar commercial design from Philbrick, a very similar circuit using a 12AX7 (9-pin miniature) dual triode.
Both devices were referred to as "high-micron" triodes in the article, as a misunderstanding of "high-{mu}".
Title: Re: Home Brew Analog Computer System
Post by: GK on March 30, 2015, 11:01:13 pm
Can you not put a resistor of around 10R in series with the contact? It looks like the killer is the current spike when the relay switches the capacitor and there is a voltage stored on one set of capacitors that then equalises. High peak current, and with up to 100V of drive that will be a pretty hefty pulse, especially for a small low power relay to handle.

Yes, I didn't mention that, but the other cap is only 10nF. Shorting a 10nF charged to 200V on the bench gives me the tiniest spark. Though I guess now too much of a spark for the selected reed relay. In hindsight a better design would have used a SPDT relay to select either one capacitor or the other.
I can't tolerate any resistance approaching an ohm in series with the 990nF as that gives too much of a departure from an ideal transfer characteristic for a computing integrator. I just need a more robust signals relay.

Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on March 31, 2015, 12:00:10 am
Don't forget that, that cute little capacitor offers a peak current of 200A with a pulse width or cycle time around 10ns (frequency ~16MHz).  At that voltage, it will arc over before the contacts touch, probably ablating a microscopic crater in the contacts and leaving a molten peak, which welds imperceptibly when it closes.

Under those transient ringing conditions, the peak current may also damage the input and output protection diodes.

Can you arrange a follower so the capacitor is maintained at input voltage (at one end) without loading the input or output?

Note that shorting the output will also damage the input protection diodes.

Tim
Title: Re: Home Brew Analog Computer System
Post by: GK on March 31, 2015, 12:12:36 am
Note that shorting the output will also damage the input protection diodes.

No it doesn't. I have over 48 hours of continuous cycling on the 1st prototype and the input diodes survived unscathed. That is with the output railed to +105V and the output shorted to ground - 10s off/10s on. I can't see the unit getting that degree of punishment in actual use.

http://www.digikey.com.au/product-detail/en/EC2-12NU/399-11029-5-ND/4291095 (http://www.digikey.com.au/product-detail/en/EC2-12NU/399-11029-5-ND/4291095)

Title: Re: Home Brew Analog Computer System
Post by: GK on March 31, 2015, 12:48:09 am
Worst case input diode surge current for an instantaneously shorted output. Note the 1uF instance exceeds the diodes surge current spec (1A for 1mS and 4A for 1uS), but they do survive.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=144475;image)
Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on March 31, 2015, 02:23:00 am
Is the inductor actually rated for (read; doesn't saturate) at 10A?

Tim
Title: Re: Home Brew Analog Computer System
Post by: GK on March 31, 2015, 03:10:44 am
Under those transient ringing conditions, the peak current may also damage the input and output protection diodes.

Charge equalization between the caps will not force any current to flow through the protection diodes and as I stated previously, peak current through the input protection diodes when the 1uF is switched in is limited by the current that the op-amp output stage can provide - limited at 20mA.

The dv/dt of the supply rail charge/collapse during power on/off is orders of magnitude too slow to cause any significant timing capacitor discharge currents to flow through the protection diodes.

Yes, regarding that quick and hasty sim the inductor will be well and truly saturated at 11A, but the DCR is a couple of ohms. As a quick aside before lunch I managed to partially kill a 1n914 with 1uF capacitor discharge pulses. At a 30A peak limit the diode was unaffected even after dozens of discharges but just over 20 discharges with the peak current ramped up to 90A finally did it. The diode is still Hi-Z in the reverse direction but Vf has dropped to 380mV.

The only situation in which the input protection diodes can be subjected to a current surge beyond the specified guaranteed safe maximum is if the integrator output is abused by abruptly shorting it to ground with a low impedance when the output voltage is either steadily or instantaneously at a high value. Accidently miswiring the integrator output when patching a program and then firing the computer up, resulting in the integrator op-amp current limiting, will not have the same effect, as at that time the timing capacitor has not acquired a charge.

I honestly don't see it as a potential problem given normal use of the machine, and more so as my attempts at blowing up the initial prototype by shorting the output were wholly unsuccessful.

Title: Re: Home Brew Analog Computer System
Post by: GK on March 31, 2015, 07:51:59 am
In solder rather than spice this time. I get a peak current of 24A. Yes the current sensing resistor is a wire wound type, but having such a low R value I can assure you that it has negligible inductance. Yes the 100uH inductor must be saturating to some degree but obviously the effect is not instantaneous and the pulse rise time and peak amplitude is still significantly effected. The initial negative spike I believe is due the inductors capacitance. If I remove the L the peak current drops to 10A and has an almost instantaneous rise time on the 5uS/div time scale (just as you'd expect from ohms law) but I have since zapped the diode with that 24A over 300 times now with no ill effects, which is in line with my prior testing on the initial prototype. Vf for the diode peaks at 5.2V. It therefore has a dynamic resistance of approximately 0.22 ohms.

I have desoldered the diode(s) and tested for reverse leakage at significant V and forward voltage drop and it appears to be completely unaffected. There just doesn't appear to be enough energy in this discharge to kill the diode. I also found that the ability of the 1uF cap to deliver a high current pulse is less than you'd expect from a basic calculation from its basic ESR. In order to get that diode-killing 90A discharge that I mentioned in a previous post I had to ramp the supply up to 150V and delete all of the series resistance (except for the 0.1R).

I've ordered the replacement relays.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=144521;image)
(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=144525;image)
(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=144523;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on March 31, 2015, 08:12:13 am
I just remembered another article, where the editor must have been a young person.
This was in EDN, maybe 10 years ago.  It was on the history of the vacuum-tube operational amplifier.
First, it described the design by Julie during WWII, which used a 6SL7 (octal) dual triode as the differential input stage.
Then, it described the postwar commercial design from Philbrick, a very similar circuit using a 12AX7 (9-pin miniature) dual triode.
Both devices were referred to as "high-micron" triodes in the article, as a misunderstanding of "high-{mu}".

Hi Tim,

The full manual for the EC-1 is here:
http://www.analogmuseum.org/library/heathkit_ec1_operation_manual.pdf (http://www.analogmuseum.org/library/heathkit_ec1_operation_manual.pdf)

The whole "library" of Bernd Ulmann's "Analog computer museum website" is worth checking out:
http://www.analogmuseum.org/english/library.html (http://www.analogmuseum.org/english/library.html)

It was my initial discovery of the EC-1 manual and then Bernd's site that got this whole project started.

Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on March 31, 2015, 03:51:21 pm
Hmm, fascinating.  Nice test! :-+

Also, that's not a bad 8/20us pulse, crudely speaking.  If that puts any kind of perspective on it, relative to conventional surge protection diodes.

The datasheet says 4A I_FSM at 1us, so you're definitely well beyond that, but for the range between "yeah, it'll do this under continuous service for decades" and "it only has to survive a few hundred surges", who knows.  Those tiny diodes used for USB that claim 15A surge (8/20) and have lower capacitance than this one, can't possibly be holding up too well after their tests... but they only have to withstand 10 of them for the entirety of the test, or whatever.

Tim
Title: Re: Home Brew Analog Computer System
Post by: GK on April 24, 2015, 10:17:12 am

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=148558;image)

The thermistor mounted above the SSM2212 dual precision NPN transistor for ambient temperature compensation of the scale factor:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=148560;image)

The original plan was to fix the Coke bottle cap down with Araldite and then fill from the bottom of the PCB. That's what the two (5mm dia.) holes are for - epoxy syringed into one and air out the other. However I'm now perhaps having second thoughts about filling with epoxy (a la Jim Williams) as that would make any future re-work (replacement of the SSM if necessary) a bit of a bother. Has anyone here ever looked into the long term conductivity/insulation properties of hot melt glue?

The calibrated log conformance and scale accuracy over the smidgen over 4 decades input (10mV to 100V) that the output is within its voltage swing limitations is within 0.1% by my preliminary measurements. Haven't got time to tabulate values and plot the error curve tonight so just a scope screen shot:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=148562;image)
Title: Re: Home Brew Analog Computer System
Post by: SeanB on April 24, 2015, 06:04:56 pm
Use beeswax, as then it will still be a good thermal conductor and yet will still be easy to remove for rework.

I have an embarrassing amount of Tektronix wax blocks though, all black ( black is 'free' when you order the colour wax blocks) if you want the finest quality ultra pure wax to use in that application. All in nice easy open single shot packs. If you want some shoot me a PM and your address (again) and I will pop them in the post for you on Tuesday ( Monday is a public holiday) if you want to wait the 2 weeks.
Title: Re: Home Brew Analog Computer System
Post by: GK on April 26, 2015, 01:25:33 pm
Ooh... that reminds me, I still have a prezzie (a bit lame really) sitting on the shelf here to send in return. I don't know much about beeswax. Is it non hygroscopic and a very good insulator? What did Tektronix do with it? Google just brings up references to "Phasor" printers.

Title: Re: Home Brew Analog Computer System
Post by: SeanB on April 26, 2015, 02:08:11 pm
Bingo, I have one Phasor printer still intact, and in perfect working order, you just need wax ink at \$200 per pack of 3 blocks, which it will happily consume in a month even if you do not print a single page. If you turn it on it does a clean cycle, which uses a half block of each of the Cyan, Magenta, yellow and Black ( black is free BTW) wax blocks.

I used to print a lot of jobs to that printer with a black background and white text, just because it was so good at making a very good dense black print, and of course it actually does not cost any more, it will have dumped that black wax in the maintenance tray in any case.

There was one DTP graphics shop with a dozen of these printers, and a salon next door, which used the black wax blocks to darken the regular pale wax to do hair removal, sort of as a differentiator.

Beeswax is not hygroscopic, and is traditionally used as a protective coat in RF circuits, you will have come across it in older transistor radios as a coating applied to the FM RF and AM RF sections to keep them all from vibrating or moving if dropped. Melts in boiling water or a double boiler for you to pour into a mould, and is soft enough and flexible enough to enable rework without taking it all off.
Title: Re: Home Brew Analog Computer System
Post by: GK on April 28, 2015, 09:41:31 am
OK, I'll send you a PM.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

I am currently finalizing the electrical design of a companion for my log amplifier module - the antilog module.

The log module detailed already has the transfer characteristic:

eout = k (ln * ein)

where ein is a unipolar intput ranging 10mV to 100V (4 decades).
k is a fixed scaling factor of 20 and eout clips at a +/-105V. A table of ein/eout looks like this:

Code: [Select]
`ein        eout10mV      -92.1V100mV     -46.05V1V         0V10V        46.05V100V       92.1V`
The antilog amplifier the direct inverse transfer characteristic:

Code: [Select]
`ein        eout-92.1V     10mV-46.05V    100mV 0V         1V46.05V     10V92.1V      100V`
The equation is simply

eout = exp(ein/k)

where k again is a fixed scaling factor of 20.
So if you wire a log module in series with an antilog module (either way around) you end up with a linear transfer characteristic (disregarding errors).

My, perhaps stupid question is this: what is the most commonly accepted way of expressing a natural antilogarithmic equation?

exp (exponential function) as above, or:

eout = antiloge(ein/k)

that's e indicating base 2.71

or:

eout = e(ein/k)

?

Here is the basic schematic:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=149209;image)
Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on April 28, 2015, 04:39:12 pm
I don't know that there's any significance between "antilog" and "exponent".  I would go with "exponent".

Whereas there's a difference between antiderivative and integral (the integral is with the "...plus a constant" part, depending if it's definite or indefinite).  Of course, your integrator module is implicitly definite, so that's taken care of.

There are different types of logs, but this is an analytical rather than computational luxury (the complex logarithm has an infinite number of corkscrew layers to choose from; the Ln(z) function denotes the simplest "main branch" choice around zero).

Tim
Title: Re: Home Brew Analog Computer System
Post by: GK on April 29, 2015, 05:03:43 am
Antilogarithm appears to be an antiquated term for the exponential function. The Wikipedia "Exponential function" page cites a text dated 1911 for usage of the term. Funny that before I stumbled upon the Wikipedia page I couldn't find this explicitly and unambiguously stated anywhere.

So long as the superscript is practical I think I'll prefer ex. That is more descriptive of the function (Euler's number raised to the power of x)  than exp(x).

Title: Re: Home Brew Analog Computer System
Post by: recjohnson on April 29, 2015, 11:18:49 am
Very interesting thread! I have just started reading and have a long way to go.. The sine function generator you posted in the first post reminded me of a function generator chip ICL8038 that has a similar topology inside.

While I go through rest of the thread, I just want to say, this is a damn impressive project! Thanks for posting in such detail.

Title: Re: Home Brew Analog Computer System
Post by: GK on April 29, 2015, 01:19:53 pm
Hey, no worries. There are a few pages to get through now  :)
Title: Re: Home Brew Analog Computer System
Post by: GK on May 01, 2015, 12:44:16 pm
Well, this evening I "wrote" and ran my very first program on the thus far completed hardware. I was about to strip the 1st iteration of the main board of the computers master control unit of it components as I have since improved the design and will be re-building it, but before doing that I patched it to one of my completed integrator chassis' and ran a simple physics problem. Here it (the master control unit card) is, patched to the integrator chassis:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=149647;image)

You can't do a lot of simulation with just a panel of integrators, but one well known physics problem that can be solved is the falling body problem. It only required two integrators:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=149649;image)

Here is a rather crappy video of the program being run. The simulation solves y and the computer is operating the the repetitive mode. The horizontal axis is t and the vertical axis is y. The control unit furnishes the re-trace blanking signal and the horizontal sweep of t (the independent variable) for the oscilloscope.

Note that this isn't a plot of the bodies trajectory but the distance that it has fallen during time t. To make the program a little more exciting I added a negative initial condition value for y, instead of starting at zero velocity. The I.C. value is negative, so the very start of the solution is a plot of distance climbed, rather than fallen.

I started recording the simulation with the constant for gravity (g) at zero, so the initial solution for y is just a linear ascent straight up into outer space. However as I manually wind the constant for gravity up from zero, the ascent is eventually overcome and the body begins to fall at an accelerating rate.

Incidentally, here is what the finished master control unit will look like when finished. I am working on this chassis now, with a degree of priority, because with the completed master control unit handy I'll be able to actually start running some serious programs as I slowly complete each successive chassis of analogue computational units.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=149651;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on April 01, 2016, 12:37:11 pm
...................Also got my front panel for the display unit from Front Panel Express. Things are slowly progressing.........

Can't believe that almost 3 years has passed. I've had the front panel taking up shelf space since and the CRT has been sitting on a towel on the floor just waiting to be accidentally tripped or knocked over. It's finally time to get this thing finished and mounted into the computer systems relay rack, out of the way.

I ended up getting a little more adventurous with the design. I originally had a low-voltage, high current current-sense feedback amplifier for driving what was originally the horizontal coil of the CRTs yoke, and a high-voltage current-sense feedback amplifier for driving what was originally the vertical deflection coil.

The H coil has 2mH inductance and the V coil was comprised of two individual windings of 70mH each which were originally connected in series for 140mH. I had connected them in parallel for a much more manageable 35mH. Well it doesn't need to be said that the comparative bandwidth of the 35mH channel was crap. The small signal bandwidth was only 5kHz, while I had eventually gotten the 2mH axis close to 100kHz.

Well today I fixed that problem. Here is the disassembled yoke still retaining the 2mH (horizontal) deflection coil in the inside:

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=213820;image)
(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=213822;image)

Here is the new vertical coil after I re-wound it. Each ferrite core half was originally wound with several hundred turns of thin copper wire to give the original 70mH per winding. Now there is 52 turns of much heavier enameled copper wire returning only 325uH per winding.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=213824;image)

The yoke re-fitted to the CRT. I am still using the donor televisions old motherboard to supply the operating supply voltages for the CRT. Haven't progressed with this project to the extent of designing my own switched-mode supply yet.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=213826;image)

Here is the system up and running (my "Sprott Systems" analog computer [case M] providing the deflection signals). The current-sense feedback deflection coil driver amplifiers are those thingos sitting in front of the CRT. The originally high-voltage one has now been heavily modified to run on the same low-voltage power supply rails as the other amplifier. Performance is now awesome and more than adequate for repetitive analog computer stuff. Small-signal bandwidths for both X and Y deflection channels are currently in the order of 100 kHz, full-power (or rather full-scale deflection) bandwidths several kHz (current deliverable to the deflection coils is slew-rate limited by the maximum voltage that the linear amplifiers can swing).

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=213828;image)

This weekend I'll get the case fabrication completed.
Title: Re: Home Brew Analog Computer System
Post by: T3sl4co1l on April 01, 2016, 01:27:57 pm
Curious: any interest/ideas about a constant-intensity display?  That is, intensity ~proportional to d(x, y)/dt?

Tim
Title: Re: Home Brew Analog Computer System
Post by: GK on April 02, 2016, 05:02:33 am
Don't think so.
Title: Re: Home Brew Analog Computer System
Post by: timofonic on April 02, 2016, 08:02:12 am
Would a similar design using SMD be possible and provide some advantages or the high current would do it unable to be made?
Title: Re: Home Brew Analog Computer System
Post by: rstofer on April 02, 2016, 10:11:42 pm
Would a similar design using SMD be possible and provide some advantages or the high current would do it unable to be made?

The OP is building a 100V Analog Computer.  SMD parts may be hard to find.

Later generations used 10V as '1' so, yes, SMD parts definitely apply.  I used socketed 8 pin DIPs so that I could try various op amps (which I never have) but my next version will likely use SMD.  I just need to settle on some particular op amp.

Accurate capacitors will be a problem regardless of form factor and the capacitor is the key ingredient for the integrators.  There used to be some very accurate capacitors used in commercial analog computers.  I have yet to find a source much less in SMD.  0.1% would be acceptable.

Here is the machine I built.  It has 2 integrators, 3 summers and an inverter plus some other gadgets like a multiplier.  Two integrators is a serious limitation except that it will handle many problems in mechanics as it can handle acceleration, velocity and distance as this only requires two integrators.

http://www.analogmuseum.org/english/homebrew/vogel/ (http://www.analogmuseum.org/english/homebrew/vogel/)
Title: Re: Home Brew Analog Computer System
Post by: GK on April 03, 2016, 11:25:15 am
Would a similar design using SMD be possible and provide some advantages or the high current would do it unable to be made?

Since an analog computer is an antiquated thing I decided to stick with traditional through-hole parts (mostly) throughout, though if you are only referring to the shown deflection drivers for the display unit, they could be mostly implemented in SMD except for the power output devices, which is more practical in through-hole due to the power dissipated. For example the originally vertical (now horizontal as the display is rotated 90 degrees) deflection channel with the re-wound yoke coil requires just shy of +/- 2A peak for full scale deflection (to deflect the dot from the center of the screen to either edge). The supply rails are +/-40V, so if the dot is (horizontally) static at the edge of the screen the deflection amplifier is dissipating ~80W.

Title: Re: Home Brew Analog Computer System
Post by: GK on April 03, 2016, 11:56:52 am
Here is the current supply arrangement to provide all of the operating potentials required of the CRT while I continue to prototype and test the (again) re-designed/improved deflection amplifiers.

I hack-sawed the direct off-line part of the PSU from the donor televisions motherboard and rebuilt the LOPT section dead-bug style on a rectangle of blank PCB, minus all of the superfluous functions.

The direct off-line part is a bit of a crappy discrete self-oscillating fly-back with voltage mode control - I have actually traced out the circuit in its entirety. A BU508 power transistor does the primary switching and a auxiliary secondary winding is used exclusively for feedback and regulation. The secondary winding for the supply rail outputs has a single tap to provide two supply rails (half-wave rectified) of 18V and 110V. The associated rectifier and filter caps are now located on the new LOPT board.

I'll design my own substitute off-line regulator utilizing the magnetics, but I'll do away with the crappy BU508 and all those high power resistors associated with the base-drive circuitry.

The 110V rail, originally serving both the deflection an LOPT circuitry, now only serves the LOPT. The 18V rail now powers an LM555 timer (via a 3V zener V-dropping diode) which substitutes for the horizontal timebase. The TVs original circuit used a 2SD1398 "flyback driver" transistor (with integral anti-parallel diode) BJT to switch the primary current of the LOPT, itself driven from a base-drive coupling transformer and open collector switching/driver transistor receiving the 15.626kHz, ~50% duty cycle horizontal signal from an LSI "horizontal/vertical combination" integrated circuit. I substituted all of that with the LM555 directly driving an STW4N150 MOSFET.

These LOPTs operate in a resonate mode with an external parallel capacitor (which I simply pulled off the TV motherboard). When operating correctly the primary voltage waveform is a clean high-voltage half-sinewave, as shown in that attached scope screenshot (alongside the MOSFET gate-drive waveform). The LOPT provides the final anode, focus grid, screen grid and heater supply voltages for the CRT.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=214368;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=214370;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on October 20, 2016, 09:57:23 am
Long time no post. Got this little projects 19" frame assembled this evening. Now I have 84U to fill.......

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=263725;image)
Title: Re: Home Brew Analog Computer System
Post by: GK on January 07, 2017, 04:27:22 am
Just soldered the very last connection inside the display unit. I still have some lengths of 10x10mm square aluminum rod to cut, drill and tap to attach the top/lid before I can call this complete and bolt it into position in the 19" rack, but it's currently over 50 deg. C in the garage so I think I'll put off doing that for another day.

A graticule for the display will be electronically generated by a separate patch-able  unit, which will mount in the rack immediately below the display unit. This is what I am currently working on. The drawing of the graticule on the screen will work on a time-shared/alternate basis, synchronized/multiplexed by the computers control unit (the graticule being scribed in the computers repetitive mode whilst the integrators are being reset to initial conditions).

With the CRT having been idly sitting around lots operating equipment for some time in the meanwhile, it looks like the shadow mask has become non-uniformly magnetized a far bit. If several more power on/off cycles of the internal degausing circuit does not fix the colour impurity (it's a long time to wait for the PTC thermistor in series with the degausing coil to cool down again) I might have to home-brew a heavy-duty wand.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=283563;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=283565;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=283567;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=283569;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=283571;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=283573;image)
Title: Telefunken's bouncing ball in a box.
Post by: GK on January 11, 2017, 01:30:18 pm
Just for fun this evening I worked out a breadboard implementation of the "bouncing ball in a box" analog computer simulation detailed here: http://www.analogmuseum.org/english/examples/bouncing_ball/ (http://www.analogmuseum.org/english/examples/bouncing_ball/)

It was a success:

EDIT: video deleted

The solution runs for ~20 seconds before automatically resetting/restarting. If you turn the volume right up you can hear the DPDT relays clicking. A more refined version would use solid-state analogue switches rather than relays, but I used what I had at hand. Here is my schematic:

EDIT: schematic deleted

EDIT:
Oops. I knocked this thing up on the breadboard in a bit of a rush "on the fly" and have just noticed that I got some signs mixed up in the circuit for solving x and the result is that (in the horizontal motion) rather than loosing speed with time the ball (defying the laws of physics!) gains speed instead. It's 1am now and I am going to bed. Will fix this tomorrow and up-load a replacement video and schematic.

Title: Re: Home Brew Analog Computer System
Post by: BrianHG on January 11, 2017, 03:01:59 pm
I thought it was meant to do that.  It looked cool...
Title: Re: Home Brew Analog Computer System
Post by: GK on January 12, 2017, 08:56:31 am
I thought it was meant to do that.  It looked cool...

It did look cool, but unfortunately no, the ball gained energy with time. Anyhow, I fixed it and now it operates properly. IMO it looks even cooler now that the ball movement conforms to reality, slowing down with time and eventually almost coming to a halt. Here is a new video and the revised schematic:

(http://www.glensstuff.com/ballimkasten/ball1.jpg)
Title: Re: Home Brew Analog Computer System
Post by: BrianHG on January 12, 2017, 10:29:02 am
Now all you need is 3 push button paddles, one for each border, to manually add energy back into the bounce only when struck exactly at the right time changing this into some sort of user game, or pushing just prior to the ball hitting it's border stealing it's energy slowing it down further.
Title: Re: Home Brew Analog Computer System
Post by: GK on January 13, 2017, 07:59:04 am
Now all you need is 3 push button paddles, one for each border, to manually add energy back into the bounce only when struck exactly at the right time changing this into some sort of user game, or pushing just prior to the ball hitting it's border stealing it's energy slowing it down further.

What I really need is 48 hours in a day, LOL. What you describe would be quite easy. Window comparators could detect the boundary-proximity. Pressing any button would trigger a monostable, the brief output pulse of which, dependent on the window comparator status, would inject a pulse of either positive or negative current into both the x and y circuit velocity integrators; thus either incrementally speeding the ball up or slowing it down. To make a game of it though my preference would be to introduce some logic to produce a movable paddle and implement a Pong-like game.
Title: Re: Home Brew Analog Computer System
Post by: GK on June 29, 2019, 06:15:42 am
Time flies.

I am finally getting stuck into this project again and hope to make some major progress in the coming months, having a whole bunch of chassis underway. Just soldered the remaining parts to the regulator board for the +/-100V Reference Supply chassis, which has been sitting dormant on the shelf for over 3 years now. Seems to work as intended. The reference for the regulator is a good old LM399 and this thing wasn't designed to set any benchmarks for ultra low noise, but to just have a decent degree of stability and negligible mains ripple/hum. Drift under load over several hours of initial testing, sitting on my bench, has been well under 1mV.

Now that I have a new toy (Keysight 34460A) I can properly calibrate stuff and characterize all of my non-linear modules to a decent degree of accuracy.

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=773505;image)

(https://www.eevblog.com/forum/projects/home-brew-analog-computer-system/?action=dlattach;attach=773511;image)