Introduction: Build a Chaos Generator in 5 Minutes!
The circuit shown is a simple chaotic oscillator that is based on the resistor-capacitor ladder phase shift oscillator. You can use it to show nice pictures (called attractor projections) on your analog oscilloscope in XY mode and impress your friends.
Chaos is defined as long term deterministic and aperiodic behavior, which is bound to a certain region in phase space. What this means is that the circuit oscillates, but not in a regular, repeating fashion. In fact, in theory (ignoring noise) it will never repeat the same path, but it will get arbitrarily close to all points it passes through in phase space.
The phase space here is four dimensional, because the circuit has 4 energy storing elements (the capacitors). Specifying the voltages on all these capacitors, fixes the state, and thus the deterministic evolution of the circuit. What we show in the oscilloscope is actually only a 2D projection, of something that goes on in 4D. If all this seems mind boggling: it is.
The circuit can be build using any number of methods, from air-wiring or breadboarding the components to designing a PCB using for example Eagle, so use your imagination. On a breadboard you can slap this together in mere minutes.
As far as the component values go, none are critical. In fact, poking around with the values will change the shape of the attractor (what you see on your oscilloscope) and experimentation with the values and supply voltage is highly recommended.
For the values of the capacitors as shown (C=1nF, C2=360pF) the free running frequency I got was about +-45kHz. Scaling the capacitor values, allows to reach other frequencies.
Compared to many other chaotic oscillators (such as the Chua's circuit), this one does not need inductors (great for those suffering from Helixaphobia), needs only a single supply voltage and no opamps, just plain general purpose transistors. It will work from 3 or 4 Volts up to 15 Volts, although the attractor shapes will change with the supply voltage too.
Step 1: How Does It Work?
As long as R3 is very high, Q2 will not conduct and the bottom half of the circuit doesn't interact with the RC ladder. the RC ladder provides 180 degrees of phase shift and Q1, being switched as a common emitter amplifier, gives you another 180 degrees. Together, they fulfill the round-trip condition for oscillation.
This will give you a regular oscillation, as shown in Fig. A (R3=60k, Vp=5V).
Lowering the resistor, Q2 can get some base drive, and thus it will interact with/disturb the exact phase relation in the RC ladder, see Fig. B (R3=40k). This leads to what is called a period doubling.
Still lowering R3, band-shaped chaos is reached, Fig. C (R3=39k). At R3=36.5k, the structure is temporarily periodic again. This is called a periodic window. Lowering R3 still further leads to the attractor of the pictures in step one of this instructable. In the center of the 'eyes' of the attractor, there are unstable equilibria, around which the oscillations grow. The circuit jumps erratically between two states of Q2 conducting or not.
(your mileage will vary with these values, depending on component tolerances and exact values etc..)
Explore and have fun!
21 Comments
2 years ago
How do you expect the capacitor values to change the oscillation frequency?
I'm trying to make an absolutely dank, demonic noise generator.
Reply 2 years ago
Check out this article:
https://en.wikipedia.org/wiki/Phase-shift_oscillat...
The frequency scales directly as 1/RC.
2 years ago
I have been trying to work with this circuit, but it never seems to maintain anything resembling the double-scroll behavior for more than a split second.
One possible issue is that I don't have an oscilloscope. I'm using a headphone jack connected to a USB audio interface.
Any tips on getting the pattern to stay stable?
Reply 2 years ago
It might be that the input impedance of the USB audio interface is to low, thus loading the circuit to much and quenching the oscillations. You might try a Hi-Z buffer in between the chaos oscillatir and the USB audio interface. A simple non-inverting opamp buffer might help.
Reply 2 years ago
Where should I connect the sleeve (ground) of the output?
Reply 2 years ago
To the ground of the circuit.
7 years ago
Good explanation.
Just to be complete: where exactly do you connect the scope's probes?
Reply 4 years ago
In the Schematic V1,V2 I think...
Reply 7 years ago
Thanks! The scope connections are in the annotations on the pictures.
4 years ago
Execellance!!!!!
5 years ago
Hello, nice circuit. I am trying to simulate it into LT Spice but I can't get any oscillation. Do you send a specific signal when starting the circuit?
Reply 5 years ago
Thanks. It should work right out of the box. This is my simulation code that works with ngspice:
*** RC Chaos Generator ***
* Supply
vcc 1 0 5.0V
* Circuit
R1 1 2 5k
R2 4 7 15k
R3 2 6 30k
R4 6 0 47k
R6 2 3 5k
R7 3 4 10k
R8 4 5 10k
C1 3 0 1nF ic=1.290847
C3 4 0 1nF ic=0.676498
C4 5 0 1nF ic=0.645246
C2 6 0 360pF ic=0.607691
Q1 2 5 0 BC547CV2
Q2 7 6 0 BC547CV2
.model BC547C NPN(Is=32f Xti=3 Eg=1.11 Vaf=100 Bf=720
+ Xtb=1.5 Br=6.313 Isc=138f Nc=2.053 Rb=1.3k
+ Ikf=500m Ise=230f Ne=1.583 Nk=1.05
+ Ikr=.187 Rc=.4216 Cjc=5.25p Mjc=.3147 Vjc=.5697 Fc=.5 Cje=11.5p
+ Mje=.3333 Vje=.5 Tr=10n Tf=410.7p Itf=2.204 Xtf=66.65 Vtf=10)
.model BC547CV2 NPN(Is=7.049f Xti=3 Eg=1.11 Vaf=24.76 Bf=543.1 Ise=78.17f
+ Ne=1.679 Ikf=94.96m Nk=.5381 Xtb=1.5 Br=1 Isc=27.51f Nc=1.775
+ Ikr=3.321 Rc=.9706 Cjc=5.25p Mjc=.3147 Vjc=.5697 Fc=.5
+ Cje=11.5p Mje=.6715 Vje=.5 Tr=10n Tf=410.7p Itf=1.12 Xtf=26.19
+ Vtf=10)
* PHILIPS pid=bc547c case=TO92
* 91-07-31 dsq
* Simulations
.control
tran 100ns 5ms
wrdata out v(2) v(3) v(4) v(5) v(6)
exit
.endc
.end
Plotting column 2 and 4 of the resulting out.data using Gnuplot results in below image.
Please post an "I made it" if you get it working. Good luck!
Reply 5 years ago
Thanks for the fast answer. Why do you use two different BC547c models rather than one? Also, what does the capcitor's ic characteristic represent? I can't find it in LT Spice.
Reply 5 years ago
I tried out different models of BC547C, as these differ somewhat per manufacturer. The one I settled for was that model that came the closest to the experimental outcome. Note in the code in my previous post, only one model is actually used.
IC stands for initial condition, here initial voltage on the capacitors at t=0. This code was part of a loop to build a bifurcation plot. For each itteration of the loop, a resistor value was stepped and the simulation repeated, taking of in the state (capacitor voltages) in which the previous one ended.
7 years ago
Cool Instructable.
Reply 6 years ago
Thanks Tom!
7 years ago
This looks like an interesting and fun project, I'm definitely going to give that a go. I was wondering though if there are any practical uses for such a circuit. A random number generator maybe? But, you can do the same thing by just sampling some random noise which is much easier, so I'm not seeing any point using it for something like that.
Reply 7 years ago
For the time and money this takes to build, this is about as much fun as you can get ;-)
Random number generation is one application. Chaos encryption is another one. It works by hiding (adding) a low-amplitude message in a chaotic signal at the transmitter end. At the receiver end, another chaotic circuit synchronizes with the transmitter chaotic system and the chaos is subtracted, leaving the message. Other schemes exist too.
The main difference with random noise is that the dynamical behavior here is in principle deterministic. Short term it is predictable, long term it isn't. There is a kind of predictability horizon. This is because chaotic systems show sensitive dependence to initial conditions (in fact, that's one way of defining chaos). This means that however close two equal systems start in terms of initial conditions (the initial capacitor voltages here), at some point in the future their signals will diverge and become totally different. This can and is applied in novel computing architectures (see for example the work of Nigel Crook on Nonlinear Transient Computation).
However, even without applications, it still is an intriguing natural phenomenon :-)
Reply 7 years ago
"close but unequal initial conditions" is more precise...
7 years ago
good job. very interesting concept in math and engineering