|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | 
	|  | 
	| The following are responses that I received to a request that I made to Bruce Robinson and Wilf Rigter to read the rough draft of the PWKS article. They provided corrections and suggestion that I hope have made the article more understandable and informative. |  | 
	|  | 
	| I have edited and formatted the responses to highlight the parts I found most helpful and remove unrelated or repetitive material. I think you too, will find them useful. |  | 
	|  | 
	|  | ==================================================== |  | 
	|  | 
	|  | FromBruce Robinson |  | 
	|  | 
	|  | #1 |  | 
	|  | 
	|  | Hi, Cliff. |  | 
	|  | 
	|  | Does the attached circuit look a little familiar? |  | 
	|  | 
	|  |  |  | 
	|  | 
	|  | I've only had time for a quick look at your first circuit, but I'm positive it will work. This is extremely close to what I labelled a "window" counter. The main difference is that instead of directly measuring the width of a pulse, I use a single Nv neuron to produce a fixed width impulse each time the input signal changes. |  | 
	|  | 
	|  | I used the term "window" because the circuit has both an upper and a lower threshold as opposed to the single threshold of a basic Nu neuron. I first came up with the idea when trying to build a reliable colour detecting circuit that was independent of overall light intensity (for the BEAM soccer project). |  | 
	|  | 
	|  | I have yet to test the colour circuit, as I still have a lot of hardware problems to solve. However, I actually have a window counter on my breadboard right now, making sure that a hexcore always has one, and onlyone process circulating. |  | 
	|  | 
	|  | Basically the circuit counts the number of times one of the neurons in the hexcore switches on. |  | 
	|  | 
	|  | Instead of the reset connection shown on the attached diagram, I have a couple of large resistors that will slowly reset the neurons in about the time that a process would circulate 1-1/2 times around the loop. During that time, the circuit should count exactly one impulse; fewer counts means the circuit has died; two counts or more indicated an extra process or two circulating. |  | 
	|  | 
	|  | As long as the count is one, the circuit output is "on" and nothing much happens. When the output goes "off", it injects a startup pulse to the hexcore, and grounds all the other hexcore neurons to kill any extra processes. |  | 
	|  | 
	|  | I had a lot of trouble tuning this circuit on the first go-round. I've been slowly developing a tuning procedure, as well as devising a sequence for calculating component values (so I have a reasonable starting point). I suspect tuning will be less of a problem when you are measuring pulse widths as opposed to "counts". |  | 
	|  | 
	|  | By the way, "X" on my diagram shows where you can take off a second output to indicate a "greater than max" condition. The neurons could easily be cascaded to give multiple outputs for different ranges of counts. |  | 
	|  | 
	|  | I'm going to be tied up for the next couple of days, but I'll print your page out and look at the other diagrams when I've got a few free moments. |  | 
	|  | 
	|  | Regards, |  | 
	|  | 
	|  | Bruce |  | 
	|  | 
	|  | ///////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |  | 
	|  | 
	|  | #2 |  | 
	|  | 
	|  | So here are a few thoughts. |  | 
	|  | 
	|  | First, the basic circuit. This has two rather interesting characteristics. |  | 
	|  | 
	|  | The obvious one is what it was designed to do --- pass on a low-going impulse that is a specified width. Longer or shorter impulses don't get through. |  | 
	|  | 
	|  | The other characteristic (when you stand back from the circuit and view it as a black box) is that it functions just like a conventional Nv neuron -- when it passes the signal. In other words, the input goes low, then after a time goes high again. On the rising signal, the output goes low, then rises again. |  | 
	|  | 
	|  | In fact, you could model this circuit as a conventional Nv neuron with a switchable connection between the bias point and ground, with the switch controlled by a microprocessor that analyzed the width of the incoming signal (your circuit is simpler of course). |  | 
	|  | 
	|  | This opens up some interesting possibilities, besides the one you suggest. |  | 
	|  | 
	|  | For example, if you put this circuit into a micrcore in place of an Nv neuron, if the preceding impulse was too short or too long, the circuit would stop dead. |  | 
	|  | 
	|  | This may or may not be good. |  | 
	|  | 
	|  | Another possibility is to insert the circuit in a chain of Nv neurons that must be co-ordinated with other independent chains of neurons. If the signal preceding this pseudo-Nv is too short or too long (indicating a loss of co-ordination), the circuit would interupt the flow through the chain. |  | 
	|  | 
	|  | So I think it is useful to think of this circuit in both ways -- as a pulse-width pass/fail circuit, and as a special type of Nv neuron. |  | 
	|  | 
	|  | Next, the 3-stage circuit. |  | 
	|  | 
	|  | I've attached a modified GIF file that I knocked together to help me understand it a little better. |  | 
	|  | 
	|  |  |  | 
	|  | 
	|  | I brought each bias point connection in separately so I could see what was supposed to influence what. I also used colour, but that was just for my own benefit. Use the revised drawing if and as you see fit; alter it at will. |  | 
	|  | 
	|  | I relabeled some of the diodes; you had a couple of duplicates and one unlabelled. I changed the output signals to better reflect what I think is happening. |  | 
	|  | 
	|  | Basically, the output is a delayed low-going signal that is held low until a reset signal is sent. I'm not completely sure I like this (still thinking about it). It seems to me that if you want to "hold on" to an output, you could use Nv neurons on the outputs to catch and hold the rising signal.I know, extra gates. |  | 
	|  | 
	|  | Also, as shown the third stage will respond to an indefinitely long input signal. To truly respond to a signal bounded by a lower and upper width, you need to addin a fourth "no-output"stage, as in the first diagram. It may be useful to add this to the circuit, as one of the advantages of a pulse-width detection circuit is that it filters out random "noise". Anything that falls outside the specs of your circuit gets rejected. |  | 
	|  | 
	|  | This is nit-picky stuff. The circuit will work as far as I can tell. It's just a matter of exactly how you want it to work, and how you want to convey the information to people. |  | 
	|  | 
	|  | Finally, it would be interesting to combine this circuit with my counter circuit. |  | 
	|  | 
	|  | Some time ago I send Richard Caudle and Wilf a suggested "chirp counter" circuit, which Wilf promptly improved upon (took out a bunch of inverters) and that became the basis of his BEAM Sonic article. My original circuit never got published on the net, and is kind of obsolete. |  | 
	|  | 
	|  | However, I went off and modified my chirp counter circuit so it would recognize "bursts" of chirps; it could distinguish one-chirp,three-chirp, and 5-chirp bursts of sound, count them as one "sound", but carry out different activities based on how many chirps in a burst of sound. |  | 
	|  | 
	|  | So what if we stuck your circuit on the front end of this? Different robots would send chirps (or light beams) of different widths, so your circuit would be able to tell which robot was doing the sending. Different numbers, of chirps would be distinguished by my circuit to decide what information was being sent. |  | 
	|  | 
	|  | Doing it in this sequence has the advantage of filtering out (to some extend) background ";noise " -- the length of signal has to fall within certain boundaries or it gets annoyed. |  | 
	|  | 
	|  | Just one thought. Many, many possibilities come to mind. |  | 
	|  | 
	|  | Regards, |  | 
	|  | 
	|  | Bruce |  | 
	|  | 
	|  | ////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |  | 
	|  | 
	|  | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////////////////// |  | 
	|  | 
	|  | FromWilf Rigter |  | 
	|  | 
	|  | #1 |  | 
	|  | 
	| Thanks for sending the PWKS article Clifford. |  | 
	|  | 
	| Great idea! I will send you a bunch of comments tomorrow. |  | 
	|  | 
	| If you like I can send you a 1 of 8 pulse width detector which has a similar function but works completely differently. |  | 
	|  | 
	|  | regards |  | 
	|  | 
	|  | ////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |  | 
	|  | 
	|  | #2 |  | 
	|  | 
	|  | I'm still very busy and can't reply until this evening. But here are just some comments: |  | 
	|  | 
	|  | _Show a pwk transmitter. Indicate how the pwk Tx is modulated by external signals. |  | 
	|  | 
	|  | _Show a block diagram of one typical stage with I/O and connections to more stages |  | 
	|  | 
	|  | _Label each section of the typical circuit and describe them in seperate paragraphs. |  | 
	|  | 
	|  | _Indicate how the pwk selector outputs are used to modify circuit behaviour. |  | 
	|  | 
	|  | _Fig 1 seems to have some errors and is not consistent with Fig 2. |  | 
	|  | 
	|  | I propose to use a Nv string which is triggered by the incoming pulse and &  "frozen" at the end of the pulse. |  | 
	|  | 
	|  | The string is x stages long and the total duration for a pulse to propagate through the string is equal to the max pulse width. |  | 
	|  | 
	|  | The pulse is frozen by raising the grounded resistor common to mid potential. |  | 
	|  | 
	|  | regards |  | 
	|  | 
	|  | wilf |  | 
	|  | 
	|  | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////////////////// |  | 
	|  | 
	|  | #3 |  | 
	|  | 
	|  | Here are some circuit ideas: |  | 
	|  | 
	|  | 1. An IR pulse detector which is more suitable for detecting reflected IR pulses but may give you some ideas |  | 
	|  | 
	|  |  |  | 
	|  | 
	| 2. The Pulse Width Detector I mentioned before is a Nv string triggered by the leading edge of an IR pulse and pulses travels along the string for the duration of the input pulse until the falling edge when the active Nv is latched in the output stage. Pulses shorter than the first Nv TC or longer than the sum of all Nv TCs reset all outputs to zero. Uses all beam components. |  | 
	|  | 
	|  |  |  | 
	|  | 
	| The latch is a new idea that works as follows: A short positive tristate pulse sets the output to the level at the input of the series resistor. Once enabled the output state is latched by the positive output to input feedback. |  | 
	|  | 
	| 3. Same idea but two strings are updated by alternate positive and negative pulse widths. This provides two active outputs. |  | 
	|  | 
	|  | ( Attachment Not Shown - See Response #6 ) |  | 
	|  | 
	| For example, these PWDs can use the output pulses of a photo bicore and produce discrete outputs corresponding to the light falling on the two PDs . |  | 
	|  | 
	| enjoy |  | 
	|  | 
	| wilf |  | 
	|  | 
	|  | ////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |  | 
	|  | 
	| Some very good suggestions. I knew you would come up with a simpler circuit that accomplihed the same thing. |  | 
	|  | 
	| I'm going to post the article with my circuits anyway. I have also gotten some feedback from Bruce R. on them and I think they may be useful for other purposes as well as what they were originally intended for. |  | 
	|  | 
	|  >I love the latch idea, have you posted it before? |  | 
	|  | 
	|  >If you don't mind, I would like to include your e-mail resposes as part of a secondary link. I could edit out the references to your circuit if you would prefer to post them yourself... Let me know which you would prefer. |  | 
	|  | 
	|  | So long,  |  | 
	|  | 
	|  | Cliff |  | 
	|  | 
	|  | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////////////////// |  | 
	|  | 
	|  | #4 |  | 
	|  | 
	|  | OK Clifford, |  | 
	|  | 
	|  | but please change the schematic for the 2 phase PWD circuit with the attached because it can drive LEDs with the outputs instead of just HC loads for the simpler original design.(Attachment Not Shown - See response #6 )
 |  | 
	|  | 
	|  | regards |  | 
	|  | 
	|  | wilf |  | 
	|  | 
	|  | ////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |  | 
	|  | 
	|  | #5 |  | 
	|  | 
	|  | Hi Cliff, |  | 
	|  | 
	|  | Just been too busy to reflect on the PWD circuit and I realize now that the last version I sent you won't work for driving LEDs either. |  | 
	|  | 
	|  | So please stick with the original but add a note: |  | 
	|  | 
	|  |  The 245 enable pin shown is the tristate enable (G) at pin 19.  |  | 
	|  | 
	|  | The direction select (DIR) pin 1 should be wired to Vcc with pins 2 to 9 used as inputs and pins 11 to 18 as outputs |  | 
	|  | 
	|  | The 245 latch outputs can only be used with high impedance loads (minimum 47K series resistance) such as the input of another HC chip (buffers/motor> drivers, tristate enable inputs etc) or an h-bridge input or to influence a microcore/bicore or to drive a Nu through a minimum 47K resistor " |  | 
	|  | 
	|  | I finally have some time to test out these ideas but please don't let me delay your article which I look forward to with anticipation. |  | 
	|  | 
	|  | regards |  | 
	|  | 
	|  | wilf |  | 
	|  | 
	|  | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////////////////// |  | 
	|  | 
	|  | #6 |  | 
	|  | 
	| Hi Cliff, |  | 
	|  | 
	| this is a complete pulsewidth detector with driver stage based on the same principle as the previous circuits. Please include this with my comments as the recommended circuit of this type. |  | 
	|  | 
	|  |  |  | 
	|  | 
	|  | ////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |  | 
	|  | 
	|  | #7 |  | 
	|  | 
	| Hi Cliff, |  | 
	|  | 
	| Never satisfied here is the current version of the PWD3 circuit including some timing charts. Sorry for all the revisions but these things take on a life of their own. |  | 
	|  | 
	| Please discard all previous copies of PWD3 as they are now obsolete. |  | 
	|  | 
	|  |  ( Attachment Not Shown See Next Response #8 ) |  | 
	|  | 
	|  | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////////////////// |  | 
	|  | 
	|  | #8 |  | 
	|  | 
	| And once more to correct the timing waveforms, this is the last revision until you post your article. When I gave you all those time consuming suggestions, little did I know that was going to save my ass to finally get a correct schematic to you . |  | 
	|  | 
	|  |  |  | 
	|  | 
	|  | seeya |  | 
	|  | 
	|  | wilf |  | 
	|  |  | ////////////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |  | 
	|  |  | 
	|  | 
	|  | I would like to thank Bruce and Wilf for their help and input. |  | 
	|  | 
	| I would also like to thank Richard Caudle for the encouraging words in a post he made to the group. |  | 
	|  | 
	|  | Thanks Again Guys |  | 
	|  | 
	|  |  |  | 
	|  |  |  |  | 
	|  |  |