The only common BEAM devices that need startup circuits are those that use networks
of more four or more neurons in a loop; circuits such as the microcore. Devices
driven by bicores, as well as the vast majority of solar powered devices do not
need startup circuits. This page is meant for those who are interested in
the more complex neuron circuits.
There is some confusion surrounding the term "Pulse Neutralizing Circuit", or PNC.
People often take it to mean a startup circuit of any kind, as the name seems to
describe what a startup circuit usually does. This confusion arose partly because
the first startup circuit does in fact use a PNC.
The term PNC was first mentioned in Mark Tilden's patent, and is used to refer
to the circuit now generally known as the "Neural Neuron", or Nu. Although the
patent suggests using a PNC for a startup circuit, it gives a number of other
uses for the circuit, including a remote on-off switch and as a means for
co-ordinating complex limb movements. The term was clearly never intended to
describe startup circuits in general.
There is some confusion surrounding the term "Pulse Neutralizing Circuit", or PNC. People often take it to mean a startup circuit of any kind, as the name seems to describe what a startup circuit usually does. This confusion arose partly because the first startup circuit does in fact use a PNC.
The term PNC was first mentioned in Mark Tilden's patent, and is used to refer to the circuit now generally known as the "Neural Neuron", or Nu. Although the patent suggests using a PNC for a startup circuit, it gives a number of other uses for the circuit, including a remote on-off switch and as a means for co-ordinating complex limb movements. The term was clearly never intended to describe startup circuits in general.
IntroductionThe example loops on this page use "conventional" Nv neurons, in which the resistor is grounded. This is sometimes referred to as a negative neuron, because in the "on" condition the neuron's output is GND, or 0 volts. This is the opposite to what we normally think of as "on". To avoid confusion, the term active is used instead of "on".
A loop of Nv neurons always starts up in the saturated condition, that is, with the maximum possible number of neurons active. As it is impossible for two adjacent Nv neurons to be active at the same time, the number active is always 1/2 the total number of neurons. When there is an odd number of neurons in a loop, the number active during saturation is 1/2 the total rounded down to the nearest whole number. Thus when there are two or three neurons in a loop (bicores and tricores), only one neuron can be active at startup. When there are four neurons (microcore) or more, at least two neurons will be active. This is usually not what we want.
In a loop of Nv neurons, whenever a neuron becomes inactive, its output signal causes the next neuron in the loop to switch on. Each neuron in turn will become active. The term impulse is generally used to describe this moving active condition. This concept becomes very intuitive when LEDs are used to indictate which neurons are active.
The following diagrams are built around a loop of 4 or more neurons, which are shown in black. For experimenters, an indicator circuit consisting of 4 LEDs and 1 resistor is shown in blue (thanks to Wilf Rigter for this idea). The various startup circuits are shown in red. The values for capacitors and resistors are arbitrary, chosen to provide a long enough delay to see what is happening.
Classic Startup CircuitThis is the startup circuit which is described in Mark Tilden's original patent. It uses a single PNC (Nu neuron) to hold one Nv neuron in the active state long enough to absorb the impulses circulating around the loop.
The circuit uses an Nu neuron to force one Nv neuron in the loop to become active. The time delay for the Nu neuron is sufficiently large to allow an impulse to make a complete circuit around the loop. This extra delay means the selected Nv neuron will remain active long enough to "absorb" all the extra impulses as they complete their circuits of the loop. When the Nu neuron eventually times out, the diode isolates it from the rest of the circuit and the one remaining impulse is released to circulate around the loop.
While this circuit is effective enough, it has some shortcomings. The extra impluses
have to circulate through the loop before the whole circuit reaches its normal
operating condition. Depending on how the motors are connected to the circuit, this
can lead to very erratic operation before the walker starts to behave properly. To
overcome this, the
diagram shows a connection to the motor drivers to keep them from operating during
the startup period. Another problem is that once the startup circuit has done its
job, it effectively disappears. If a stray impulse springs up in the microcore,
there is no way to get rid of it.
ColdStart CircuitIn 1999 I decided to improve on the original startup circuit, for two reasons: I didn't like the need to disable motors during startup, and more to the point, I couldn't get the circuit to work reliably every time. The result of my efforts was an "instant startup" circuit, which I called the ColdStart circuit. It was not until I re-arranged the circuit to fit the same format as the other circuits on this page that I realized how similar it is to the classic startup circuit.
Like the basic circuit, this one uses an Nu neuron to insert a high signal into one of the Nv neurons. However, the delay is extremely short, just enough to send a quick impulse; certainly not long enough to absorb other impulses. Also connected to the output of the Nu neuron is an ordinary inverter. This is connected to each of the other Nv neurons in the circuit using a diode. During the brief startup period, the inverter is used to hold all the other Nv bias points low, thus preventing any extra impulses from being created. The Nv loop starts up instantly with just one impulse circulating and then, like the classic circuit, disappears.
While this circuit eliminates the lengthy startup period of the basic circuit, it has other advantages. It can be used to inject multiple impulses into very complex networks and it is especially useful with branched networks. The one problem it doesn't deal with is the elimination of "stray" signals that may appear after startup.
People often ask if the second inverter in the startup circuit can be a Schmitt inverter,
and the answer is "yes". The first inverter must be a Schmitt inverter; any
inverter will do for the second one, Schmitt or otherwise.
PNC-Free Microcore CircuitShortly after I published the ColdStart circuit, Wilf Rigter came up with a much simpler idea. He reasoned that because only every second neuron could be active, a pair of diodes was all that was needed to eliminate extra signals in a microcore.
Adjacent neurons cannot be active at the same time, so either the first or the second neuron will be active, but not both. With the basic microcore (4 neurons in the loop), whichever of the first two neurons is active, there can only be one other neuron active at the same time. Therefore, the circuit uses a diode from the output of the first neuron to the bias point of the only other neuron that can be active in order to suppress a second impulse. Similarly, the second neuron output is connected to the only other neuron that can be active at the same time it is. This ensures that only the first or second neuron will be active at startup, but not both.
The beauty of this circuit is that it works instantly at startup, and will continue to
work if a "stray" signal finds its way into the circuit. The only drawback is that it
does not scale up well to bigger loops: a preliminary analysis suggests that for every
neuron added to the loop (or to branches attached to the loop), two more diodes will be
PNC-Free Hexcore Startup CircuitTechnically this is not a useful startup circuit because it is known to be unreliable. However, it is included here because of its significance in the development of other circuits
In the summer of 2000, Thomas Pilgaard was looking for a simple way to startup a hexcore
(6 Nv loop) circuit with only one impulse. A hexcore uses all 6 inverters on a typical
Schmitt inverter chip, so to use the ColdStart circuit he would need a second chip to
supply the two additional inverters needed. The original PNC-free circuit works well
with a 4 Nv microcore, but gets progressively more complicated as extra neurons are
This circuit uses a simple network of diodes; it can be scaled to a loop with any number of neurons; each additional neuron requires one additional diode. The basic principle is that the output of one neuron is connected to the bias points of all the other neurons by diodes. On startup, every second neuron will be active, so there are only two possible configurations. If the first neuron is active, it will disable all the other neurons so there will be only one impulse at startup. On the other hand, if the second neuron is active at startup, 3 impulses will be present. After one time delay an impulse will move to the first neuron, killing off all the other impulses.
There is a slight similarity between this circuit and the ColdStart circuit, in that all the neurons except one are connected by diodes to a common point, which issues a signal to kill impulses at the neurons. The major difference is the connection point.
This circuit didn't work quite as expected. Sometimes it would work perfectly; at other
times, neurons 2, 4, and 6 would appear to be locked in the active condition and the
impulses would not appear to move. After some investigation, Thomas found that the
active neurons were in fact switching off for an instant, and then immediately
switching back on. It appears this condition will occur whenever the first neuron
starts up in the inactive state. Here's a link to a
Modified ColdStart CircuitAfter Wilf Rigter examined the PNC-free hexcore, he decided the way to make the circuit work reliably was to force the first neuron to be active at startup. This ensures that the reliable startup condition will always occur.
This circuit uses an Nu neuron to briefly force the first Nv neuron to be active at startup, exactly the same as the first part of the original ColdStart circuit. However, the second startup inverter in the ColdStart circuit is eliminated; the remainder of the circuit is the original PNC-free hexcore.
This circuit can be viewed as an amalgam of the ColdStart circuit and the PNC-Free Hexcore, but there is another way to look at it. If you take the second inverter in the original ColdStart circuit, separate it from the Nu neuron, and superimpose the inverter complete with all its output connections on the first Nv neuron in the loop, you will get the Modified ColdStart Circuit.
Although the Modified ColdStart circuit uses one less neuron than the original, it still
means that an extra chip will be required if the circuit is to be used with a hexcore.
Although it hasn't been confirmed by experiment, it seems unlikely that an extra impulse
could spring up once the loop is in operation. It is conceivable that this circuit
would not be suitable for a very complex branched network; for the majority of cases it
is a significant improvement on the ColdStart circuit.
Improved PNC-Free Hexcore Startup CircuitThomas Pilgaard continued to work on a reliable PNC-free hexcore, one that would require no extra inverters. The result is a hexcore that starts up with 2 impulses, and quickly eliminates the extra impulse.
The fix may not be obvious at first: there is no grounding diode from the bias point of the fifth neuron back to the first neuron. Why should this work at all? In the case where the odd numbered neurons become active at startup (1, 3, 5), neuron number one kills the impulse at neuron #3, but not at #5. When the impulses move after the usual time delay, neurons #2 and #6 become active. On the next move, these impulses move to neurons #3 and #1 respectively, and as #1 becomes active it kills the impulse at #3.
In the case where the even numbered neurons become active at startup (2, 4, 6), all three will hold an impulse until after the first time delay. Then they will shift to #3, #5, and #1 respectively. As neuron #1 becomes active, it kills the impulse at #3, but not #5, thus creating the same condition as described in the preceding paragraph.
This small change eliminates the suspected cause of the original problem condition, the
"suppression" neuron turning itself off through a ripple effect.
The one disadvantage of this circuit is that it has a short startup period during which motors may run in unwanted patterns. Unlike the original PNC-based startup circuit, there is no Nu neuron available to disable the motors during the startup period. This may limit the usefulness of the circuit to certain configurations of robots. The limitation can usually be overcome with the use of limit switches that will terminate an impulse if the motors move too far.
SummaryThe following are my personal suggestions for where best to use these circuits.
The following table summarizes the attributes of the various circuits.