#LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 218 \textclass article \begin_preamble \usepackage[thinspace]{SIunits} \usepackage{mathptmx} \usepackage[scaled=0.9]{helvet} % or [scaled=0.92], if you like \end_preamble \options aps,preprint \language british \inputencoding auto \fontscheme default \graphics default \paperfontsize default \spacing single \papersize Default \paperpackage a4 \use_geometry 0 \use_amsmath 0 \paperorientation portrait \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \defskip medskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 1 \paperpagestyle default \layout Title Protocol for self-alignment of laser-through-air ethernet links \newline [unfinished, $Revision: 1.10 $] \layout Author Matthew Astley \layout Right Address Cambridge, UK \newline matthew@fruitcake.demon.co.uk \newline http://www.fruitcake.demon.co.uk/ \layout Abstract Home-brewed hardware based on laser diodes is becoming more popular for point-to-point data links, but alignment problems have discouraged \begin_float footnote \layout Standard It is considered normal to need to realign laser transmitters every month, even for buildings with solid foundations. This significantly reduces the usefulness of the link. \layout Standard http://home.vicnet.net.au/~upnet/#physprobs \end_float common use. This article discusses some principles for controlling an ethernet-based transmitter with a steerable beam, then weighs the need for hardware simplicity against the possible theoretical efficiency. A mechanism for accurate hardware movement is assumed. \layout Section Introduction \layout Standard Current recipes \begin_inset LatexCommand \cite{Ronja,UPNLT} \end_inset for optical data links require regular manual alignment. This is usually assisted by screw threads for fine adjustment, binoculars or perhaps a telephone link to the operator at the other end. If the transmitter mounting point moves, for example because of slight building subsidence, the beam will move off target and the procedure must be repeated. \layout Subsection Caveat on hardware assumptions \layout Standard The author has no experience of building or aligning laser transceivers. Hopefully the ideas in this article will be useful despite this. \layout Section Steering the beam \layout Standard It is assumed that the beam can be steered precisely and accurately, and without complicated hardware. This is not necessarily true, but without this assumption the paper requires prototype hardware - software is cheaper than a prototype. It is hoped that the presence of ideas or software will encourage someone to try the hardware. \layout Subsection Mechanism \layout Standard \begin_inset LatexCommand \label{speakersteer} \end_inset Two perpendicular loudspeaker drivers or \begin_inset Quotes eld \end_inset voice coils \begin_inset Quotes erd \end_inset might make adequate drivers for a small transmitter. \layout Quotation Figure: laser on a rod, pivoted at the back. Two driver coils at the front. Dimensions with names that I can refer to later. \layout Comment Continuous power consumption! \layout Standard It is not obvious that such apparatus will match the requirements below. \layout Subsection Steering requirements \layout Standard Without certain properties, attempting to align the beam is likely to be futile in any case. In constructing a manually aligned transmitter, one may pick something which conforms to these requirements without realising why they are important. The ideas presented here will require them formally. \layout Standard \begin_inset LatexCommand \label{accurate} \end_inset Positioning of the beam must be repeatable, at least over any \begin_inset Quotes eld \end_inset short \begin_inset Quotes erd \end_inset time period compared to movement of the mount. Hysteresis of positioning, or interference from a power supply will make control that much harder. The mount point will move slightly over a period, adding an unknown offset to the position. It is this offset which we wish to cancel to keep the beam on target. Since the offset changes relatively slowly, positioning accuracy can be maintained over \begin_inset Quotes eld \end_inset short \begin_inset Quotes erd \end_inset periods. \layout Standard Beam positioning must also be precise. Specifically it must be steerable to within a \begin_inset Quotes eld \end_inset small \begin_inset Quotes erd \end_inset fraction of the active receiver element size or the spot size, whichever is larger. Using larger diameter \begin_float footnote \layout Standard Larger diameter beams have other advantages where eye safety and disruption by birds are concerned, so it is becoming more common to expand the beam. \end_float beams will make this easier, but requires good quality optics. Keeping the range of movement down will also aid precision, since the amplitude of the maximum permissible error becomes smaller relative to the full scale deflection. \layout Subsection Useful features \layout Standard The system in \begin_inset LatexCommand \vref{speakersteer} \end_inset operates by scaling of triangles \begin_float footnote \layout Standard Even for systems with an angular beam deflection, the angular movement needed to deflect the beam is small enough that \begin_inset Formula \( \sin \theta \simeq \theta \) \end_inset (small angle approximation), because the laser target is generally at least \begin_inset Formula \( \unit {50}{\metre } \) \end_inset away. \end_float , so it will have a linear response. As a result the scanning speed on the target will be proportional to the scanning speed at the transmitter. \layout Standard Scanning performance can be improved with fast beam control, so an area of the target can be scanned quickly. Fast scanning will require optimal damping, so the beam settles quickly after a change in movement. This follows from the requirement to maintain the positional accuracy. \layout Section Guiding principles \layout Standard It is important to note that in steering the outgoing beam, the transmitter will have no immediate feedback on the received signal quality. If the beam fails to hit the receiver, no further information can be obtained \begin_float footnote \layout Standard The given advice \begin_inset LatexCommand \cite{UPNLT} \end_inset for manual alignment of links to around \begin_inset Formula \( \unit {500}{\metre } \) \end_inset is to watch the laser spot with binoculars from the transmit station. \end_float by either station. Even when the beam does hit the receiver, the transmitter will not know until some time later. \layout Standard The situation is symmetrical since the link is full duplex when properly configured. \layout Subsection Data link speed allows for useful momentary contact \layout Standard \begin_inset LatexCommand \label{momentary} \end_inset The data rate on a laser beam is sufficiently high that only a momentary alignment is necessary for a small transmission. \begin_inset Quotes eld \end_inset Momentary \begin_inset Quotes erd \end_inset for a 10Mbit/sec link may be as little as \begin_inset Formula \( \unit {13}{\micro \second } \) \end_inset for 64 bits of data preceded by 64 bits of clock synchronisation bits, or \begin_inset Formula \( \unit {26}{\micro \second } \) \end_inset if you allow two periods to cover the possibility of missing the start of a sequence. \layout Standard The current transmit beam position can be encoded in a 64 bit data burst. If the receiver can return this data to the transmitter by some route, a link can be established. \layout Standard There is also space in the data burst for a \begin_inset Quotes eld \end_inset last known good position \begin_inset Quotes erd \end_inset reply to the other station. This can provide a return path for coordinates, provided they are known at the time the beam hits the receiver. \layout Standard Once one station returns a good set of coordinates to the other, by some means, a unidirectional link can be established. This can then be used to provide feedback for the other direction. For example, \layout Enumerate Two stations, A and B, have just been set up \begin_float footnote \layout Standard This is not the stated purpose of the article, but it is a useful property that the system can bootstrap itself from incorrect alignment, even without an external (e.\SpecialChar ~ g.\SpecialChar ~ modem) connection. \layout Standard Initial set-up will require an approximate alignment, but the larger the sweep area of beam driver the easier this will be. \end_float and do not know each other's position. \layout Enumerate Station A happens to hit station B while transmitting coordinates \begin_inset Formula \( (x_{A},y_{A}) \) \end_inset . \layout Enumerate Station A continues scanning, since it does not know it found the correct alignment. \layout Enumerate Station B is also scanning, and \begin_inset LatexCommand \label{scanreturn} \end_inset when it happens to hit station A it will return the good coordinates \begin_inset Formula \( (x_{A},y_{A}) \) \end_inset along with its current coordinates \begin_inset Formula \( (x_{B},y_{B}) \) \end_inset . \layout Enumerate Station A now knows a good position for itself, which it can then use to return \begin_inset Formula \( (x_{B},y_{B}) \) \end_inset to station B. \layout Enumerate Station B receives \begin_inset Formula \( (x_{B},y_{B}) \) \end_inset and alignment is now complete, subject to small optimisations. \layout Standard The time taken to perform these steps will depend greatly on the target sweep speed of the beam driver and the distance between scan passes (assuming a raster-scan or spiral approach). \layout Standard The great benefit of the short term repeatability is that even a delay of minutes before step \begin_inset LatexCommand \ref{scanreturn} \end_inset completes will not damage the protocol. The process can be short-circuited to some extent by returning \begin_inset Formula \( (x_{A},y_{A}) \) \end_inset via a modem link, but this will not accelerate the establishment of a duplex link. \layout Subsubsection A carrier is easier to detect but less useful \layout Standard The simple presence of a sine or square wave can be detected quickly and easily, and the arrival time could be used to deduce the position. With a contact time as low as \begin_inset Formula \( \unit {1}{\micro \second } \) \end_inset for 10 cycles of a \begin_inset Formula \( \unit {10}{\mega \hertz } \) \end_inset signal, a \begin_inset Formula \( \unit {100}{\square \metre } \) \end_inset grid of \begin_inset Formula \( \unit {10}{\milli \metre } \) \end_inset squares can be scanned in just one second. \layout Standard Clock skew between the computers at the end points will be a major problem with this approach. Software such as \noun on ntpd \noun default is very good at synchronising the local clock to a remote source, but the errors may still be several hundred milliseconds\SpecialChar ~ -\SpecialChar ~ enough to ruin a calculation of position. \layout Standard No data can be transferred \begin_float footnote \layout Standard It should be possible to send approximately one bit per scan, but reliability will not be great. \end_float until the time of contact (i.\SpecialChar ~ e.\SpecialChar ~ position) has been returned to the transmitter. This is not such a great problem since a wired connection to the Internet is likely to be required for clock synchronisation anyway. \layout Standard Finally, the raster scan rates of \begin_inset Formula \( \unit {1}{\kilo \hertz } \) \end_inset needed to cover the target so quickly will not be possible if the laser and optics are to move wholesale. A steerable mirror approach should run to such frequencies but inserting a standard glass mirror in the beam will cause losses of around \begin_inset Formula \( 10\% \) \end_inset . \layout Standard In an automated system, the speed gains would be lost in working round the other problems. Transmitting checksummed data seems to be a much more useful approach. \layout Standard For manual alignment, a photographic flash unit triggered by detection of the carrier signal could prove invaluable for quick setup. \layout Subsubsection Methods for encoding position \layout Standard The position encoding is not very important, since it is written and later read by the transmitter. In the absence of more advanced processing, the receiver merely relays the data back to the transmitter. \layout Standard The simplest encoding is the Cartesian coordinate system of positions on the receiver, as seen from the transmitter. Precise time stamps, serial numbers or randomly generated cookies would work, but the transmitter must then store them for later recall. \layout Subsection Knowing the landing point on the receiver is not vital \layout Standard If the receiver knew which part of its active area had detected a signal, it could guide the transmitter very precisely. When the beam wavered from a central position, the receiver could direct it back and alignment need never be lost. \layout Standard Unfortunately the commonly used PIN diode detector does not allow for this. It may be possible to have an array of detectors with an amplifier each and some mixing after that, but even after the expense and complication there will be inactive gaps between receiver elements. \layout Standard As shown in \begin_inset LatexCommand \ref{sigstrength} \end_inset , however, an indication of signal strength can [TODO: something] \layout Comment foo \layout Subsection Knowing the received signal strength is useful \layout Standard \begin_inset LatexCommand \label{sigstrength} \end_inset There will be a small range of acceptable misalignment, in which a signal can still be decoded. With expanded beams and optics there should be a gradual decline in signal strength as the alignment is lost, compared to a sudden cutoff when a small spot no longer lands on the active area of a naked PIN diode. \layout Standard Feedback of signal strength from the receiver to the control system would be valuable in the case of expanded beam apparatus. Measuring the amplitude of the received signal .. calc \begin_inset Formula \( (\frac{\partial SNR(x,y)}{\partial x},\frac{\partial SNR(x,y)}{\partial y})=\nabla SNR(x,y) \) \end_inset ? \layout Comment Probably mean sig strength not SNR? \layout Comment So you scan that and pick the middle. Or you drift slowly and measure \begin_inset Formula \( (\frac{\partial SNR}{\partial x},\frac{\partial SNR}{\partial y}) \) \end_inset head for the flat bit. \layout Comment Check first-para-ness above \layout Comment More about how to measure a useful figure (5 - 10MHz band pass, then rectify?) \layout Comment Wiggle occasionally to check alignment is still optimal, then put bounds on drift rate (or just watch SNR?) to avoid unnecessary wiggling. \layout Comment Could detect rain/fog if peak(positional) SNR falls from normal value \layout Standard TODO: I was suffering fuzzy-brain-itis when I wrote this, I think. There are notes in the LyX file. \layout Subsection The Ethernet protocol can be interrupted without data loss \layout Standard The ethernet protocol \begin_inset LatexCommand \cite{EthS,EthT} \end_inset is tolerant of interruptions. If necessary, an alignment transmission can be made by shutting off the ethernet transmission, even in mid-packet, and sending some data. The higher levels of the OSI model will simply see a dropped packet and retransmit as appropriate. \layout Comment Does it confuse the matter too much to take this route? \layout Comment Explain why this is later not relevant. Oh, except it is because you drop packets when alignment is lost. \layout Standard TODO: this part might need explaining some other way. \layout Section Hardware for communicating alignment data \layout Standard The design of hardware capable of sending, receiving and checking the integrity of short bursts of data is beyond the scope of this article. It seems safe to say it would have much in common with existing ethernet technology: a phase-locked loop, perhaps a preamble sequence with a packet start marker and a checksum at the end. There may be some benefit in running such a system at a different bit rate, e.\SpecialChar ~ g. \SpecialChar ~ 7Mbit/sec, so the ethernet and alignment receivers cannot lock onto each other's signals. \layout Standard It is assumed that the system can send a continuous stream of bits containing packets about 64 bits long. There is no need for an inter-frame gap because there can be no collisions. \layout Standard A system with a 64 bit preamble and 64 bits of data could send 78,000\SpecialChar ~ packets/sec ond. Only one complete packet is needed at the receiver, hence the figure of \begin_inset Formula \( \unit {26}{\micro \second } \) \end_inset in section \begin_inset LatexCommand \ref{momentary} \end_inset . \layout Subsection Coping with existing hardware \layout Standard Having illustrated the possibility of rapid back-to-back packets, we now consider what would be lost if the existing ethernet card is used to send and receive the alignment data. \layout Subsubsection Reduced sample rate \layout Standard The minimum size of an ethernet \begin_float footnote \layout Standard I take the normal meaning of Ethernet, i.\SpecialChar ~ e.\SpecialChar ~ 10Mbps. The 100Mbps variety is Fast Ethernet. \end_float frame is 64 bytes, plus a 64 bit preamble and \begin_inset Formula \( \unit {9.6}{\micro \second } \) \end_inset inter-frame gap. This will carry the minimum size of data payload, 46 bytes. Although this is considerably more than we need, there is no advantage to sending less data because the frame size cannot be made any smaller. \layout Standard The maximum transmission rate is 14,800 small frames per second \begin_float footnote \layout Standard Older computer hardware may not be capable of sending back-to-back packets, but a good quality ethernet card may help with this. \end_float , so the loss in performance will be at least a factor of \begin_inset Formula \( 5\frac{1}{4} \) \end_inset . Performance is not critical however. \layout Subsubsection Increased data lag \layout Standard Dedicated hardware could send a latched copy of the data used for steering the beam, for a latency of around one packet. This would be ideal, because the received coordinates would be as close to the correct value as possible. \layout Standard Packets which have queued in the IP stack of an operating system are likely to be up to a millisecond late, so the alignment coordinates the receiver sees may well be wrong \latex no_latex if \latex default the beam is moving quickly. \layout Standard Stale data can by sending future coordinates with taking a second scan much more slowly over [TODO] \layout Comment send future position (because you know it!) \layout Comment send current velocity (um, d/dt of position; velocity is ambiguous) \layout Comment slow the beam after first contact, take another pass (lag effects proportional to speed) \layout Subsubsection Benefits \layout Standard The main advantages are in cost and simplicity. Mass produced ethernet cards are very cheap, for the functionality they provide - and the system will use one anyway. With custom transceiver hardware comes the need for another communications channel to the controlling computer, or even a dedicated microcontroller. \layout Standard Inside the smallest ethernet frame, there is space for a UDP packet containing a of 18 bytes \begin_float margin \layout Standard \begin_inset Tabular \begin_inset Text \layout Standard \begin_inset Formula \( 46 \) \end_inset \end_inset \begin_inset Text \layout Standard Ethernet data \end_inset \begin_inset Text \layout Standard \begin_inset Formula \( -20 \) \end_inset \end_inset \begin_inset Text \layout Standard IP header \end_inset \begin_inset Text \layout Standard \begin_inset Formula \( -8 \) \end_inset \end_inset \begin_inset Text \layout Standard UDP header \end_inset \begin_inset Text \layout Standard \begin_inset Formula \( 18 \) \end_inset \end_inset \begin_inset Text \layout Standard UDP payload \end_inset \end_inset \end_float of data. This is plenty for alignment purposes, so there is no data-size cost to UDP. The use of standard UDP sockets will avoid the need for reading and writing custom ethernet frames. Furthermore, it should be much easier to route data back to the transmitter via a wired connection if the packets are of a standard routable form. \layout Standard It would be very convenient to interleave alignment data with the bulk data on the beam, instead of interrupting data flow at inappropriate moments. Interleaving data would be hard to implement in custom hardware. \layout Section Calculations on acquisition time \layout Standard I have done the calculations. I should write them here, but mostly once you ask the questions you find the answers are easy and suggest that the project will work. \layout Subsection How long does it take to send the data? \layout Subsection How far can the beam move out of perfect alignment before the link is lost? \layout Subsection How big is the scan area and how long will it take to cover it? \layout Section Conclusion \layout Standard TODO \layout Comment Reporting working positions with standard UDP packets should work a treat, because of the high data bit rate \layout Comment Some extra benefit from building large amount of complex hardware \layout Section Ideas and further work \layout Standard The author intends to do \begin_inset LatexCommand \ref{daemon} \end_inset and \begin_inset LatexCommand \ref{protosteer} \end_inset . \layout Subsection Write a control daemon \layout Standard \begin_inset LatexCommand \label{daemon} \end_inset The first version will need to \layout Itemize listen on a UDP port \layout Itemize accurately time stamp incoming packets \layout Itemize log an analogue signal from (perhaps) a sound card, when the packet comes in \layout Itemize be capable of transmitting a closely spaced flood of UDP traffic containing current positioning data. Outgoing traffic queues will not help here, and it may be necessary to do something more cunning than pile up outgoing packets of stale data. \layout Standard Scanning the target with the path of a Hilbert curve instead of a more conventio nal raster scan may server to reduce requirements for freshness of data as it leaves the ethernet card, perhaps at the expense of a requirement for better damping. \layout Standard It may turn out that the system time in the kernel for dealing with this flood of packets is too high for an older machine. This may make it worth writing some kernel level filter which can hijack the appropriate packets as they come in, but this is just an optimisation. In fact it could be bolted on to an existing daemon... \layout Subsection Build a steerable laser pointer \layout Standard \begin_inset LatexCommand \label{protosteer} \end_inset Mount a standard laser pointer at the intersection point of two small perpendicu lar loudspeakers and attempt to draw some pictures on a wall with it. The loudspeakers can be driven from a standard sound card. Creating some Lissajous figures should not be a difficult task. \layout Subsection Steerable mirror \layout Standard On a smaller scale, a pair of piezo sounders could be used to drive a small mirror. \layout Itemize The power consumption will be smaller. \layout Itemize The system should be more responsive because of the reduced mass of the driven element and perhaps more precise by the nature of piezo crystals. \layout Itemize Construction is likely to be more complex. \layout Itemize Extra optical loss in the mirror. \layout Subsection Steering with worm drives \layout Standard \begin_inset LatexCommand \label{wormdrive} \end_inset A pair of motors with high ratio worm drives would be capable of moving larger apparatus. \layout Itemize Precision should be very good. \layout Itemize Damping will not be a problem, but only because the movement will be quite slow. \layout Itemize Knowing the absolute position of the beam at the other end then requires a counter on each drive motor. \layout Itemize Static power consumption is zero. \layout Subsection Managing without absolute steering \layout Standard If the requirement for repeatability is relaxed, construction of a high precision drive may be easier ( \begin_inset LatexCommand \ref{wormdrive} \end_inset ). \layout Standard If absolute positioning is not available, timely feedback from the receiver becomes more important. Initial alignment may require a modem to report the first \begin_inset Quotes eld \end_inset hit \begin_inset Quotes erd \end_inset , otherwise it will be harder to restore the correct position. \layout Standard When the beams are only slightly misaligned, it will be possible to correct this with small relative adjustments, as in \begin_inset LatexCommand \ref{sigstrength} \end_inset . \layout Subsection Multiple links \layout Subsubsection Multiple receivers \layout Standard Allows for routing round birds (block beam for \begin_inset Formula \( \sim \unit {7}{\milli \second } \) \end_inset , so it's hardly worth it). \layout Standard Ethernet MAC address assists figuring out who's who, and for free. \layout Subsubsection Multiple transmitters \layout Standard It will all go horribly wrong if two transmitters point at one receiver. The collision detection and subsequent retries won't work because the transmitt ers don't see the collision. \layout Standard If the receiver can detect the collision by signal strength/frequency analysis, it could use its own beam to cause collision detection at the transmitter - would require half duplex operation, which is otherwise not required. \layout Standard A long thin tube with the detector at the bottom may be the answer here. Also keeps the sun out most of the time. \layout Section Acknowledgements \layout Standard I would like to thanks the owners of the listed References for inspiring my interest in laser data links and assisting with technical details. \layout Standard It is very likely that my ideas are based on something I have read somewhere, but I am not aware of any similar published work in this field. My \begin_inset Quotes eld \end_inset literature review \begin_inset Quotes erd \end_inset consisted of a few Internet searches, so I apologise if I have missed any previous work. \layout Bibliography \bibitem [Ronja]{Ronja} Twibright Labs, \begin_inset Quotes eld \end_inset Ronja \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://atrey.karlin.mff.cuni.cz/~clock/twibright/ronja/} \end_inset \layout Bibliography \bibitem [UPNLT]{UPNLT} Realtime Control, \begin_inset Quotes eld \end_inset UPN Laser Transceiver \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://www.alphalink.com.au/~derekw/upntcvr.htm} \end_inset \layout Bibliography \bibitem [IEEE]{EthS} TODO: 802.2 standard link \layout Bibliography \bibitem [EG3567]{EthT} Godred Fairhurst, \begin_inset Quotes eld \end_inset 3rd level EG 3567 course \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://www.erg.abdn.ac.uk/users/gorry/course/} \end_inset , \newline ERG, University of Aberdeen, April 2002 \layout Bibliography \bibitem {key-1} K3PGP. TODO: I can't get any sense out of \begin_inset LatexCommand \url{http://www.k3pgp.org/} \end_inset at the moment, and I don't remember what it was I found there exactly. \layout Bibliography \bibitem {key-2} David A. Johnson, P.E., \begin_inset Quotes eld \end_inset Imagineering on-line magazine \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://www.imagineeringezine.com/} \end_inset , April 2002 \layout Bibliography \bibitem {key-3} Matthew Skala, \begin_inset Quotes eld \end_inset On free networking \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://ansuz.sooke.bc.ca/ofn.html} \end_inset , May 1999 \layout Bibliography \bibitem {key-4} Samuel M. Goldwasser, \begin_inset Quotes eld \end_inset Sam's Laser FAQ \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://www.repairfaq.org/sam/lasersam.htm} \end_inset , 1994 - 2002 \layout Comment Author, \begin_inset Quotes eld \end_inset Title \begin_inset Quotes erd \end_inset , Journal \series bold Volume \series default , page--numbers (year). \layout Section* Other links \layout Itemize AFRL, \begin_inset Quotes eld \end_inset Development of Laser Data Link for Airborne Operations \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://www.dodccrp.org/Proceedings/DOCS/wcd00000/wcd00099.htm} \end_inset \layout Itemize Canon, \begin_inset Quotes eld \end_inset DT-50 Technology \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://www.canon.com/bctv/canobeam/canb_dt-50/tech.html} \end_inset \layout Itemize Optical Access, \begin_inset Quotes eld \end_inset Terescope \begin_inset Quotes erd \end_inset , \newline \begin_inset LatexCommand \url{http://www.opticalaccess.com/products-ts.shtml} \end_inset \layout Itemize ...that company a couple of years ago that wanted to put multi-headed lasers on many buildings and have a network. Haven't heard anything about them in a while. \the_end