technical news / ben-wpan (was Re: New Ben Nanonote Case (Castle))
werner at openmoko.org
Mon Dec 6 23:02:40 EST 2010
Carlos Camargo wrote:
> I prefer read notes about SW and HW development,
More of that would indeed be welcome.
Well, here's a bit from my side: during the last few weeks, I've been
fighting with the antennas. What I was looking for was the correct
size for the antenna. What I found was a little more ...
The antenna size is an issue because the design I'm using as a basis
is for a 1 mm board while I have a 0.8 mm board. Alas, the information
I was able to find on adjusting the antenna size was little more than
"make it slightly longer", without being too specific on the "longer"
Therefore, I made a set of antenna boards, ranging from 80% of the
original size to 125%, and tested their performance. Here's a
picture of them:
My RF test equipment consists mainly of an USRP2 with an XCVR2450
board. One issue I didn't anticipate was that the XCVR2450 can't send
and transmit at the same time (some of the transceiver boards can).
So instead of connecting the test antenna and a reference antenna to
the TX and RX side of the USRP2, as I had planned, I had to use one of
the WPAN boards I've made so far as the sender, with the USRP2 only
receiving. (I wanted to have the USRP2's much larger resolution - 14
bits vs. 5 bits - at the receiver side.)
The AT86RF230 transceiver chip is capable of emitting a constant test
signal if its TST pin is pulled high. For space reasons, the atusd
boards don't have this option, but the atusb boards can be reworked to
have it. So I did that and adapted firmware and user-space tools
Now, gnuradio - the software that talks to the USRP2 - comes with a
great many features, but it isn't so easy to wrap this into something
suitable for automated testing. With a total of 13 antennas 16
channels to test, several successive runs per configuration (to combat
noise), and at least two passes of the whole process (for drift), this
clearly needed automation.
What I did then was write a script that would set up the sender,
record a few thousand samples to a file, remove all sorts of noise and
interferences, and finally extract the received signal strength. The
gory details of this process can be found here:
One problem I encountered, and that was also one of the reasons for
the complexity of the filtering, was that the signal strength my
calculations produced was surprisingly weak. The spectrum looked right
and I could also verify with the gnuradio program that provides an FFT
display that things appeared reasonable (and the signal was stronger).
Well, to make a long story short, it turns out that, when I run a
sufficiently large number of receptions, the USRP2 enters a mode
where it massively attenuates the signal. I haven't tried to find out
what exactly is happening, but power-cycling it before each test run
made the problem go away.
Here are some of the results I got:
The green curve (ant-120B0) is one of the attenuated signals that
resulted from the USRP2 switching to that "bad" mode. The "good"
signals are red and blue (ant-120A0, ant-120B2). Now, there's a
little problem with them: they should show more or less flat lines,
but instead, there's a deep drop right in the middle of the frequency
When I compared with a regular WLAN antenna, I still saw some problems
in the middle, but nothing like this abyss. First, I believed in yet
another artefact of my measurement setup, but I couldn't find
I then went to search for material on PCB antennas I hadn't found
before, hoping that there may be something I had overlooked or
misunderstood in the description of TI's design.
Eventually, I came across a paper describing a similar PCB antenna,
which recommended to place the vias 50 mil apart. The formula I had
used earlier suggested that 5 mm would be sufficient.
Details are in
I reworked the ant-120B board, now calling it ant-120C, and this
antenna produced the purple curve. This is clearly much better than
anything I had before.
The signal is still weak in the middle region, but we can probably
blame the sending antenna for this, which also has the large via
spacing (and only one ground plane, so I couldn't simply rework it and
Another result of all these experiments was that enlarging the antenna
to about 110% of the original design seems to produce the best
results, with 105% and 115% showing similar performance.
The plan is now to make an atusb board that incorporates all those
findings and repeat the tests with it. With a little luck, no major
tuning will be needed after this.
So far, I've drilled all my vias manually, with the inaccuracies and
the broken drill bits that come with this. Since the atusb board now
has quite a lot of vias (37 at last count), it's time to automate this
part of the process as well.
Thus, I'll first extend my collection of CAM tools to extract the
drilling data from Kicad-generated Gerber files and then try which of
drilling-before-etching or etching-before-drilling yields better
More information about the discussion