Packet Radio

I tried to get the USRP talking to an 800MHz VIA fanless industrial
control computer, with expansion card to get USB 2.0
performance. I found that gnuradio installed and ran OK, but USRP
performance consistently exhibited USB overruns and underruns, to
the point that our evaluation of USRP capabilities was limited by our
compute power.

I think its nice to be fanless, if you can. And maybe, some clever
engineering of USB interrupt service routines could improve i/o
performance. But it is much simpler these days just to outrun the
problem with a faster CPU clock.

If you are trapped by form factor and “no fan” rules, you may be out of
luck. Does your architecture allow for (say, USB) expansion
cards ? If so, you could build one that did block transfers to/from the
USB bus and your slowish CPU.
HTH
Jim Hanlon

Thanks for the advice, Jim. I appreciate it. I think I found a 1.1 GHz
Pentium M (thanks to Matt) that can be cooled fanless. We’re going to
give either that board or a 1 GHz Celeron board from Kontron a try. I
think “outrunning” is the way to go right now.

On Thu, Apr 20, 2006 at 01:38:52PM -0500, Jim Hanlon wrote:

I tried to get the USRP talking to an 800MHz VIA fanless industrial
control computer, with expansion card to get USB 2.0 performance. I
found that gnuradio installed and ran OK, but USRP performance
consistently exhibited USB overruns and underruns, to the point that
our evaluation of USRP capabilities was limited by our compute
power.

I think its nice to be fanless, if you can. And maybe, some clever
engineering of USB interrupt service routines could improve i/o
performance. But it is much simpler these days just to outrun the
problem with a faster CPU clock.

If you are trapped by form factor and “no fan” rules, you may be out
of luck. Does your architecture allow for (say, USB) expansion cards
? If so, you could build one that did block transfers to/from the
USB bus and your slowish CPU.

HTH
Jim Hanlon

As always, there are lot of differences between processors. Some of
the VIA’s are dogs, other’s aren’t so bad. We’ve run the USRP and
gmsk2 code on one particular compact VIA board, and it wasn’t horrible.
We were able to run GMSK at a few 100 kb/sec with it.

The USB expansion card could have been the problem. How do you know
it was lack of CPU?

Eric

you know it was lack of CPU?

To be honest, we did not try a controlled experiment of varying CPU
speed, nor engage in application profiling, or a lot of other
things we might have done. We were in cut-and-try mode. And our trial of
the “fanless industrial control computer” indicated that we
were on the margins of acceptable behavior; not promising for a
potential product. We saw to it that the USB card was not sharing
interrupts with anything demanding (as I recall, we did not have the USB
card isolated on its own IRQ.) And all the other reports of
success from the group involved multi-GHz machines. There was even sage
advice to move to 64 bit CPUs. The prudent call seemed to
move away from the “slow and cool” mode, as attractive as it is for a
lot of good reasons.

That said, CPU clock speed and USB signal timing are two different
things. Probably the card’s interconnection bus protocol
(careful, some single board computers have oddball expansion
connectors), and the IRQ service logic, are more important factors. And
as Eric points out, the answer to these “is the computer fast enough”
questions all depends on the intended application’s sample
rates. So if your app allows it, and you have the time and the hardware,
by all means dig deeper.
Jim Hanlon