The circuitry of the unit presented here is an elaboration and expansion upon, using modern components and techniques, the basic 3-dimensional scheme described in chapter 9 of Ref. [1] (from hereon referred to as Mackay & Fisher), the relevant pages of which can be downloaded here. I do understand that I am technically in violation of copyright by providing these 4 pages in total for viewing and distribution, but the text is a rather old one (1962) and has been out print for several decades as it concerns a wholly obsolete technology. I'm quite sure nobody will mind.
For my implementation I functionally reproduced the transformation units described by Mackay & Fisher to the extent necessary to generate, from the x, y and z input signals, the signals:
x’ = x cos θ – z sin θ
y’ = y sin Φ – z’ cos Φ
z’ = x sin θ + z cos θ
Where:
θ is the angle of rotation about the y axis and
Φ is the angle of rotation about the x axis.
x' and y' are the horizontal and vertical deflection signals for the oscilloscope display respectively and z' is simply required to compute y'.
Instead of using a pair of the novel (but no longer available) quad-wiper, sine-cosine law potentiometers as detailed by Mackay & Fisher, I used software-ganged 8-bit digital potentiometers controlled by a microcontroller (uC) programmed with a sine-cosine look-up table. The only change I made to the fundamental operation of the system of Mackay & Fisher was to follow each potentiometer wiper with a switchable inverting amplifier, controlled by the uC. This addition, in a manner to be explained, permitted me to expand the adjustable range for the x-axis and the y-axis angles of rotation to a full 360 degrees each. The design by Mackay & Fisher was limited to a 0-to-90 degree range.
The reason the design by Mackay & Fisher was limited to a 90 degree range in the angles of projection was because a potentiometer by itself can only multiply a variable by a constant having a value in the range of 0 to 1. Figure 1 immediately below shows sine and cosine functions representing the multiplication constants. As can be seen, if operation is limited to the range in which both constants are somewhere between the values of of 0 and 1, the angle(s) of rotation cannot extend beyond pi/2 radians; that being equal to 90 degrees.
Figure 1
Consider the switchable inverting stage based on op-amp U4A and JFET Q1. If Q1 is in the OFF state, the non-inverting input of U4A is presented with the (buffered) signal voltage from the wiper of the stages respective multiplication potentiometer. Input resistor R12 is therefore effectively bootstrapped and U4A simply operates as a unity gain, non-inverting buffer; the respective potentiometer retains a range of 0 to 1 for the multiplication constant. If, however, JFET Q1 is in the ON state, the non-inverting input of U4A is effectively grounded and the stage behaves as a unity gain inverting amplifier; the multiplication constant now has a range of 0 to -1.
Coordinated switching of the JFETs, such that the switchable inverting stage for each sine and cosine function operates in the appropriate mode during each 90 degree quadrant is performed by firmware in the uC (see subroutine sincostable() of the C program listing)
Immediately below are some oscilloscope screen photos of the Rössler attractor, in both 2-D plane views and 3-D projective views. For these displays my Rössler attractor circuit was used as the x-y-z signal source for the projection unit. For each photo the user settings of the x and y angles of rotation are given.
Top-down, 2-D plane view (X-rotation = 90, Y-rotation = 0)
Edge-on, 2-D plane view (X-rotation = 180, Y-rotation = 0)
Edge-on, 2-D plane view, 45 degrees of rotation on y-axis (X-rotation = 180, Y-rotation = 45)
3-D projective view, 45 degrees of rotation on x-axis (X-rotation = 135, Y-rotation = 0)
3-D projective view, 45 degrees of rotation on both x and y axes (X-rotation = 135, Y-rotation = 45)
The digital heart of the system is microcontroller U9. U9 runs off a 5V digital supply rail and logic level shifting to communicate with the digital potentiometers, from 0-5V to +/-2.5V is performed by transistor switches Q7 through Q12. Transistor switches Q13 through Q16 provide logic level shifting to potentials appropiate for the gates of JFETs Q1 through Q6, of the switchable analogue inverting stages.
As already mentioned, the variable angles of rotation about both the x and y axes are set with "fine" and "coarse" control potentiometers. The positions of these mechanical potentiometers are continuously monitored by the internal ADC of uC U9, which programs the multiplication coefficents into the digital potentiometers as appropiate for the given angle(s) of rotation from values stored in a sine and cosine look-up table.
[1] Analog Computing at Ultra High Speed; An Experimental & Theoretical Study. Donald M. MacKay, Michael E. Fisher. John Wiley & Sons Inc. 1962