mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-12-23 21:19:34 +02:00
427 lines
13 KiB
Plaintext
427 lines
13 KiB
Plaintext
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML>
|
|
<TITLE>Production and testing: Software setup</TITLE>
|
|
<BODY bgcolor="#ffffff" link="#000000" vlink="#404040">
|
|
|
|
<INCLUDE file="style.inc">
|
|
|
|
<PAGE_BAR title="Production and testing">
|
|
<PAGE_CURR href="setup.html">Software setup</PAGE_CURR>
|
|
<PAGE_ITEM href="flash.html">Flashing</PAGE_ITEM>
|
|
<PAGE_ITEM href="test.html">Functional test</PAGE_ITEM>
|
|
<PAGE_ITEM href="analysis.html">Fault analysis</PAGE_ITEM>
|
|
</PAGE_BAR>
|
|
|
|
<SECTION_BAR>
|
|
<SECTION_ITEM href="#intro">Introduction</SECTION_ITEM>
|
|
<SECTION_ITEM href="#pcsw">PC installation</SECTION_ITEM>
|
|
<SECTION_ITEM href="#bensw">Ben installation</SECTION_ITEM>
|
|
<SECTION_ITEM href="#bensys">Ben setup</SECTION_ITEM>
|
|
<SECTION_ITEM href="#profiles">Test profiles</SECTION_ITEM>
|
|
</SECTION_BAR>
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="intro" title="Introduction">
|
|
|
|
Before performing production tests, various pieces of software
|
|
need to be installed on Ben and PC, and configuration settings may
|
|
have to be adjusted. The following sections describe the installation
|
|
and configuration process.
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="pcsw" title="PC software installation">
|
|
|
|
For a DUT and reference device role, the ben-wpan tools
|
|
and the test scripts have to be installed on the PC. For flashing the
|
|
<B>atusb</B> application
|
|
firmware, also dfu-util and the firmware binary are required.
|
|
<P>
|
|
The instructions below assume that a complete development environment
|
|
is already present on the PC, including SDL, SDL_gfx, and GSL.
|
|
If any prerequisites are not met,
|
|
compilation will fail, and you'll have to install the corresponding
|
|
package and try again.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install ben-wpan tools">
|
|
|
|
To build the ben-wpan tools and install them under
|
|
<SAMP>/usr/local/</SAMP> on the local machine,
|
|
run the following commands:
|
|
<PRE>
|
|
git clone git://projects.qi-hardware.com/ben-wpan.git
|
|
cd ben-wpan/tools
|
|
make
|
|
make install
|
|
</PRE>
|
|
<P>
|
|
A different directory prefix can be chosen by overriding the
|
|
<SAMP>INSTALL_PREFIX</SAMP> variable, e.g.,
|
|
<PRE>
|
|
make INSTALL_PREFIX=/usr install
|
|
</PRE>
|
|
<P>
|
|
Note that the test scripts expect <SAMP>${INSTALL_PREFIX}/bin</SAMP>
|
|
to be in <SAMP>PATH</SAMP>.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install test scripts">
|
|
|
|
The test scripts are in the directory <SAMP>prod/</SAMP> of the
|
|
ben-wpan project. They currently are designed to be run from
|
|
this directory. Therefore, all that's necessary is to check out the
|
|
repository, as shown above.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install dfu-util">
|
|
|
|
dfu-util is used to transfer the application firmware to
|
|
<B>atusb</B> boards. To build dfu-util from source, run these
|
|
commands:
|
|
|
|
<PRE>
|
|
git clone git://git.openezx.org/dfu-util.git
|
|
cd dfu-util
|
|
./autogen.sh
|
|
./configure
|
|
make
|
|
make install
|
|
</PRE>
|
|
|
|
Note that some Linux distributions already provide a pre-compiled
|
|
version of dfu-util, which could be used instead of building
|
|
it from source.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install and run NTP">
|
|
|
|
The clock frequency test for <B>atusb</B> measures the clock frequency
|
|
relative to the PC clock. Many PC clocks are highly inaccurate, which
|
|
would render the result of the measurement meaningless. To improve the
|
|
quality of the reference clock, it should be disciplined by NTP.
|
|
<P>
|
|
If NTP is not available, it may be necessary to increase the test's
|
|
tolerance by changing the variable <SAMP>CLOCK_DRIFT_PPM</SAMP> in
|
|
the script <SAMP>atusb</SAMP>.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install firmware binary">
|
|
|
|
The binary of the application running on <B>atusb</B> is transferred from
|
|
the PC. To download a pre-compiled version, use this command:
|
|
|
|
<PRE>
|
|
wget -O atusb.bin \
|
|
http://downloads.qi-hardware.com/people/werner/wpan/bindist/atusb-ce16a16.bin
|
|
</PRE>
|
|
|
|
Instructions for building the binary from sources are
|
|
<A href="http://projects.qi-hardware.com/index.php/p/ben-wpan/source/tree/master/atusb/fw/README">here</A>.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Register Ben host name">
|
|
|
|
To simplify accessing the Ben via TCP/IP, its IP address should be
|
|
registered in the <SAMP>/etc/hosts</SAMP> file on the PC. If the Ben is
|
|
running OpenWrt, use the following command:
|
|
<PRE>
|
|
echo 192.168.254.101 ben >>/etc/hosts
|
|
</PRE>
|
|
<P>
|
|
If the Ben is running Jlime, the address would be as follows:
|
|
<PRE>
|
|
echo 192.168.1.202 ben >>/etc/hosts
|
|
</PRE>
|
|
<P>
|
|
If using the same PC with Bens running OpenWrt and Jlime, one may choose
|
|
different host names depending on the distribution, and adapt the commands
|
|
used in the production and testing process accordingly. For example,
|
|
<PRE>
|
|
echo 192.168.254.101 ben >>/etc/hosts
|
|
echo 192.168.1.202 jlime >>/etc/hosts
|
|
</PRE>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Customize test scripts">
|
|
|
|
If using <SAMP>prod/Makefile</SAMP> to run the production test process,
|
|
the names of the drivers for DUT and reference device are defined
|
|
through variables at the beginning of the Makefile. In particular,
|
|
if the host name or IP address under which the Ben is reached differs from
|
|
"ben", the value of <SAMP>ATBEN_DUT</SAMP> and <SAMP>ATUSB_REF</SAMP>
|
|
will have be changed accordingly.
|
|
<P>
|
|
The Makefile also contains the variable <SAMP>SPECTRUM_MARGIN</SAMP> that
|
|
defines how many dB of tolerance should be allowed below and above the
|
|
reference signal strength. The default is to allow a margin of 5 dB in
|
|
either direction.
|
|
<P>
|
|
The scripts <SAMP>atusb</SAMP> and <SAMP>atusb-flash</SAMP> also contain
|
|
configuration variables. If the names of the files containing the
|
|
<B>atusb</B> firmware binaries are not <SAMP>boot.hex</SAMP> and
|
|
<SAMP>atusb.bin</SAMP>, <SAMP>atusb-flash</SAMP> needs to be adapted.
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="bensw" title="Ben software installation">
|
|
|
|
For a DUT and reference device role, the ben-wpan utilities
|
|
have to be installed on a Ben. For flashing the <B>atusb</B> boot
|
|
loader, also avrdude and the boot loader binary are needed.
|
|
<P>
|
|
The instructions below apply for OpenWrt and Jlime. For building
|
|
things from source, a cross-compilation toolchain has to be installed
|
|
on the PC.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Password-less remote access">
|
|
|
|
To enable password-less remote access from the PC, set up network
|
|
access to the Ben and run the following command:
|
|
<PRE>
|
|
ssh ben 'cat >>/etc/dropbear/authorized_keys' <~/.ssh/id_rsa.pub
|
|
</PRE>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install ben-wpan tools">
|
|
|
|
To build and install the ben-wpan tools on the Ben, first set
|
|
up networking between the PC and the Ben. If you have not yet checked
|
|
out the project's repository, run these commands:
|
|
|
|
<PRE>
|
|
git clone git://projects.qi-hardware.com/ben-wpan.git
|
|
cd ben-wpan/tools
|
|
</PRE>
|
|
|
|
If you have already checked out the repository, <SAMP>cd</SAMP> to
|
|
<SAMP>ben-wpan/tools/</SAMP> and run
|
|
|
|
<PRE>
|
|
make clean
|
|
</PRE>
|
|
|
|
Next, if on OpenWrt, compile the tools with
|
|
<PRE>
|
|
make TARGET=ben_openwrt
|
|
</PRE>
|
|
|
|
If on Jlime, use
|
|
<PRE>
|
|
make TARGET=ben_jlime
|
|
</PRE>
|
|
|
|
Finally, upload the tools to the Ben and install them under
|
|
<SAMP>/usr/bin/</SAMP> with
|
|
|
|
<PRE>
|
|
make HOST=ben upload
|
|
</PRE>
|
|
|
|
Where <SAMP>ben</SAMP> is the host name or IP address assigned to the Ben.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install avrdude">
|
|
|
|
The <B>atusb</B> boot loader is flashed using avrdude. A pre-compiled
|
|
static binary (suitable for OpenWrt and Jlime) can be installed by running
|
|
the following two commands on the Ben:
|
|
|
|
<PRE>
|
|
wget http://downloads.qi-hardware.com/people/werner/wpan/bindist/avrdude-5.10-de72af351f661b538add81cbc9965278a2f8c40c.tar.gz
|
|
tar -xz -C / -f avrdude-5.10-de72af351f661b538add81cbc9965278a2f8c40c.tar.gz
|
|
</PRE>
|
|
|
|
Instructions for building avrdude from sources are
|
|
<A href="http://projects.qi-hardware.com/index.php/p/ben-blinkenlights/source/tree/master/avrdude/README
|
|
">here</A>.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Install boot-loader binary">
|
|
|
|
The binary of the boot loader running on <B>atusb</B> is transferred from
|
|
the Ben. To download a pre-compiled version, use this command:
|
|
|
|
<PRE>
|
|
wget -O boot.hex \
|
|
http://downloads.qi-hardware.com/people/werner/wpan/bindist/boot-ce16a16.hex
|
|
</PRE>
|
|
|
|
Instructions for building the binary from sources are
|
|
<A href="http://projects.qi-hardware.com/index.php/p/ben-wpan/source/tree/master/atusb/fw/README">here</A>.
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="bensys" title="Ben system setup">
|
|
|
|
The configuration settings described in this section are lost on each
|
|
reset or reboot and need to be entered again. Alternatively,
|
|
a setup script running at boot time can be written.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Enable network access">
|
|
|
|
Once the Ben has booted and started USB networking, the interface
|
|
on the PC side is configured as follows:
|
|
<PRE>
|
|
ifconfig usb0 192.168.254.100 up
|
|
</PRE>
|
|
<P>
|
|
These are the settings for OpenWrt, assuming the network device is
|
|
called "usb0". If using Jlime, the command would be as follows:
|
|
<PRE>
|
|
ifconfig usb0 192.168.1.200 up
|
|
</PRE>
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Silence other 8:10 card users">
|
|
|
|
Before running any of the ben-wpan utilities, other users of the 8:10
|
|
card slot have to be disabled. In a Ben running the regular OpenWrt or
|
|
Jlime distribution, the only such user that is automatically started
|
|
is the MMC kernel driver. The following command disables it:
|
|
<PRE>
|
|
echo jz4740-mmc.0 >/sys/bus/platform/drivers/jz4740-mmc/unbind
|
|
</PRE>
|
|
<P>
|
|
If a WPAN-enabled kernel has been installed, the AT86RF230 driver takes
|
|
the place of the MMC driver. To disable it, run
|
|
<PRE>
|
|
echo spi2.0 >/sys/bus/spi/drivers/at86rf230/unbind
|
|
</PRE>
|
|
Note that the above command only has the desired effect if used
|
|
before running any of the user-space tools. If the kernel driver and
|
|
the user-space tools have already clashed over access to the board, the
|
|
driver will not unbind and a reboot is needed.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Start atrf-proxy">
|
|
|
|
On the Ben, launch the proxy daemon. We pass the option -b to background it:
|
|
<PRE>
|
|
atrf-proxy -b
|
|
</PRE>
|
|
|
|
|
|
<!-- ====================================================================== -->
|
|
|
|
|
|
<SECTION ref="profiles" title="Test profiles">
|
|
|
|
Some of the functional tests measure characteristics that are strongly
|
|
influenced by the test setup. It is therefore not possible to provide
|
|
universally applicable reference values, but they have to be measured
|
|
in the actual test environment.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Clock count (atben only)">
|
|
|
|
Insert a known to be good <B>atben</B> board and run the following
|
|
command directly on the Ben to record the reference value for the
|
|
clock count with an accuracy of roughly +/−20 ppm:
|
|
|
|
<PRE>
|
|
atrf-xtal 1000 >ben.xtal
|
|
</PRE>
|
|
<P>
|
|
This takes about 5 seconds.
|
|
<P>
|
|
Note that the result depends on the tolerance of the crystal in the Ben
|
|
and is also affected by temperature. Good accuracy can therefore
|
|
only be obtained if this measurement is performed individually on each
|
|
Ben, and if a stable temperature is maintained.
|
|
|
|
|
|
<!-- ---------------------------------------------------------------------- -->
|
|
|
|
|
|
<SUBSECTION title="Signal strength">
|
|
|
|
The signal strength of a DUT is assessed by comparing it with
|
|
measurements previously obtained in the same setup, with a known to
|
|
be good device taking the role of the DUT. It is therefore necessary
|
|
to establish a reference profile each time the test environment changes,
|
|
e.g., when changing location or when using a different reference device.
|
|
<P>
|
|
The physical arrangement of the devices should have the characteristics
|
|
described in <A href="test.html#atben">the test section</A>. The orientation
|
|
of the devices should be chosen such that the overall signal strength is
|
|
near its maximum, that the spectrum is relatively "flat", and that small
|
|
changes in the orientation only produce small variations in the measured
|
|
signal strength.
|
|
<P>
|
|
To generate the profiles for <B>atben</B> and <B>atusb</B>, simply run
|
|
<PRE>
|
|
make spectrum
|
|
</PRE>
|
|
Then place the devices appropriately and press <B>D</B>
|
|
to use the displayed spectrum as the reference. Multiple spectra
|
|
can be merged into the reference, e.g., if unavoidable environmental
|
|
variations cause
|
|
significant changes. Spectra included in the reference are shown in blue.
|
|
<P>
|
|
After a obtaining the reference spectrum, press <B>Q</B> to exit. The
|
|
Makefile will then record the signal strength limits for an <B>atben</B>
|
|
DUT in the file <SAMP>ben.profile</SAMP> and proceed with the reverse
|
|
measurement, i.e., with <B>atusb</B> acting as the DUT.
|
|
|
|
|
|
<END author="Werner Almesberger" date="<GEN_DATE>">
|
|
</BODY>
|
|
</HTML>
|