summaryrefslogtreecommitdiff
path: root/ir
diff options
context:
space:
mode:
authorWerner Almesberger <werner@almesberger.net>2014-07-22 21:00:46 -0300
committerWerner Almesberger <werner@almesberger.net>2014-07-22 21:02:06 -0300
commite22d2af38eaacb59e9497903461d743c805bece9 (patch)
treeda513339e36b7fb1483afa6d9ba07bbbbb03acd7 /ir
parent455cf139e86a444c0a30b55f3ce5b96e98ef01f1 (diff)
downloadmisc-e22d2af38eaacb59e9497903461d743c805bece9.tar.gz
misc-e22d2af38eaacb59e9497903461d743c805bece9.tar.bz2
misc-e22d2af38eaacb59e9497903461d743c805bece9.zip
ir/: draft of specification/description of the IR subsystem
Diffstat (limited to 'ir')
-rw-r--r--ir/Makefile11
-rw-r--r--ir/ir.tex363
-rw-r--r--ir/sys.fig85
-rw-r--r--ir/window.fig70
4 files changed, 529 insertions, 0 deletions
diff --git a/ir/Makefile b/ir/Makefile
new file mode 100644
index 0000000..213d493
--- /dev/null
+++ b/ir/Makefile
@@ -0,0 +1,11 @@
+.PHONY: all clean
+.SUFFIXES: .fig .pdf
+
+all: ir.tex sys.pdf window.pdf
+ pdflatex ir
+
+.fig.pdf:
+ fig2dev -L pdf $< $@
+
+clean:
+ rm -f sys.pdf window.pdf
diff --git a/ir/ir.tex b/ir/ir.tex
new file mode 100644
index 0000000..c200bda
--- /dev/null
+++ b/ir/ir.tex
@@ -0,0 +1,363 @@
+\documentclass[11pt]{article}
+\usepackage{a4}
+\usepackage{fullpage}
+\usepackage{graphicx}
+\usepackage{url}
+
+\title{GTA04b7 Infrared Subsystem}
+\author{J\"org Reisenweber, Werner Almesberger}
+\date{July 21, 2014}
+
+\def\todo#1{{\bf TO DO:} #1}
+\def\degree{\,^{\circ}}
+\newenvironment{tab}{\vskip4mm\qquad\begin{minipage}{430pt}}%
+{\end{minipage}\vskip4mm\noindent}
+
+\begin{document}
+\maketitle
+
+\noindent
+This document describes the infrared (IR) system of GTA04b7.
+It is intended to be used both as tentative specification and as
+documentation of actual functionality, and may be revised as
+focus shifts over time from requirements to implementation.
+
+
+% -----------------------------------------------------------------------------
+
+\section{System overview}
+
+The IR subsystem consists of a high-powered transmitter and a receiver.
+It connects to UART3 of the DM3730, where hardware-assisted
+IrDA\footnote{\url{http://en.wikipedia.org/wiki/Infrared_Data_Association#IrPHY}}
+(SIR) and
+CIR\footnote{\url{http://en.wikipedia.org/wiki/Consumer_IR#Technical_information}}
+functions are available.
+
+The IR subsystem also connects to the ``Hackerbus'' which can use the
+signals to communicate with the CPU, be it as UART or as GPIOs, or to
+access the IR system. For advanced
+signal processing, the analog output of the IR sensor connects to an
+unused input of the audio codec. The following drawing shows the various
+components:
+
+\begin{center}
+\includegraphics[scale=0.9]{sys.pdf}
+\end{center}
+
+The signal named bq.GPIO determines the configuration after CPU reset and
+is described in section \ref{reset}.
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+\subsection{IR modes}
+\label{modes}
+
+The IR subsystem supports both ``Consumer CIR'' (CIR) and
+IrDA operation. In CIR mode, it can also receive incoming
+IR signals and thus act as a ``learning'' remote control.
+Furthermore, the IR transceiver can be configured to send and receive
+unmodulated data from the UART. We call this ``IR-UART'' mode
+
+% CIR trumps IrDA
+%
+% Jul 07 23:03:38 <DocScrutinizer05> wpwrak: I'd be willing to sacrifice full
+% IrDA compatibility by simply using a photo transistor plus "discrete" filter
+% gear for RX, and only the CIR wavelength IR LED for TX
+
+These characteristics mean that some design conflicts are unavoidable, e.g.,
+because CIR and IrDA operate at different wavelengths. Where a conflict
+arises, highest priority is given to CIR transmission, followed by CIR
+reception, and finally IrDA.
+
+Likewise, since the IR data path is shared between CPU and Hackerbus,
+conflicting configurations are possible. Their resolution is described
+in section \ref{conflict}.
+
+IrDA (SIR) uses a pulse modulation with UART-like framing and has the
+following characteristics:
+
+\begin{tab}
+\begin{tabular}{l|cll}
+Parameter & Value & Unit \\
+\hline
+Wavelength & 850--900 & nm \\
+
+Data rate & 9.6-115.2 & kbps \\
+Duty cycle & 3/16 & & ``0`` bit \\
+ & 0/16 & & ``1`` bit \\
+Pulse width & 1.6--19.5 & $\mu$s \\
+Beam angle & $\ge 15$ & $\hbox to 0pt{}\degree$ \\
+\end{tabular}
+\end{tab}%
+%
+The characteristics of CIR typically lie in the following ranges,
+with amplitude-shift keying (ASK) being the most common for of modulation,
+but other types of modulation being possible:
+
+\begin{tab}
+\begin{tabular}{l|cll}
+Parameter & Value & Unit & \\
+\hline
+Wavelength & 870, 930--950 & nm \\
+Data rate & 4--120 & bps \\
+Carrier & 33-60 & kHz \\
+Beam angle & $\ge 50$ & $\hbox to 0pt{}\degree$
+ & (estimate for IR remote) \\
+\end{tabular}
+\end{tab}%
+%
+Last but not least, IR-UART mode uses on-off keying (OOK), and we can define
+the following characteristics:
+
+\begin{tab}
+\begin{tabular}{l|cl}
+Parameter & Value & Unit \\
+\hline
+Data rate & 19.2--115.2 & kbps (typical) \\
+Duty cycle & 10--90 & \% \\
+\end{tabular}
+\end{tab}%
+%
+Combining the above specifications, we obtain the following common
+characteristics for transmitter and receiver:
+
+% Minimum beam angle
+%
+% Jul 08 00:07:39 <DocScrutinizer05> I think 50° are absolute minmum
+
+% Wavelength selection
+%
+% Jul 07 23:28:15 <DocScrutinizer05> I'd prefer CIR wavelength rather than
+% IrDA wavelength
+
+\begin{tab}
+\begin{tabular}{l|cll}
+Parameter & Value & Unit \\
+\hline
+Wavelength & 940 & nm & transmit \\
+ & 850--950 & nm & receive \\
+Frequency & 20--312 & kHz \\
+Beam angle & $\ge 50$ & $\hbox to 0pt{}\degree$ \\
+\end{tabular}
+\end{tab}%
+
+
+Jul 07 23:57:01 <DocScrutinizer05> for the RX we want a phototransistor with filter gear to implement a highpass with cutoff @ ~20kHz
+
+
+Jul 07 23:29:55 <DocScrutinizer05> 300mA pulsed sounds good
+
+% Jul 09 16:43:40 <DocScrutinizer05> the detector should get connected to UART3 RX, via proper signal shaping/filtering.
+% and possibly also to audio-in
+
+% Jul 09 16:47:10 <DocScrutinizer05> re any multiplexing: I expect the whole IR section to get powered down by asserting a GPIO pin to a non-POR-default state, so the IR is active by default after power on reset. By connecting the whole IR via some series resistors to the UART, I expect anything on hackerbus to be able to override what comes from IR, particularly when IR is powered down
+
+
+% -----------------------------------------------------------------------------
+
+\section{Configurations}
+
+The IR subsystem can be configured for several different modes of operation.
+The following sections detail the various configurations.
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+\subsection{CPU powered down}
+
+\todo{What do we do ? Turn IR off, follow bq.GPIO, something else ?}
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+\subsection{Reset}
+\label{reset}
+
+When the control signals from the CPU are in their reset state, the
+configuration of the IR system is determined by the state of the
+GPIO pin of the bq27200 battery fuel gauge. This chip is directly
+connected to the battery and retains its state during normal system
+reset.
+
+Note that the bq27200 does not preserve the entire GPIO state across power-on
+reset: while the direction of the GPIO pin is determined by EEPROM content,
+the open-collector output is always set to ``1'', i.e., it is high-Z.
+
+If GPIO is high-Z, the IR subsystem shall be deactivated: it must draw as
+little current as possible, and the transmitter must ignore its TX or CTS
+inputs.
+
+If GPIO is ``0'', both transmitter and receiver shall be active and operate
+in IrDA mode.
+
+The following table summarizes the IR configuration in power-down and
+after CPU reset:
+
+\begin{tab}
+\begin{tabular}{ll|l}
+CPU.controls & bq.GPIO & IR configuration \\
+\hline
+CPU off & any & ??? \\
+reset state & ``1'' (High-Z) & off (minimum power) \\
+ & ``0'' & IrDA TX/RX \\
+active & ignored & defined by controls \\
+\end{tabular}
+\end{tab}
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+\subsection{IrDA mode}
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+\subsection{CIR mode}
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+\subsection{UART mode}
+
+
+% -----------------------------------------------------------------------------
+
+\section{Possible component selection}
+
+% Agreement on VSMB2948SL LED
+%
+% Jul 08 04:20:17 <DocScrutinizer05> I think
+% http://www.vishay.com/docs/83498/vsmb2948sl.pdf
+% is a better match for our purposes
+
+Taking into account the requirement specified in section \ref{modes},
+available space (see section \ref{placement}), and general component
+availability, we consider the Vishay VSMB2948SL%
+\footnote{\url{http://www.vishay.com/docs/83498/vsmb2948sl.pdf}}
+IR LED and the Vishay VEMD2023SLX01%
+\footnote{\url{http://www.vishay.com/docs/83493/vemd2023slx01.pdf}}
+photodiode suitable for our purposes.
+
+\begin{tab}
+\begin{tabular}{l|cl|cc}
+Parameter & Requirement & Unit & Transmitter & Receiver \\
+ & & & VSMB2948SL & VEMD2023SLX01 \\
+\hline
+Wavelength & 850--950 & nm & 940 & 750--1050 \\
+Beam angle & $\ge$ 50 & $\hbox to 0pt{}\degree$ & 50 & 70 \\
+Peak frequency & $\ge$ 0.3 & MHz & 23 & $\approx 2$ \\
+\end{tabular}
+\end{tab}%
+%
+Note that the peak frequency of 2 MHz for the receiver is an estimate
+based on the specified rise and fall times of 100 ns each, which are
+specified for a reverse voltage of 10 V whereas we would expect to
+operate at 3.3 V.
+
+% Daylight filter
+%
+% Jul 08 00:54:44 <DocScrutinizer05> don't worry about "color2 filtering,
+% we already ahve a apparently completely black window
+
+\todo{I selected a photodiode with daylight filter since relying on the IR
+ window just seems too risky. Agreed ?}
+
+The characteristics of the daylight filter integrated in the IR
+window of the N900 case are unknown,
+our design will add multiple internal light sources
+that may affect the photodiode, and there is also the possibility of
+outside light reaching the diode through the spacer frame. We therefore
+consider it desirable for the photodiode to contain its own filter and
+not have to rely on external filtering and shielding.
+
+% Photo-transistor, speed:
+%
+% Jul 08 03:27:28 <DocScrutinizer05> wpwrak:
+% http://www.everlight.com/datasheets/PT26-51B-TR8_datasheet.pdf
+% says "rise/fall-time 15us" - seems it's a tad slow for carrier frequencies
+% >30kHz
+
+% Photo-transistor, access to base:
+%
+% Jul 09 16:40:41 <DocScrutinizer05> re phototransistor: we prolly should
+% use a photodiode then, they are faster than a phototransistor without
+% proper discharge resistor on base
+
+We considered the use of a phototransistor, but found that the readily
+available SMT parts all had rise and fall times in the order of 15 $\mu$s
+and did not allow improving their response by biasing the transitor's base.
+
+% -----------------------------------------------------------------------------
+
+\section{Component placement}
+\label{placement}
+
+The N900 case has a window with an integrated IR filter of unknown
+characteristics. The window is approximately 5 mm $\times$ 5 mm.
+
+The window is designed for a single IR LED but we will have a LED
+and a photodiode. Since IR components are generally large, it won't
+be possible to place both ``nicely''. However, as the following drawing
+illustrates, both components can ``see'' the window if placed behind each
+other:
+
+\begin{center}
+\includegraphics[scale=0.9]{window.pdf}
+\end{center}
+%
+The transmitter should be closer to the window since its performance
+is more important than that of the receiver.
+
+% -----------------------------------------------------------------------------
+
+\section{Conflict resolution}
+\label{conflict}
+
+%
+% Conflict resolution rules:
+%
+% Jul 15 21:49:18 <DocScrutinizer05> wpwrak: both, and collision is a
+% non-defined case, but we will make sure that the UART TX has a series R
+% so it can get overridden by HB, given HB driver has lower ESR. Same for
+% RX from photodiode which HB can override before it raches UART
+
+When a line is driven as output from multiple sources, conflict resolution
+strategy shall be applied:
+
+\begin{tab}
+\begin{tabular}{l|ll|l}
+Line & Dominant & Subordinate & Applicable CPU states \\
+\hline
+TX & Hackerbus & CPU & IrDA, UART, use as GPIO \\
+CTS & Hackerbus & CPU & CIR, use as GPIO \\
+RX & Hackerbus or CPU & IR sensor & IrDA, CIR \\
+\end{tabular}
+\end{tab}%
+%
+Conflicts between CPU and Hackerbus on RTS or RX result in undefined
+behaviour and should be avoided.
+
+Precedence is established by series resistors next to the CPU for TX and
+CTS, and a series resistor on the digital output of the IR sensor,
+before entering the RX line.
+
+% -----------------------------------------------------------------------------
+
+\section{Overload protection}
+
+% Pulse width limiting
+%
+% Jul 07 23:54:20 <DocScrutinizer05>
+% make sure the pulsewidth at 500mA gets limited by hw to 100us
+
+Since the IR LED can be driven with a current significantly above its
+permitted continuous forward current, the pulse width at high current
+must be limited. This shall be done by hardware, apply to any mode,
+and the maximum continuous pulse width shall be 100$\mu$s.
+
+Since IR-UART mode can operate with a duty cycle of up to 90\%,
+IR LED current should be reduced to the LED's maximum continuous
+forward current in this mode. Furthermore, the maximum nominal pulse
+length at 19.2 kbps is 469 $\mu$s and pulse width limiting must
+therefore not be applied.
+
+\end{document}
diff --git a/ir/sys.fig b/ir/sys.fig
new file mode 100644
index 0000000..5721cee
--- /dev/null
+++ b/ir/sys.fig
@@ -0,0 +1,85 @@
+#FIG 3.2 Produced by xfig version 3.2.5c
+Portrait
+Center
+Metric
+A3
+100.00
+Single
+-2
+1200 2
+2 1 0 3 0 7 60 -1 -1 0.000 0 0 7 0 0 4
+ 0 900 1125 900 1125 4725 0 4725
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 1755 2250 3600 2250
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 3
+ 1125 1350 2565 1350 2565 1620
+2 3 0 3 0 7 50 -1 -1 0.000 1 0 -1 0 0 4
+ 3150 1890 3150 1710 3330 1800 3150 1890
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3195 1665 3240 1575
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3285 1665 3330 1575
+2 1 0 3 0 7 50 -1 -1 0.000 0 1 -1 0 0 2
+ 3330 1710 3330 1890
+2 3 0 3 0 7 60 -1 -1 0.000 0 0 7 0 0 4
+ 2475 2025 2475 1575 2835 1800 2475 2025
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 3
+ 2475 1890 2250 1890 2250 2250
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 2835 1800 3150 1800
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 -1 0 0 2
+ 1350 2250 1125 2250
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 3
+ 2025 2565 2025 1710 2475 1710
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 -1 0 0 2
+ 1350 2565 1125 2565
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 1755 2565 3600 2565
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 1125 2880 3600 2880
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 1125 3195 3600 3195
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 2925 3195 2925 3420
+2 2 0 3 0 7 50 -1 -1 0.000 0 2 -1 0 0 5
+ 1350 2160 1755 2160 1755 2340 1350 2340 1350 2160
+2 2 0 3 0 7 50 -1 -1 0.000 0 2 -1 0 0 5
+ 1350 2475 1755 2475 1755 2655 1350 2655 1350 2475
+2 2 0 3 0 7 50 -1 -1 0.000 0 2 -1 0 0 5
+ 3015 3420 3015 3825 2835 3825 2835 3420 3015 3420
+2 1 0 3 0 7 60 -1 -1 0.000 0 0 7 0 0 2
+ 2925 4500 2925 4950
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 2925 3825 2925 4050
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 -1 0 0 4
+ 3960 2070 4050 2070 4050 3375 3960 3375
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3330 4230 3420 4185
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 3330 4320 3420 4275
+2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 2610 4050 3240 4050 3240 4500 2610 4500 2610 4050
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+ 2700 1710 2700 1125
+2 1 0 3 0 7 50 -1 -1 0.000 0 2 7 0 0 2
+ 1125 4185 2610 4185
+2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 3
+ 2610 4365 1800 4365 1800 4680
+4 0 0 50 -1 22 12 0.0000 4 135 660 3420 1890 CIR LED\001
+4 1 0 50 -1 22 12 0.0000 4 135 165 2925 4275 IR\001
+4 1 0 50 -1 22 12 0.0000 4 105 540 2925 4410 sensor\001
+4 1 0 50 -1 22 12 0.0000 4 135 1005 2880 5130 Audio codec\001
+4 0 0 50 -1 22 12 0.0000 4 135 330 3645 2970 RTS\001
+4 0 0 50 -1 22 12 0.0000 4 135 225 3645 3285 RX\001
+4 1 0 50 -1 22 12 4.7124 4 135 840 4140 2700 Hackerbus\001
+4 1 0 50 -1 22 12 0.0000 4 135 345 540 4950 CPU\001
+4 0 0 50 -1 22 12 0.0000 4 135 330 3645 2655 CTS\001
+4 0 0 50 -1 22 12 0.0000 4 135 210 3645 2340 TX\001
+4 1 0 50 -1 22 12 0.0000 4 180 645 2700 1080 bq.GPIO\001
+4 1 0 50 -1 22 12 0.0000 4 180 645 1800 4860 bq.GPIO\001
+4 2 0 50 -1 22 12 0.0000 4 180 570 1080 4230 gpio(s)\001
+4 2 0 50 -1 22 12 0.0000 4 165 990 1080 3240 uart3_rx_irrx\001
+4 2 0 50 -1 22 12 0.0000 4 165 990 1080 2925 uart3_rts_sd\001
+4 2 0 50 -1 22 12 0.0000 4 165 1125 1080 2610 uart3_cts_rctx\001
+4 2 0 50 -1 22 12 0.0000 4 165 990 1080 2295 uart3_tx_irtx\001
+4 2 0 50 -1 22 12 0.0000 4 180 570 1080 1395 gpio(s)\001
diff --git a/ir/window.fig b/ir/window.fig
new file mode 100644
index 0000000..0865743
--- /dev/null
+++ b/ir/window.fig
@@ -0,0 +1,70 @@
+#FIG 3.2 Produced by xfig version 3.2.5c
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 4170 4755 5910 5865
+1 3 0 2 0 7 52 -1 20 0.000 1 0.0000 5040 5310 405 405 5040 5310 5445 5310
+2 1 0 2 0 7 55 -1 17 0.000 0 0 -1 0 0 6
+ 4500 5400 4410 5400 4410 5850 4185 5850 4185 5220 4500 5220
+2 1 0 2 0 7 55 -1 17 0.000 0 0 -1 0 0 6
+ 5580 5400 5670 5400 5670 5850 5895 5850 5895 5220 5580 5220
+2 2 0 2 0 7 54 -1 17 0.000 0 0 -1 0 0 5
+ 4500 5850 5580 5850 5580 4770 4500 4770 4500 5850
+-6
+6 5505 4770 7245 5880
+1 3 0 2 0 7 60 -1 10 0.000 1 0.0000 6375 5325 405 405 6375 5325 6780 5325
+2 1 0 2 0 7 65 -1 15 0.000 0 0 -1 0 0 6
+ 5835 5415 5745 5415 5745 5865 5520 5865 5520 5235 5835 5235
+2 1 0 2 0 7 65 -1 15 0.000 0 0 -1 0 0 6
+ 6915 5415 7005 5415 7005 5865 7230 5865 7230 5235 6915 5235
+2 2 0 2 0 7 63 -1 15 0.000 0 0 -1 0 0 5
+ 5835 5865 6915 5865 6915 4785 5835 4785 5835 5865
+-6
+6 7560 5535 9315 5760
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 0 0 2.00 120.00 60.00
+ 0 0 2.00 120.00 60.00
+ 7575 5700 9285 5700
+4 1 0 50 -1 22 10 0.0000 4 120 195 8430 5655 3.8\001
+-6
+6 7875 4095 9000 4320
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 0 0 2.00 120.00 60.00
+ 0 0 2.00 120.00 60.00
+ 7890 4260 8970 4260
+4 1 0 50 -1 22 10 0.0000 4 120 195 8430 4215 2.3\001
+-6
+1 3 0 2 0 7 52 -1 20 0.000 1 0.0000 8430 4935 405 405 8430 4935 8835 4935
+2 4 0 3 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 6750 6300 6750 4050 4500 4050 4500 6300 6750 6300
+2 1 0 3 0 7 55 -1 -1 0.000 0 0 -1 0 0 2
+ 4050 5850 7200 5850
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 0 0 2.00 120.00 60.00
+ 0 0 2.00 120.00 60.00
+ 4500 3870 6750 3870
+2 2 0 0 0 7 60 -1 45 0.000 0 0 -1 0 0 5
+ 4050 5850 7200 5850 7200 6390 4050 6390 4050 5850
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 1 2
+ 0 0 2.00 120.00 60.00
+ 0 0 2.00 120.00 60.00
+ 8160 4665 8700 5205
+2 1 0 2 0 7 55 -1 17 0.000 0 0 -1 0 0 6
+ 7890 5025 7800 5025 7800 5475 7575 5475 7575 4845 7890 4845
+2 2 0 2 0 7 55 -1 17 0.000 0 0 -1 0 0 5
+ 7890 5475 8970 5475 8970 4395 7890 4395 7890 5475
+2 1 0 2 0 7 55 -1 17 0.000 0 0 -1 0 0 6
+ 8970 5025 9060 5025 9060 5475 9285 5475 9285 4845 8970 4845
+4 1 0 50 -1 22 10 0.0000 4 150 930 5580 3825 approx. 5 mm\001
+4 1 0 50 -1 22 12 0.0000 4 135 210 5040 4680 TX\001
+4 1 0 50 -1 22 12 0.0000 4 135 1845 5580 3600 IR window in N900 case\001
+4 1 0 50 -1 22 12 0.0000 4 135 225 6390 4680 RX\001
+4 1 0 50 -1 22 10 0.0000 4 150 1770 8415 6075 Package dimensions (mm)\001
+4 0 0 50 -1 22 10 0.0000 4 120 195 8430 4890 1.8\001
+4 1 0 50 -1 22 10 0.0000 4 120 885 5040 6570 VSMB2948SL\001
+4 1 0 50 -1 22 10 0.0000 4 120 1125 6390 6570 VEMD2023SLX01\001