Re: [Discuss-gnuradio] USRP design is free

2011-01-22 Thread John Gilmore
   If you thought you bought a motherboard
 from Ettus under the terms that you were getting schematics and PCB
 files and blah blah blah, fine.  If you didn't get them, point to the
 line item on the receipt or the clause in the contract and take it up
 with Ettus.

I don't understand why people are complaining that the Ettus Research
board designs aren't free.  They are free.  Matt publicly announced
that he intended to release them under the GPL.  Right up to this
day, the schematics (in PDF) are trivially downloadable from
http://www.ettus.com by clicking Download on the homepage.  Even the
schematics for their brand-new products like the N210.

Now I will admit that in the past, Matt and Ettus Research provided
not just PDF schematics (that you'd have to re-enter manually into a
schematics editor) but also netlists, .sch files, a BOM, etc.  They
never published layout files for directly making your own boards.

I don't know when or why the policy changed, and all that were left
were PDF schematics.  Printed PDF schematics certainly don't qualify
as the source code under the GPL (which defines source code as the
preferred format for making modifications).  There was some discussion
on the list at the time of the National Instruments acquisition, in
which Matt basically said, sorry, was reorganizing the web site and
mislaid 'em.  Does anyone know if they ever came back after that
point?

Being less of a trust-the-web kind of guy than some (after being
burned by various things disappearing on me), I saved a copy of the
original USRP1 schematics from its 2005 release:

  Date: Wed, 12 Jan 2005 11:45:10 -0800
  From: Matt Ettus m...@ettus.com
  To: discuss-gnuradio@gnu.org
  Subject: [Discuss-gnuradio] USRP schematics and layouts

  I have posted the USRP and daughterboard schematics and layouts on
  http://www.ettus.com -- just go to the download page.

  If you are interested in making your own daughterboards, these will serve as a
  good reference.  More docs will be forthcoming.

If you want a copy of those schematics, I've put a copy here:

  http://www.toad.com/gnuradio/usrp-mboard-20050112_tar.gz
  http://www.toad.com/gnuradio/basic-dboard-20050112_tar.gz
  http://www.toad.com/gnuradio/parts-20050112_tar.gz

I'm sure that many tweaks to the boards have been made since then.  If
you want to make serious use of these, you'd better compare them to
both the current published PDF schematics, and to a recent physical
board.  At the time these were published, the USRP was new and it had
very few daughterboards.

By the way, the USRP board took well over a year to develop, and went
through several prototypes.  Large parts of the free GPL'd GNU Radio
software were developed by Matt and Eric simultaneously while building
these prototypes.  Before the USRP, you needed an expensive and
painful PCI oscilloscope board to use GNU Radio -- and then you needed
an external tuner.  That's what we got the original GNU Radio FM-radio
and HDTV receivers working on.  The USRP revolutionized ham SDR by
being half the price of the PCI board, allowing laptops instead of
only desktop computers to be used for the processing, and allowing
many cheap RF daughterboards to be made.

John Gilmore

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Low-cost hardware options

2011-01-15 Thread John Gilmore
 Also upgraded to the next speed-grade of the ADC, to give 40Msps...

You spec'd only a 12-bit ADC.  In my naive view, resolution seems like
it's more important to SDR than samples per second.  Resolution is how
you avoid losing weak signals when you are of necessity sampling a
wide band.  Can we improve on this to get a 14- or 16-bit ADC, perhaps
with a lower sampling rate, at a reasonable price?

As I recall from early USRP days, clock jitter makes a real mess of
doing anything important with an SDR.  If you can't trust your clock,
you don't know when your samples happened, which makes all the
computation a lot fuzzier.  That's why the USRP didn't synthesize its
sampling clock -- nobody back then built a synthesized clock that had
low enough jitter.  Does this ADF4351 qualify?  And what kinds of
interactions are there between that clock and the clock on the ADC?
Shouldn't the downsampler and the digitizer both be using the same
clock, or a clock that's derived from the same clock?

Is there a way to use i2c programmable width filters instead of the 20
MHz lowpass filters, to narrow the bandwidth of the signal being
digitized down to just the range of interest?  This would help
ameliorate the low-res ADC by filtering out nearby
loud-yet-uninteresting signals.

Finally, don't assume that a USB3 chip will easily support downgrading
to a USB2 connection.  It ought to be that way, but might not be.  The
EZ-FX2 chip does support both USB1 and USB2, but in the last ten
years, nobody ever got around to programming the USRP firmware to
actually make it work with USB1.  That became somewhat moot as USB2
became standard in everything.

Similarly, the GigE interface on the USRP2 has never supported
downgrading to 100 Mbit Ethernet, even though that's part of the GigE
spec.  However, now that they've switched to using a UDP-based
protocol rather than an Ethernet-frame-based protocol (finally -
hooray!), you can plug the USRP2 into a switch.  Switches all allow
10, 100, and 1000 Mbit/sec Ethernet to communicate.  If you're going
to put 1GE on this device rather than USB2 or USB3, I suggest
including a switch chip too, so it will transparently talk to any
speed of Ethernet.  GigE is still too uncommon on laptops these days.

John




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: Open-Hardware

2011-01-12 Thread John Gilmore
 If one desired USB instead, then a simple [Cypress] EZ-FX2 USB-2.0
 card with an FMC connector on it, and whatever logic was necessary
 to grab samples from the ADC could be designed and built.

By the way, USB3 is now hitting the mainstream, with PCI boards,
motherboards, disk drives and USB sticks from all the major vendors.
It provides a significant bandwidth boost over USB2 (it's designed for
3Gbits/sec, both ways simultaneously).  This would be very useful to
any newly designed USRP-like device.

I haven't investigated what chips could replace the EZ-FX2 in a USB3
USRP.  Oddly, the Cypress site seems to know nothing about USB3
devices!

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] USRP question for report on gnuradio history

2010-12-01 Thread John Gilmore
Eric Blossom adapted MIT student Vanu Bose's pspectra (parallelized
spectra) software into the first GNU Radio software.  That software
used a PCI digitizer board, I believe from National Instruments, but
it was expensive and not very flexible.  We knew of much better
digitizer chips, but there was no convenient way to integrate them
into a PC-based system.  Matt Ettus as working on a Bluetooth chip or
macrocell at a commercial company at the time.  He noticed the GNU
Radio effort, and got interested in contributing.  He and Eric
designed the original USRP prototypes and modified the GNU Radio
software to be able to talk with it over the USB bus.  They also
designed the daughterboard system and defined the electrical and
physical connections to the daughterboards.  They released the design
under free licenses.  Matt ultimately left his job (after finishing
the Bluetooth design) and started Ettus Research to reliably produce
the USRP, enabling low cost and high performance radio work with GNU
Radio.  It was a lot of work (he was a 1-man operation and it grew
only slowly) and I'm glad he's been well rewarded over the long run
for doing it.

John

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] s/Eric/Tom/g

2010-09-11 Thread John Gilmore
 As some of you know, I've been involved with GNU Radio for a long
 time.  The idea that became GNU Radio started as a conversation over
 dinner in San Francisco with John Gilmore, something like 10 years
 ago.

As one of the guys present at that dinner in early 2001, let me
suggest that Eric has done an incredible job picking up that idea and
running with it for a decade.

We saw that commercial companies were using digital signal processing
to radically simplify and improve their products, but that the free
software world hadn't learned those lessons.  That meant there was
a real opportunity hanging wide-open.  Eric jumped on it.

Part of the deal was that I'd pay his salary for the first year or
two, because I knew you can't really get much public support or
financial support for a free software project until it can actually do
some useful job.  Eric spent the first year learning modern signal
processing, surveying existing hardware and existing free software,
then settled on MIT's spectra/pspectra code base as a good place to
start hacking.  After the first few years, he found enough academic
and commercial support for GNU Radio that I didn't need to pay him
full time -- and he weaned himself fully off my support shortly
afterward.

Matt Ettus was an early volunteer who also saw the real-world promise
in free signal processing software.  We had reasonable software, but
the available high speed A/D and D/A hardware cost thousands of
dollars and was pretty lame.  Matt finished his job designing
Bluetooth circuitry, and then risked everything to design and build
what became the USRP.  With Eric's help, he built up from nothing to a one-man
design/procurement/manufacturing/stocking/shipping/sales/customer-support/programming
shop, which over the years has matured into the thriving and valuable
business it is today.

Jay Lepreau was another early contributor who saw how GNU Radio could
enable active academic research into cognitive radios.  Jay brought us
into his lab at the University of Utah, encouraging researchers at
dozens of other institutions to design their experiments on GNU Radio
and the USRP.  He brought us into the academic funding that
significantly matured GNU Radio's ability to do packet-based
communication.  Jay died in 2008 but his contributions live on in this
community.

Along the way we took a few detours into application areas that tested
and honed GNU Radio's strengths.  While Hollywood was trying to force
the FCC to outlaw TV receivers that could receive free over-the-air
digital TV signals (because they'd forgotten to put DRM into them),
Eric and a small team successfully implemented an HDTV receiver using
old PCI-bus digitizer boards and GNU Radio.  Hollywood's engineers
said it couldn't be done, and we knew they were liars, so we did it.
Indeed, it ran 30x slower than realtime on a dual Athlon motherboard.
But it ran, decoded actual TV signals, and proved to the regulators
and to the standards committee that you'd have to not only outlaw
hardware demodulators, but also software -- which EFF had recently
proven to a Federal appeals court was a violation of the First
Amendment.  The fucking bastards at the FCC passed the regulation anyway
(https://secure.wikimedia.org/wikipedia/en/wiki/Broadcast_Flag), but
the American Library Association and Public Knowledge litigated in
federal court, proved that the FCC had no authority to regulate what
receivers do with their signals after reception, and the rule was
struck down.  This HDTV demodulator code is *still* not running in the
latest version of GNU Radio, but I hope someone will work out the
kinks.  Modern hardware should be able to do it in realtime.

A second big attempted application area was passive radar.  We read
that the US Army's favorite tactic when invading somewhere was to blow
up all the TV and radio stations because it's easy to track airplanes
by watching their signals bounce off the planes.  It works with
cellphone tower signals, too.  Eric spent several years researching
the topic, writing GNU Radio code, and designing antennas and
hardware.  Ultimately none of it worked reliably; it took more dynamic
range (or custom differential hardware) than we had, but we learned a
lot and have made it easier for future generations to do this as the
hardware improves.

Eric, it's been a great decade, and I'm looking forward to the next
big trouble you get into!

John

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Brief tags describing each source file

2010-08-05 Thread John Gilmore
I like your ideas!

 Anyway, I'm still missing the \file \brief doxygen tags
 for the files. These are extremely useful when browsing through
 a mass of unknown source material.
 Otherwise you have to read the source in depth to find out what
 the sourcefile is all about.
 But most GNU projects only give the GPL legal information on top.

When I was maintaining GDB, I found it very handy to put a one-line
comment at the top of each file, like this:

% head -1 c*.[ch]
== call-cmds.h ==
/* ***DEPRECATED***  The gdblib files must not be calling/using things in any

== c-exp.c ==
/* A Bison parser, made by GNU Bison 1.875c.  */

== charset.c ==
/* Character set conversion support for GDB.

== charset.h ==
/* Character set conversion support for GDB.

== c-lang.c ==
/* C language support routines for GDB, the GNU debugger.

== c-lang.h ==
/* C language support definitions for GDB, the GNU debugger.

== cli-out.c ==
/* Output generating routines for GDB CLI.

== cli-out.h ==
/* Output generating routines for GDB CLI.

== coff-pe-read.c ==
/* Read the export table symbols from a portable executable and

== coff-pe-read.h ==
/* Interface to coff-pe-read.c (portable-executable-specific symbol reader).

== coffread.c ==
/* Read coff symbol tables and convert to internal format, for GDB.

== command.h ==
/* Header file for command-reading library command.c.

== complaints.c ==
/* Support for complaint handling during symbol reading in GDB.

== complaints.h ==
/* Definitions for complaint handling during symbol reading in GDB.

== completer.c ==
/* Line completion stuff for GDB, the GNU debugger.

== completer.h ==
/* Header for GDB line completion.

== copying.c ==
/* == Do not modify this file!!  It is created automatically

== corefile.c ==
/* Core dump and executable file functions above target vector, for GDB.

== corelow.c ==
/* Core dump and executable file functions below target vector, for GDB.

== core-regset.c ==
/* Machine independent GDB support for core files on systems using regsets.

== cp-abi.c ==
/* Generic code for supporting multiple C++ ABI's

== cp-abi.h ==
/* Abstraction of various C++ ABI's we support, and the info we need

== cp-name-parser.c ==
/* A Bison parser, made by GNU Bison 1.875c.  */

== cp-namespace.c ==
/* Helper routines for C++ support in GDB.

== cp-support.c ==
/* Helper routines for C++ support in GDB.

== cp-support.h ==
/* Helper routines for C++ support in GDB.

== cp-valprint.c ==
/* Support for printing C++ values for GDB, the GNU debugger.

== cris-tdep.c ==
/* Target dependent code for CRIS, for GDB, the GNU debugger.

== c-typeprint.c ==
/* Support for printing C and C++ types for GDB, the GNU debugger.

== c-valprint.c ==
/* Support for printing C values for GDB, the GNU debugger.

% head -15 c-valprint.c
/* Support for printing C values for GDB, the GNU debugger.

   Copyright (C) 1986, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
   1998, 1999, 2000, 2001, 2003, 2005, 2006, 2007, 2008
   Free Software Foundation, Inc.

   This file is part of GDB.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
[...]

I suspect that if you, Moeller, submitted a patch that added
a similar comment to every GNU Radio source file that you understand
the function of, it would be accepted.  And might even inspire others
who understand different files to add their own insights.  And some
maintainer or volunteer might someday complete the task for all the
files, and revise the coding standards to require it on new files.

 For me, the gnuradio is less a hacking library, but more a solid basis
 for student education, research and experimentation.

The great thing about free software is that one guy can push it
in a direction they choose, like becoming a better educational tool.
All it takes is time, work, and some coordination.

 In rx_timed_samples.cpp
 the URSP-device is hard-wired, as a uhd-derived class.
 uhd::usrp::simple_usrp::sptr sdev
 So, once compiled, it can only support the USRP-type.
 
 I would prefer to leave this dynamic.

I agree, and have been concerned about this aspect of GNU Radio
for years.  Moeller, do you have a design for how it should work?
If the community doesn't hate your design, are you willing to
implement it?

John

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Software mobile phone

2010-07-23 Thread John Gilmore
 Dear All,
 
 Do we think it is possible to create a software mobile phone using the  
 USRP, with the OpenBTS code or something else?
 
 I mean everything would be in software, plus the USRP?

It is absolutely possible.  So far I don't know anyone who has
tried to do it.  The OpenBTS code would give you a big head start.

I also think it would be interesting to port the resulting code into a
mobile phone.  Generally the GSM protocols in a phone are run in a
baseband processor separate from the user interface processor.
Every phone I know of uses secret, proprietary code running in the
baseband processor, even when the user interface is largely free
software.  Once you had working code running in GNU Radio on a Linux
machine, the challenge would be finding a well-documented baseband
chip (in which the manufacturer tells you where to find the radio I/O
gear on the chip, and how it works, etc).  Porting clean GSM code to
run in that chip in realtime would require some adaptation to exploit
unusual on-chip DSP hardware, mastering an embedded debugging
environment, and perhaps shrinking the memory consumption of the GNU
Radio-based code.

I think it's not only doable, but well worth doing.  It should be
worth a couple of PhDs at least.  You would certainly know the GSM
protocols inside and out by the time you were done!

John

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Wimax

2010-05-26 Thread John Gilmore
 evaluating the possibility of start a Wimax fuzzing test bed project with
 Gnu Radio/USRP . . .  the goal is to
 do with the Radio what we do with software in Fuzzing stage of security
 related projects . to conduct a huge series of tests , examine the results
 and see when and how the Radio is not up to the task

Sounds like a great idea.  (For those who don't know, fuzzing
involves sending subtly or wildly wrong values in every field in a
protocol, testing how the receiving device handles the error.  Fuzzing
attacks against Unix command-line utilities found hundreds or
thousands of implementation errors by sending, e.g. lines containing
millions of characters; negative, zero, or huge length values;
non-ASCII character sets, etc, etc, etc.  Some fuzz is randomly
created, finding bugs that humans never conceived of looking for.  But
after the first round of fuzz testing, throwing totally random values
at a protocol seldom exercises all the code paths in less than an
aeon; most of the garbage is rejected at the front door.  Fiendish
software testers with intimate knowledge of the protocol involved can
create constrained fuzzers that smuggle randomly erroneous data deep
into the heart of the receiving system before it explodes.)

If you write this code, products in the market that it addresses will
evolve to become better hardened against both mistakes and attack.
But note that deploying fuzzing systems against targets you don't
control (e.g. other peoples' infrastructures or mobile devices) is
often considered a hostile act and could lead to criminal penalties
(or war, if done by one country to another).

As for WiMax, I don't know who (if anyone) is working on it in GNU Radio.

 - there are SDR based projects preferably based on GNU Radio , to fuzz Radio
 systems : GSM BTS , Wimax Radio , TETRA base stations , etc .

The OpenBTS code implements a GSM base station; this code could easily
be improved to fuzz GSM handsets.  Anecdotal reports from the
developers indicate that it's pretty easy for a buggy base station to
tickle numerous bugs in handsets from every manufacturer.  (Indeed,
real-world base stations appear to need workarounds for known bugs in
common handsets.)  The creation of a GSM handset fuzzing program would
probably improve that situation dramatically.  It would also make
possible a powerful denial of service attack on the cellular networks,
making large numbers of existing cellphones crash in their users'
pockets.

OpenBTS doesn't currently have a GSM *handset* protocol stack (you
can't currently emulate a GSM handset with GNU Radio.)  Adding that
capability would be very useful -- and would probably eventually lead
to the code actually *running* in freed handsets.  (The baseband
processor code in modern cellphones is often the last bastion of
proprietary software in the phone -- because there's no free software
choice that works.)  If someone improved OpenBTS to include a GSM
handset stack, then that stack could be improved to fuzz GSM base
stations, which would lead to better-hardened base stations.

John Gilmore

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] MAC layer development and USRP2

2010-04-06 Thread John Gilmore
 Which part of the Linux issue... sustained throughput or latency?  I wouldn't 
 be surprised to find that latency hasn't
 improved substantially because it's not a priority for server software.  Even 
 VoIP applications are not concerned
 about a 1 msec improvement... whereas that makes or breaks a wireless MAC.

I know that in the early days of Linux development, David Miller spent
a lot of time making sure that the Ethernet layer could reliably send
and receive more than 1 MByte/sec via TCP over 10 megabit Ethernet,
and more than 10 MBytes/sec over TCP on 100 megabit Ethernet.  I watched
his measurements and his kernel evolve to make it happen (learning from and
improving on Van Jacobson's early work making 68000-based Sun-2's move
1MByte/sec over TCP on original Ethernet).

You might say, That's only 90%, surely he can do better, but
that's 90% of the raw bit rate, delivered flow controlled and error-free
at the TCP socket layer (all the overhead, from interframe spacing to
preambles to CRCs to packet headers, goes in the 10%).

As you might expect, pumping the data through required keeping all
parts of both systems working in overlap.  One packet being assembled
to transmit, one received packet being picked apart, and one packet
flying on the medium, at all times.  If these two software jobs can
both run in one packet time, you win (and don't need much if any
buffering, keeping latency very low).  These code paths were heavily
scrutinized and optimized for the common cases.

I haven't kept track of who's measuring Linux kernel GigE thruput
recently.  Here's a pointer to a 2001 study:

  http://www.csm.ornl.gov/~dunigan/netperf/bulk.html

Most people care about TCP speed, but making fast paths for TCP
usually makes even faster paths for the UDP packets that USRP2 will be
using soon.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Possible bug in the vrt branch firmware?

2010-03-09 Thread John Gilmore
If our library is providing a standard call to set the timestamps of
returned samples, shouldn't the standard or default way to do it
result in those timestamps being accurate wallclock UTC realtime,
rather than counting up from zero or from a random number?  If by
default our streams of samples came back with accurate nanosecond
timestamps, that would be a big plus in the long run.  You could later
sync up signals from receivers all around the world; recordings would
contain the time when the signal was received; etc.

Any computer on the Internet can easily sync using NTP to within about
10 ms or so, to set the high order bits.  And anyone with a PPS clock
hooked to their USRP would get real cesium-linked timestamps.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] MA (Memory Acceleration) and SR-DVB in Karlsruhe, @ WSR10

2010-03-09 Thread John Gilmore
Vincenzo, I read your new teaser on Memory Acceleration.  Time/memory
tradeoffs, yes, have done that.  Recursive table aggregation, OK.
Algorithm segmentation, sure.  I am still looking forward to the real
paper, when it gets released.

But I have a structural question.  We've now seen two major projects
that use the USRP, libusrp, and the general software signal processing
paradigm of GNU Radio.  But they both totally abandoned the GNU Radio
code base.  Both SR-DVB and OpenBTS wrote their own code from scratch,
even though major parts of the computation could have been handled by
GNU Radio processing blocks.  Why?

Does something about the structure of GNU Radio doom it to only be
used in experiments and demos?  Is the problem in the complex,
multi-language realtime high level structure, or the low level block
processing structure, or somewhere else?  Perhaps it was a legal
issue, that both projects initially thought they didn't want to
license their code under the GPL?  (OpenBTS has since changed its
mind.)  Will techniques like memory acceleration be usable in signal
processing blocks embedded in the GNU Radio signal processing
framework?  Or does its basic signal flow structure make it an
inappropriate host?  If so, what should we do about this?

Have we made it too hard to use GNU Radio as a subroutine library for
the functions close to the hardware (like tuning and demodulation),
letting them be called from a custom main program that includes custom
code for parsing and managing higher level protocols?

How can we make it simpler to build big projects on GNU Radio and
produce reliable and efficient production-quality programs?

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Transmit legit, become a ham

2010-03-05 Thread John Gilmore
 Nothing forces you to interact with other ham radio operators. You can
 happily work in isolation communicating among your own stations if you
 wish.

Unless you need to do frequency coordination, which you usually do.
Then you have to deal with the oldest, gnarliest hams around, the ones
who 50 years ago got access to mountaintop towers and have been squatting
on them ever since, like trolls under bridges.

 However, ham-land contains a ready pool of technically inclined
 people, most of whom are interested in but not well informed about
 subjects like software defined radio and Free Software.

I got a ham Tech license in the 1970-80's and it was one of the more
disappointing experiences in my life.  What a culture clash!  The ham
fraternity was filled with people who spent all their time
chit-chatting on their handheld radios about their personal lives, but
who knew and cared very little about radio technology or computers.
(Nowadays everyone has cellphones, but in those days they were the
only ones who could communicate mobile.)  They fought uselessly over
stupid little status things like how short or long your callsign was.
I soldered together a 1200 bps packet radio interface board, ran
BBS's, evolved protocol software, and taught classes on digital radio
communication protocols to the interested part of the local Bay Area
ham community (led by Hank Magnuski, KA6M).  The almost universal
attitude among the hams who I met was We got here first, we own these
frequencies, don't you put any funny computer stuff on 'em because
that will just attract more of the public to horn in on our monopoly.
They actively threatened to turn me in to the FCC for any real or
imagined violation of the incredibly picky rules, like letting someone
else log in over my radio modem (carrying third party traffic).
Really friendly folks.

I decided to retire my ham license until a large number of the
existing hams died off (many were middle aged or older).  Perhaps now
the worst jerks have cleared the ranks, and some more welcoming people
are hams; I don't know.  I moved my digital radio experiments to the
unlicensed bands, ignored the hams, and have been much happier ever
since.  I think the hams are still doing 1200 bps FSK, while the
unlicensed folks have evolved to 108,000,000 bps WiFi.  There must be
tens of thousands of hams nationwide.  There are tens of thousands of
WiFi nodes in San Francisco alone -- and no crazy restrictions about
not using encryption, not letting other people use your radio, etc.

John




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] u2_flash_tool : Can not find the command

2010-03-04 Thread John Gilmore
  3. Using sudo ./u2_flash_tool --dev=/dev/mmcblk0p1 -t s/w txrx.bin ¨Cw
 
 I'm a litttle concerned that you have an MMC card and not an SD card,
 based on the device name that gets created when you insert the card
 into your read/writer.  Using SD cards, I've only ever seen Ubuntu
 generate devices of type '/dev/sdX'.

No need to worry about this.  The mmc driver handles both MMC and SD
cards (their protocols are almost identical).  The sd driver
actually stands for SCSI disk; but in recent kernels, SATA and USB
storage media also show up as sd devices.

So if you access your SD card via a USB adapter, it becomes an sd
device.  If you access your SD card via a builtin non-USB SD
interface, it becomes an mmcblk device.

Ah!  The issue is probably that he's accessing mmcblk0p1, that is,
the first partition.  I thought the USRP2 used unpartitioned cards,
i.e. he should write to mmcblk0 (which will overwrite the partition
label and eliminate those p1 devices on subsequent accesses anyway).

John




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Daughterboard

2010-03-04 Thread John Gilmore
 When we use any of the USRP daughterboard to transmit, do we need the
 authorization? For example, FRX900 includes the cell phone bands in US. If
 we use FRX900 to transmit, do we violate the FCC rule? Or, we could legally 
 use any daughterboard on any band that falls in the frequency range of the
 daughterboard?

When the OpenBTS folks transmit in the cellphone bands, such as at
Burning Man last year, they get an STA (Special Temporary
Authorization) from the FCC.  They also get permission from the chief
engineer of one of the incumbent cellular licensees in the area, to
avoid interference with already-licensed traffic.

I don't recommend proceeding without those precautions.

I believe no license is needed to do bench testing with a dummy load
that doesn't radiate beyond the tabletop.  Merely opening the metal
cover of your PC probably causes more electromagnetic radiation than
that.

John



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Re: SanDisk cards flakey?

2010-03-03 Thread John Gilmore
  Or maybe I have to try to use another brand SD card
  rather than Sandisk?
 
 It's possible you need to use another brand card, as these seem to be
 notoriously flaky.

SanDisk SD cards are not notoriously flaky.  They invented the SD Card
format and are, I believe, the largest maker of Flash devices in the
world.  They're the gold standard for SD cards (and their Extreme
line is the gold standard for endurance, surviving in cameras
destroyed by flying debris, dropped from balloons at tens of thousands
of feet, etc).

If the USRP2 is notoriously flaky with SanDisk SD cards, there's
almost certainly something wrong with the USRP2's implementation of
the SD card interface -- not with SanDisk cards.

John




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] GSM Handset Emulation

2009-11-18 Thread John Gilmore
 Now that there is a functional basestation available for GSM, I was
 wondering if anyone is trying to build software for a GSM handset.  This
 way, I could use my laptop (e.g. in a manner similar to skype) to talk with
 folks when I don't have a GSM phone handy.

It wouldn't be very convenient, since you'd have to have a USRP, plus
antennas, dangling off your laptop.

GSM handset software could probably use a lot of the existing low
and medium level GSM basestation code.  Having free implementations of
both sides of the interface would make debugging easier, too.  But
there'd still be a lot of work involved.  You'll need a SIM card and
some way to read it, too.  Sounds like a fun grad-student project to
me.

You could skip a lot of hassle with codecs and audio I/O and such
by first making something that would offer data service (e.g. SMS text
messages, or Internet access) by talking to a GSM basestation.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] reducing the latency in tunnel.py

2009-10-12 Thread John Gilmore
 Another study you could look at is
 ftp://ftp.cs.washington.edu/tr/2009/10/UW-CSE-09-10-02.PDF
 
 It gives another overview of where latency comes from, and shows how you can
 get around some of it.
 We were able to get turnaround times for our application below 300 us by
 making a few simple modifications to the GNU Radio C++ code.

Nice work!  Have these modifications been accepted upstream?  It would
be great if your RFID reader was a standard part of GNU Radio -- I
suspect that a lot more experimenters would start messing with RFID.
And it would be even better if every interactive GNU Radio application
could benefit from the latency improvements you made.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Problem of making a call

2009-09-16 Thread John Gilmore
 I would like to make a call between two mobile phones using OpenBTS, but
 the call exit after the phone begin to ring, message is show below:
 Could anybody help me with this problem?*

I had the same problem at Burning Man with my phone (a BlackBerry).
Some phones seem able to make voice calls, others suffer some kind of
protocol violation that makes them instantly hang up.

We never succeeded in debugging the problem there.

I suggest trying some other phones -- if you can get one that works,
you can compare the protocol traces to one that fails, and see if you
can figure out why.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Max temperature for usrp2

2009-07-13 Thread John Gilmore
 few things come to mind: the SD card (one of the cheaper components, I
 suspect), the ethernet cable, and the resistors.

You could try using a SanDisk Extreme III SD card.  They're engineered
for rough environments; their web site has photos recovered from one
that went up for days in an untethered weather balloon and was then
recovered from the ocean.  Another (CF card in that case) was found in
the remains of a news camera that was too close to a controlled
demolition of a bridge.  Some great shots of flying debris heading
straight for the camera!  (Can't find that URL just now...)

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Sound input using mic / line in problem

2009-07-03 Thread John Gilmore
 gr-audio-oss and gr-audio-jack. The sound module being used is
 snd_hda_intel.

In my experience, there seem to be endless permutations of problems
with snd_hda_intel (HD Audio).  Even in newer Linux releases like
Ubuntu 9.04.  I don't think I have a single machine on which
snd_hda_intel is trouble-free -- including an HP Athlon64 desktop, a
Dell Atom netbook, and an Acer Atom netbook.

(which may or may not have anything to do with your problem.)

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] LW/AM/SW radio very cheap in laptop?

2009-04-02 Thread John Gilmore
There's another chance to get kids into radio...

If a high volume kids' laptop had stereo HD audio ports available
(24-bit 192 kHz converters, 95 db input and 100 db output), how cheap
and small a circuit could you build onto that motherboard to provide
useful LW/AM radio reception?  Could you use the left output channel
to tune, the right output channel to control the gain, and feed
the resulting filtered signal to a pair of input channels?

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] OpenBTS Technical Report

2009-02-17 Thread John Gilmore
 I am looking for the openBTS webpage that had the technical details of the
 2008 burning man experiment on them.  Things like:
 - 7 simultaneous phone calls at 50% CPU
 - imsi filtering when they first started up

http://www.kestrelsp.com/OpenBTS.html
http://www.kestrelsp.com/FieldTest/index.html

An evolved derivative of the OpenBTS code that was tested at Burning
Man last year has been given to the Free Software Foundation, released
under GPLv3.  It is now checked-in to the GNU Radio source control
system, and is publicly available.  (Due to an over-cautious order in
a pending court case, the authors can't point people at public sites
where it can be downloaded anonymously, but anyone else can do so.)  I
haven't seen this code appear in a GNU Radio release candidate yet,
but I hope it will soon appear in one.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Re: Python 2.6 and Python 3.0

2009-02-03 Thread John Gilmore
  Instead, python3 is included in both 8.10 and 9.04. Is the plan to
  port gnuradio to python3?
 
  There's no plan yet.  This needs to be investigated.
 
 Fedora 10 is 2.5.2. Not sure what they are planning. Anyone know of a
 mainstream distro that uses python 2.6?

Python 2.6 missed the release window for F10.  Fedora 11 plans to make
Python 2.6 the default (Fedora is about pushing the boundaries, and
having Python 2.6 as a transitional release on the path to Python 3000
is no exception.)  The F11 Roadmap says they're 85% done so far (and
have no fallback position, i.e. it's gonna happen even if some things
break around the edges):

  https://fedoraproject.org/wiki/Releases/11/FeatureList
  https://fedoraproject.org/wiki/Features/Python_2.6

The F11 alpha is already frozen, it'll come out on Feb 5th.  Feature
freeze is March 3.  Beta code and string freezes are March 10.  Is
there any chance that a GNU Radio release with Python 2.6 support
is going to hit those dates?

Python 3.x is going to be a much bigger deal for GNU Radio -- but 2.6
is designed as a compatible transition release so you can evolve your
code forward, gradually.  Guido van van Rossum's slides on Python
3000 and You are at the first URL below:

  http://www.artima.com/weblogs/viewpost.jsp?thread=227041
  http://www.python.org/doc/2.6/whatsnew/2.6.html
  http://python.org/download/releases/3.0/

John




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Deutsch/German podcast about DSP, GNU Radio, and USRP

2008-12-06 Thread John Gilmore
Harald Welte was recently interviewed on Chaosradio Express (by Tim
Pritlove) about DSP, GNU Radio, and the USRPs -- for two hours!  The
interview is in the German language.

  http://chaosradio.ccc.de/cre087.html

The MP3 file (118MB) can be streamed or downloaded here:

  http://chaosradio.ccc.de/archive/chaosradio_express_087.mp3

John



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Prototype Hardware for gnuradio

2008-11-04 Thread John Gilmore
 nexsdr_source_c() block patterned after usrp_source_c().
 Converted version of usrp_wfm_rcv.py.
 Converted version of usrp_nbfm_rcv.py.

Congratulations on building your own high function SDR hardware!

Just a brief remark on the software.  It's great that you were able
to get it running quickly via replacing usrp with nexsdr in
various places, but that really shouldn't be necessary.
The fm radio high level GUI and signal processing code should
not know or care what low-level radio interface is in use.

 The WBFM application required removal of the subdevice code,
 modification of the tuning code (removed the residual tuning), and
 adjustment of the gain.

The prevalence of the USRP1 led us to be lazy about how GNU Radio
applications are structured.  High-level code like usrp_wfm_rvc.py
have the name and details of the low-level radio interface (usrp,
subdevice names like usrp_dbid.TV_RX_REV_3, etc) wired into them.  Now
that we have USRP1, USRP2, HPSDR, and your new SDRtrack, this is
becoming more than inconvenient.

All the low level drivers implement the same interface class -- the
rest of the code just needs to know which one to call, dynamically.
The high level GNU Radio software should be altered to receive from
standard radio input and transmit to standard radio output, so
that every application doesn't need to be tweaked just to change the
device used.  The standard radio input would be set in a tiny config
file (probably just a Python source file, unless the all-in-C++
faction wants to provide a parser), kept in your $HOME directory.

Then all the filenames wouldn't start with usrp, wouldn't need
to import the usrp class, etc.  They'd import a class like radio,
the radio class would open the $HOME/.gnuradiorc file, and
it would import the USRP, USRP2, or whatever other module the
user had selected (manually, or in a small config GUI).

This is how audio works, it's how video works, it's how disk drives
are interfaced.  You don't run sata_mount for your 1.5TB disk drive,
pata_mount for your old 80 GB drive, and usb_mount for your flash
keychain; you just call mount and it figures it out.  Modularity is
your friend.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Using gnu-radio for ARM NEON

2008-09-30 Thread John Gilmore
 Do you mind adding NEON to this list?  NEON is a SIMD unit on ARM
 Cortex-A8 processors. Information on NEON instructions is at
 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204h/Bcfjicf
 j.html.
 Sorry it si the superseded link, I'm too lazy to find the current one
 :)

This assembler language manual gives pretty good details (except
actual instruction encodings):

  
http://infocenter.arm.com/help/topic/com.arm.doc.dui0204h/DUI0204H_rvct_assembler_guide.pdf

I also tried looking at NEON for the ARM-9, but got:

  http://infocenter.arm.com/help/topic/com.arm.doc.ddi0409a/index.html

  Cortex-A9 NEON Media Processing Engine Technical Reference Manual
   Revision: r0p0

   This is a placeholder for a restricted document that is not
   available from this site. Please contact ARM for more information.

John



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Using USRP/GNURADIO Commercially

2008-07-21 Thread John Gilmore
  You can charge any price you
 like, and you're only obligated to pass on the code to those you sold
 or gave the binaries to.

Well, no.  Once you ship a binary to even a single person (outside
your company), that person is free under the GPL license to make and
share as many copies of the binary as they like.  Each eventual
recipient has the right to come back to you to get the source code.
Each binary must come with an offer that says how to get the matching
source.  Your recipients are free to reproduce that offer for their
recipients.

So, you are obligated to provide source code that matches each binary
version that you ship, to *anyone* who has the binary (not just your
own customers), for three years or the support lifetime of the binary
product, whichever is longer, and for a low cost.  See paragraph 6(b)
of http://www.gnu.org/licenses/gpl.html .

There's a FAQ on the GNU Public License at that same web page.

  But answer me this: Why did we (the gnuradio experts)
  select a license that does not provide a clear answer to Matt's question?

I'm one of the originators of the GNU Radio project.  We picked the GPL
because it protects the freedom of the code (and the code's users), and
encourages a community to form around the code.

By then I'd already started and sold off one company that made tons of
money by selling and supporting GPL-licensed and other free software.
I really didn't see any problem with making commercial gear that used
GNU Radio under the GPL.  There are tons of network routers and PDAs
and such that ship with GNU/Linux inside -- much of which is also
GPL-licensed.  Those companies seem to be able to read the license,
figure it out, and make money.

You can make money with free software by selling your expertise; by
selling convenience; by selling support; by selling quality assurance;
by selling documentation; by selling hardware that works with free
software (like Ettus Research does); and in other ways.  You just
can't make money by preventing people from seeing your code, freely
sharing your code, and improving it if they want to.

When we started GNU Radio, the only working software-defined radio
code was proprietary.  The opportunity was there to build a
community-maintained SDR code base, that everyone would be free to
experiment with, share, improve, or commercialize.  We did it (thanks,
everybody)!  Eric and I could've built another proprietary SDR
package, but then you wouldn't all be here having this conversation.

John

(PS:  Most of the proprietary software I've seen has even more
draconian and unreadable licenses than the free software.)


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] UK shops track customers via GNU Radio monitoring their mobile phones!

2008-05-20 Thread John Gilmore
Danny O'Brien of EFF pointed out this profile of Toby Oliver of Path
Intelligence, which uses GNU Radio to build phone-monitoring 
networks for shops:

  http://www.cnet.com/8301-13505_1-9734052-16.html

  Toby Oliver, CEO of Path Intelligence, is based in Portsmouth,
  England, where he and his wife, Sharon, have built a hugely
  interesting (and innovative) product on top of the GNU Radio open
  source project, key parts of which they've helped to fund.

The social impact is covered here:

  http://technology.timesonline.co.uk/tol/news/tech_and_web/article3945496.ece

  (text below.)

and here:

  
http://p10.hostingprod.com/@spyblog.org.uk/blog/2008/05/path-intelligence-phorm-for-shopping-centres.html

  (See the comments for pointers to patents and such.)

  
http://www.techcrunch.com/2007/12/14/path-intelligence-monitors-foot-traffic-in-retail-stores-by-pinging-peoples-phones/

Of course, though they say this data isn't correlated with any other
info, all it would take is recording what image is taken by the
security cameras when an identifiable mobile phone walks by.  And
with what charge card was used at the cash register when that same
phone is standing in front of it.  And the license plate number (and
the RFID's in the tires) of the car that's going past when this mobile
phone passes your reader.  Then you have the user's picture, name,
credit card info, car registration, and maybe tyre RFIDs; all without
the help of the mobile operator.

Removing the battery from your mobile phone is going to get a lot more
popular, I expect.  But at least we'll have free software tools for 
monitoring what info it's leaking about you when the battery is in.
(How much of the Path Intelligence modules are in the main GR repository?) 

John

Shops track customers via mobile phone
May 16, 2008

Customers in shopping centres are having their every move tracked
by a new type of surveillance that listens in on the whisperings of
their mobile phones.

The technology can tell when people enter a shopping centre, what
stores they visit, how long they remain there, and what route they
take as they walked around.

The device cannot access personal details about a person?s identity
or contacts, but privacy campaigners expressed concern about
potential intrusion should the data fall into the wrong hands.

The surveillance mechanism works by monitoring the signals produced
by mobile handsets and then locating the phone by triangulation ?
measuring the phone?s distance from three receivers.

It has already been installed in two shopping centres, including
Gunwharf Quays in Portsmouth, and three more centres will begin using
it next month, Times Online has learnt.

The company that makes the dishes, which measure 30cm (12 inches)
square and are placed on walls around the centre, said that they
were useful to centres that wanted to learn more about the way their
customers used the store.

A shopping mall could, for example, find out that 10,000 people were
still in the store at 6pm, helping to make a case for longer opening
hours, or that a majority of customers who visited Gap also went to
Next, which could useful for marketing purposes.

In the case of Gunwharf Quays, managers were surprised to discover
that an unusually high percentage of visitors were German - the
receivers can tell in which country each phone is registered - which
led to the management translating the instructions in the car park.

The Information Commissioner's Office (ICO) expressed cautious
approval of the technology, which does not identify the owner of the
phone but rather the handset's IMEI code - a unique number given to
every device so that the network can recognise it.

But an ICO spokesman said, we would be very worried if this
technology was used in connection with other systems that contain
personal information, if the intention was to provide more detailed
profiles about identifiable individuals and their shopping habits.?

Only the phone network can match a handset's IMEI number to the
personal details of a customer.

Path Intelligence, the Portsmouth-based company which developed
the technology, said its equipment was just a tool for market
research. There's absolutely no way we can link the information we
gather back to the individual,? a spokeswoman said. ?There's nothing
personal in the data.

Liberty, the campaign group, said that although the data do not
meet the legal definition of ?personal information?, it had the
potential to identify particular individuals' shopping habits by
referencing information held by the phone networks.

The receivers together cost about £20,000 to rent per month. About 20
the units, which are unobtrusive, cream-coloured boxes about the size
of a satellite dish, would be needed to cover the Bluewater shopping
centre.

Bluewater, in Kent, said it had no plans to deploy the equipment. A
spokesman for Gunwharf Quays was not available for comment.

Owners of large buildings currently have to rely on 

Re: [Discuss-gnuradio] AMSAT programming help needed

2008-02-16 Thread John Gilmore
 AMSAT (the Radio Amateur Satellite Corporation) is working with its 
 partners on a Cubesat (4 inch cube satellite) to be launched in the next 
 few months.  We need experienced help programming an MPS-430 (TI 
 Microcontroller).

Is that the same as the MSP430 (see Wikipedia)?  I see references to both.

 If you are a U.S. citizen (sorry, ITAR and out of my hands) and are 
 interested in helping, please email me directly.

Can you describe (or point to a URL for) the specific need for ITAR
restrictions on this software?  I looked, but found nothing on the
AMSAT site.

ITAR is never out of our hands.  We beat these bastards on encryption,
and we can beat them on satellites too.  All it takes is a global,
scientifically published, shared effort.

There are Cubesat's being built all over the world.  They don't follow
US ITAR rules.  The next rocket they'll launch on is in India.  Clue?

If you live outside the US, and you program this, AMSAT is free to
use it.  AMSAT is free to import code.

This is a large part of how we beat the bastards.  We just stopped
writing crypto code in the US, or buying crypto code from US
companies.  We started contracting with foreigners.  ITAR prohibited
us from teaching them to write it, but they could learn to write it
themselves, and we could pay them to import the results.  (And they
were free to ship the code to any other country in the world -- unlike
us.)  Smart people among the billions of non-US citizens figured out
for themselves that they could learn to write it (whether or not we
paid them).  The center of crypto software development moved outside
the US.  Which is exactly what the ITAR rules were trying to prevent.
E.g. Europeans designed a better replacement for DES, which became AES
in a fair, global competition.  Eventually even the thick heads among
the spooks got the message, and the crypto export rules changed.

The sooner we have MPS-430 Cubesat software that's built in a free
country, available to any space experimenter worldwide, published
under a free license, the sooner we'll all have access to space.

John Gilmore



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] OLPC - next generation with SDR?

2007-12-24 Thread John Gilmore
As preface, I'm not a radio engineer.  I'm a software guy with
pretentions to understanding digital hardware.  I have a few signal
processing books on a dusty shelf.  You lose me as soon as you start
talking Q signals.

The Odyssey board operates at 10MHz IF; so wouldn't it need an external
tuner?

 I am in agreement with Frank that we can currently do it for a few tens
 of dollars ~$50 in small quantities and that include parts and boards.
 We can even put together a prototype which will allow HF shortwave
 reception from low bands through about 21 Mhz covering these bands:
 [15m thru 120m]

What kind of antenna would this require?  Something external to the
laptop?  Or something that could be built into the plastic case?

 The dsPIC33 has more than enough horsepower to provide good
 (synchronous) detected AM and even some modest AGC.

We won't need a processor; the laptop will come with a processor much
faster than 40 MIPS.  (The current XO CPU is a Geode LX 433 MHz x86,
with MMX, 3DNow, and some SSE instructions.)

 We need a DDS and a QSD (we do not need the QSE for the receive only
 version) if we are going to tune the HF shortwave broadcast bands and
 get reasonable performance at low cost.

I think that single chips are available that do broadcast-band AM and
FM decoding for cheap; has nobody done this for the television and
shortwave bands?  Or is the problem that nobody's done this digitally?

If we can provide something that gives real benefit for the target
kids, we shouldn't be dogmatic about analog versus digital.
Alternatively, if OLPC provided a million-unit order for a digital
tuner chip that would target all these bands, others could then buy the
cheap chip for a variety of projects.

 This would provide a clear example of how it could be done.  It does not
 meet the price point, but it shows the capabilities and then we can
 negotiate.

I'm glad you-all are pointing out low volume prototypes.  I hope we'll
get someone interested who has designed high volume digital radio
electronics.  High volume ~= million-unit.  (Do any people like this
exist?  Perhaps Matt's bluetooth design has shipped in that quantity;
WiFi does too.)  There's already an entire high speed digital radio
transceiver in the existing XO: it's the Marvell Libertas WiFi
88W8388 controller chip and 88W8015 radio chip.  It's reprogrammable,
though the ARM code that runs in it isn't open source yet (the high
level code can be open sourced, but it runs on a proprietary RTOS).

I think the best strategy for a $50 laptop's radio would be to have
either an internal antenna or a single connector; a small number of
cheap analog components; perhaps *one* analog/digital chip (multi
channel DAC/ADC radio chip); and stuff *everything* else into a
corner of the digital system-on-chip that implements the rest of the
laptop.  It's hard to prototype such a thing, though perhaps using an
FPGA that come with a fast embedded MIPS or ARM CPU would be the
closest.

The current XO uses two custom chips (the DCON display controller, and
the CAFE camera/flash/SD controller), some very custom mesh firmware
for the ARM core inside the WiFi chip, and some very custom firmware
for the EC embedded controller battery charger chip.  A $50 laptop
version would probably mash all these chips together with the CPU,
GPU, and its southbridge support chip, leaving only one
system-on-chip, plus flash, DRAM, a few external analog chips, and a
pile of analog electronics for power supply and such.

John



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] OLPC - next generation with SDR?

2007-12-21 Thread John Gilmore
 The thing does appear to have sufficient horsepower to do some DSP.
 I would like to think we can make several things available to this
 project.  For example, I think a tunable HF receiver for shortwave AM
 broadcast is easiy achievable for very modest cost. Further out, I
 would to see the use of this machine and OFDM skywave to provide WAN
 capability to large areas of the world without such capability.

If we were given a square inch of circuit board space, twenty cents
for components and wires and connectors, four pins, 0.2 watts of power
when operating, and half a million gates colocated with the CPU and
memory bus, what radio capabilities could we offer to the next
generation OLPC project?

That's the fun challenge.  Here's some background.

The reason software radio hardware has always cost so much is that it
ships in low volumes.  The oscilloscope boards we started with were
$1400.  The USRP is many hundreds, and the USRP-2 will be more.  But
if the USRP's RF I/O capability was integrated onto a high volume
motherboard, it would cost a lot less -- maybe $50 or $25.  If it was
integrated into a chipset, even cheaper.  Similar but specialized
wireless capabilities are in USB wifi dongles that *retail* for $40.

Today's children's XO laptop is just the first in a series of high
volume, low cost laptops -- from a variety of vendors.  We can assume
that with each generation they will get faster, lower power, and
cheaper -- as we learn more about how to design and build in that
problem space.  (Until Dec 31, you can buy one for $400 -- and a
second one will go free to a kid in a developing country.  After that,
they won't be sold at retail.  See http://laptopgiving.org.)

For the next generation effort, if they have the design time, they are
likely to build a big custom chip that integrates a whole CPU, and a
pile of system and peripheral circuitry.  Their stretch goal is a
$50/ea laptop for kids, one that's much better than the current $200
one.

We know they will want 2-channel sound in and out.  They have
already jiggered their current hardware so that the audio biases and
filters can be switched out of the circuit, so that ordinary low
voltage sources and sensors can be plugged into the audio port and
used to sample real-world sensors.  They have full control of the
drivers, since they're basing the whole thing on Linux, and they have
real kernel hackers and real GUI hackers and such.  Their system
already uses wireless WiFi, so it has antennas, and they've done a
detailed radio analysis of the package and design.

The difference between this design effort and the other things the GNU
Radio crew has done is that the result has to cost only incremental
pennies, cost zero power when not running, and run on batteries when
running.  On the other hand, gates and connectors and small antennas
come almost free (they're making hard-tooled plastic molds anyway;
adding a connector or other wires is simple).  Assuming their basic
design provided roughly their current sound and analog input
capabilities, what could we recommend that they do in order to make
the platform much more capable for SDR?

My first thought is to just increase the sample rate and effective
bits per sample of the audio processing hardware, and increase the
number of channels so that ordinary stereo audio can happen
simultaneously with analog I/O.  I think it's a crime that cheap
analog I/O chips top out at 200 kilosamples per second.

Even making it able to receive AM-band and below, by plugging in a
wire of appropriate length as antenna, would provide years of
experimentation in the schools.  Should the analog circuitry be
wired up to the existing cat ear antennas on the laptop (which
are currently only used by the WiFi chip)?

The analog circuitry would need to be switchable for use in three
domains:  audio (speaker/mic), DC analog (sensors), and radio analog (SDR).

Could we make it usefully transmit?  Many of Matt's transceiver
daughterboard designs are very similar -- with only a few components
changed to set the frequency range.  If made in high volumes on an
existing board, what would the cost come down to?  Could we shrink a
single band transceiver into the above constraint?  Could we design a
cheap multi-band transceiver that lets these components be switched
under software control?  Can the CPU and the free signal processing
gates automatically measure and compensate for cheap
(signal-distorting) analog circuitry?

What kind of signal processing math hardware should we add to the
custom chip, assuming that the CPU itself would be low power/low
heat/low performance for its time?  Should this be a CPU math
accelerator, or should it be wired to the digitization hardware?
Should it do one thing well (if so, what?) or be more general like
traditional x86/PPC/etc DSP instruction sets?

Should we suggest making some of our gates of the custom chip into a
field programmable gate array, reconfigurable in software?  If so,
what would we 

Re: [Discuss-gnuradio] Soft-DVB working flawlessly

2007-11-20 Thread John Gilmore
 Soft-DVB working flawlessly ...
 thanks again for precious help,

Thank *you* for building a great tool on top of all the signal
processing work that's been poured into GNU Radio over the years.
We hoped someone like you would do things like this!

I'll love to see it GUI'd and packaged so that anybody can make a
local DVB transmission station by just plugging the hardware together,
installing the right software package, and feeding it realtime video
streams.  Has anyone glued GRC into MythTV?

I can already think of one use that others can make of your
transmitter.  EFF and I are interested in measuring the DRM responses
of various digital television consumer products.  DRM is the
unnecessary restrictions that are built in to control what consumers
can do.  (Like no fast forwarding; won't play in some countries; or
only works with one manufacturer's products.)  DVB is really thick
with complicated, ugly restrictions like can only record one copy --
only on Tuesdays and only within 1000 meters or with members of your
immediate family except for kids of divorced parents.  I bet there is
a lot of variation in the products that try to enforce it -- and maybe
some don't even try.

Manufacturers tend to avoid documenting these 'features', for some
reason.  We consumers can benefit by collectively reverse-engineering
what they are up to.  In particular, nobody should be buying DRM-laced
products without knowing it, when similar non-DRM products would serve
the consumer as well or better.  But how can we tell them apart?  A
broadcast-quality software transmitter for DVB (and for ATSC and other
dtv waveforms) would let us do these tests.  (We'll also need a simple
editor for MPEG transport streams, for inserting and removing
Broadcast Flags and other data items.)

John Gilmore



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] PS3 versus freedom

2007-10-08 Thread John Gilmore
 If you want to run on the PS3, you're most likely going to want the
 IBM SDK 3.0.  The SDK really, really wants FC 7 on the PS3.

Some people will do anything for crunchons -- or promised future crunchons.
(A crunchon is a unit of number-crunching.)

I was wondering why this SDK wasn't already part of the SuSe or FC7
releases.  Ten minutes of research later, the answer is:  it's proprietary.

Why would anyone on this mailing list want to install proprietary
compilers?  The IBM license agreement is extortionate.  Besides the
usual rape and pillage, it says that:

  
http://www14.software.ibm.com/cgi-bin/weblap/lap.pl?la_formnum=li_formnum=L-MCHN-6MVMPVtitle=XL%20C/C%2B%2B%20Alpha%20Edition%20for%20Cell%20Processor

  *  You are not authorized to use the Program for productive purposes
  *  THE PROGRAM MAY CONTAIN A DISABLING DEVICE THAT WILL PREVENT IT FROM BEING 
USED AFTER THE EVALUATION PERIOD ENDS. YOU MAY NOT TAMPER WITH THIS DISABLING 
DEVICE OR THE PROGRAM. YOU SHOULD TAKE PRECAUTIONS TO AVOID ANY LOSS OF DATA 
THAT MIGHT RESULT WHEN THE PROGRAM CAN NO LONGER BE USED. 
  *  You assign to IBM all right, title, and interest (including ownership of 
copyright) in any data, suggestions, or written materials that 1) are related 
to the Program and 2) You provide to IBM.
  *  Your right to run the program ends after 90 days.

[I hope Eric hasn't provided IBM a copy of the GNU Radio code that compiles
under this compiler: IBM will end up owning the copyright on GNU Radio.
This may occur even if Eric just posts the code in a public place where
IBM can download it.]

If the above wasn't enough, it's also against GNU project policy to
use the mailing list or project documentation to advertise or advocate
for proprietary software.

If the GNU compilers for the CELL aren't good enough for us, I suggest
that we improve them.  If we just can't exploit the CELL processor without
proprietary software and patented algorithms, then I suggest we go
back to focusing on hosting GNU Radio on hardware that comes with freedom.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Deeper story on FCC versus open source SDR

2007-07-23 Thread John Gilmore
http://news.com.com/Feds+snub+open+source+for+smart+radios/2100-1041_3-6195102.html

This story had more details and investigation than the others I'd seen.
FYI.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Nerd Salon 7/10 in SF, featuring Matt Ettus

2007-07-04 Thread John Gilmore
Date: Tue, 03 Jul 2007 14:19:53 -0700
From: Annalee Newitz [EMAIL PROTECTED]
Subject: Reminder: Nerd Salon 7/10

Nerd Salon returns in just one week! Bring your friends and robots and
alien lovers!

Here are the details:

WHEN: Tuesday, July 10, 2007, 6 PM - 9:30 PM

WHERE: 111 Minna Gallery, San Francisco (111 Minna St.)

You've heard about it . . .

You've yearned for it . . .

At last, on July 10, it's another crazy night of Nerd Salon! Come out
and socialize with your fellow geeks in a mildly intoxicated manner!
This episode of Nerd Salon brings you:

* The circuit board stylings of Matt Ettus (www.ettus.com), who will be
doing a live demo of GNU Radio, the open source software-defined radio
project (www.gnu.org/software/gnuradio)

* A mind-bending puzzle for you to solve for a very special prize.

This irregular evening of mayhem is organized by your nerd captains
Jennifer Granick (www.granick.com) and Annalee Newitz
(www.annaleenewitz.com). Come out and have a drink with people who won't
make fun of you for hacking, hating on DRM, copyfighting, discursing on
public policy, building nuclear reactors in your garage, reading science
fiction, working in a bookstore, arguing about open source software,
collecting Buffy dolls, dancing with robots, blogging and/or podcasting,
lusting after the iPhone, or getting excited about the new Hulk comic
book.

URL: http://upcoming.yahoo.com/event/209727

-- 

Annalee Newitz

writer: science, technology, pop culture, sex
http://www.techsploitation.com/
*
president: computer professionals for social responsibility
http://www.cpsr.org
*
editor: other
http://www.othermag.org


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] USRP and USB full speed (1.1) transmit

2006-12-07 Thread John Gilmore
 Well, it looks like data is coming out, but it looks like I get 64
 bytes out, then there is a hiccup about 5 microseconds long. I am
 getting suspicious the OSK doesn't get the data on the USB bus fast
 enough. 

What is the source of the data you're transferring over the bus?  If
it is coming faster than USB1.1 can handle, of course you'll see
hiccups where data is dropped.  (The USB2 firmware/fpga sets a flag
that the software can read when this happens -- that's what produces
those U dribbles on the terminal sometimes.)

I think there's a way to select a counter in the FPGA that just
transfers an incrementing number in each outgoing USB packet.
(Perhaps it's a different FPGA load instead of a settable
flag in the main version.)  This was used to debug similar issues 
between the FPGA and the FX2, and between the FX2 and the software
library.

Alternatively, you can decimate the source down to a very low data
rate, so it won't overflow.  Get the rate as low as you possibly can,
for debugging.  (Or, if there's a demodulator in the FPGA, you could
e.g. have it tune an FM radio station, demodulate it on-chip, and
transfer only the audio over the USB bus, which would be well within
its available bandwidth.  But I don't think anybody has coded that
FPGA transform... yet.)

John




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Avoiding plug-n-fry design

2006-11-11 Thread John Gilmore
It's beginning to look like future daughterboards should include an
attenuator or fuse or something.  This would avoid the idiotic result
that you plug 'transmit' into 'receive', as any sane computer-oriented
person would do, and (invisibly) fry your board.

Having the same connector on the tx and rx ports makes it that much
more likely to happen.  (I'm not arguing that we should enter
connector hell by making them different!)

Prominently selling a loopback cable that includes an appropriate
attenuator would also be a positive step.  Perhaps each amplified
transmiter should come with one, in a nice ethernet-orange color.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] USB speed data point

2006-10-27 Thread John Gilmore
 I think the limitation is on the 8051 end.  One 512-byte packet takes
 8.53 microseconds to cross the USB channel, and the 35.7 MByte/sec
 sustained rate implies the 8051 sets up the next packet in only 5.81
 microseconds.  I don't think there is any pipelining at this level.

You're probably right.  It's known that the SSRP (which had no FPGA,
just a USB interface and an ADC) got higher thruput, because it
programmed the USB interface registers to automatically stream data
through without the intervention of the 8051.  (It knew all the
traffic was inbound, so didn't need the option to switch directions on
the bus.)

We could get a similar speedup in the USRP (or LLRF) by having the
8051 jump to different inner loops when doing input-only, output-only,
or both input and output over the USB bus.  Think of it as hoisting
one of the invariant decisions out of the inner loop.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Announcing GNU Radio Release 3.0

2006-10-10 Thread John Gilmore
Once the signed binaries are on the GNU mirrors, should an
announcement email go out to the info-gnu@gnu.org mailing list?
Significant releases, like an X.0 release, should probably be
announced there.

Such a message should have a lot more about what GNU radio is capable
of, what it does well, and a lot less detail than the version that
went to our own hackers.  Plus describe the big changes since the 2.0
release...some time ago.  It'll be read mostly by people who don't use
GNU Radio yet, but who might want to know when to use it, sooner or later.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] to prevent mental damages, avoid dB's.

2006-09-28 Thread John Gilmore
 transmit power converted to dBm (1 dBm == 1 mW) minus the attenuator
 loss = output power in dBm.
 
 E.g.
   100 mW - 20dBm
   20dBm - 15 db att = 5 dBm
   5 dBm - 3.2 mW

Actually, I think 0 dBm = 1 mW.

dB's are a royal pain in the butt.  They eluded me for years because
they required a lot of rote memorization and made no sense.  For those
of us not pickled in radio-speak from an early age, but who know basic
algebra, there's a simple way to deal.  Ignore deciBels.  Use Bels.

Bels are easy and obvious.  They're a straight logarithmic scale in Base 10.
100 mW is 2 Bm.  10 mW is 1 Bm.  1 mW is 0 Bm.  0.1 mW is -1 Bm.

DeciBels are just tenths of a bel.  So if you shift the decimal point
one place, you're suddenly calculating in an easy to use notation.
Here's the above calculation in Bels:

   100 mW - 2 Bm
   2 Bm - 1.5 B att = 0.5 Bm
   0.5 Bm - 10 to the 0.5 power - the square root of 10 - about 3.2 mW

See, now you not only know the answer, but you know WHY 5dBm is 3.2 mW.

Why the EE universe settled on doing everything in tenths of a
logarithmic unit is way beyond me.  It's as if every carpenter figured
every length in deciInches or decimeters, even if inches, kilometers
or meters would be the more straightforward unit.  How often do you
calculate in decivolts, deciwatts, or decimeters per second per
second?

The rumor is that decibels were invented because somebody at Bell Labs
couldn't cope with decimal points or negative numbers, in the days when
equipment wasn't capable of dealing with large orders of magnitude
(e.g. the painful-to-someone 0.3 Bel became the friendly-to-someone 3
deciBel).  Of course, now that people regularly see 5 to 10 orders of
magnitude (5 to 10 Bels) (50 to 100 deciBels) (factors of 1 to 10
billion) in ratios, such as in radar, digital signal processing, or
fiber optics, the deci has just become a hindrance.

You can do your part to clear up this idiocy by using Bels in most
places where the lemmings use deciBels.  You may actually get them to
think (briefly).

John

PS: Don't even get me started about why dBm's aren't referenced to
watts rather than milliwatts!  Since a milli is 1/1000th and that's
just 3 orders of magnitude, referencing to ordinary watts would merely
involve subtracting 3 or 30 from the number, e.g. 40 dBm = 4 Bm = 1 BW
= 10 dBW.  It reminds me of how we're still calculating speeds in
5280-foot units per 3600-second units rather than in some sane system
using basic decimal units.  Actually using BW notation in your
thinking and writing may overload lemming brains, though.


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] USB2, 32 MByte/s or 480MBit/s?

2006-06-16 Thread John Gilmore
David Carr said:
 As a point of reference the SSRP was used in a radio astronomy application
 where maximum bandwidth was important and we were able to squeeze a little
 more than 40MB/s out of the bus.
 
 I think this says that there is a little more to be had but that the USRP
 is doing a pretty good job at 32MB/s...

The SSRP and the USRP both use the same interface chip, but they run it
in different modes.  The SSRP doesn't support transmission, so it uses
a fully-automated hardware mode.  The USRP needs data to go both ways,
so there are some firmware delays in the 8-bit processor that runs in
the interface chip.  

If someone cared, it is probably possible to reprogram the firmware so
that when no data is being transmitted, the automatic hardware mode is
used.  The firmware would have to know, or be told, when to switch in
and out of this mode.  But this would gain 25% more bandwidth!

(A similar optimization could be done for transmit-only applications.
It's mixed transmitting and receiving that takes more overhead.  Also,
few people have looked at that firmware code; it may be possible to
optimize it further in other ways.)

Making this change might also require changing the Verilog code in the
FPGA, if the signals that it uses to communicate with the USB chip
today aren't compatible with the fully automated hardware mode.  If
you're lucky, Matt and Eric already thought of that :-) while
debugging the USB interface, which was a hairy process due to
undocumented bugs in the USB chip.

John

PS:  Hacking in similar places would also allow the USRP to run on 
USB 1.1 at 12 megabits/sec, for low sample rate applications.


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] SDR Design Competition

2006-05-18 Thread John Gilmore
 There are monetary prizes...

Yeah -- unspecified ones!

It looks like an incredible amount of work, under really picky and
idiotic rules, solving problems so challenging that there *isn't* any
commercial gear that does it, at any price.  For an unknown and
probably tiny reward.  And to hand it all over to somebody else to
own!!!

(They won't accept work that has been released under a public license,
such as the GPL or even the BSD license.  If you spend two years
writing this stuff, they will *own* it at the end, and you won't even
be able to keep working with or evolving your own software or
hardware.  And you won't be paid for any of this.)

They've issued a call for suckers.  Any takers?

[Now let's go back to improving the world with GNU Radio...]

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] The last LORAN C receiver: SDR

2006-05-12 Thread John Gilmore
http://phk.freebsd.dk/loran-c/

Seems like a natural hack for the USRP.  He (Poul-Henning Kamp) had to
use a PCI card at the time (2003).

He claims it's un-jammable and similar in resolution to GPS; see the
LORAN-C politics section.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Modem and/or ADSL Daughter card

2006-05-04 Thread John Gilmore
 It shouldn't be too difficult to design a daughter board for the USRP to
 sample phone line voltage (with an appropriate line interface circuit of
 course).  After that it should be rather easy in GNURadio to generate DTMF
 tones for dialing, and modem tones for data communication.

DSL is a good example -- it would be great for students, technicians,
and researchers to be able to study the performance of DSL modulation
techniques, and try making improvements.

You can probably add a telco block to the low frequency tx and rx
boards without trouble.

Don't forget to support voice communication as well as DSL and modem!

(Hmm, anyone want to reimplement the Telebit modem for fun?  It did
half-duplex communication on hundreds of ~2-bit-per-second carriers,
avoiding the frequencies that didn't get through cleanly on your
particular phone network, and flipping back and forth from TX to RX
many times a second.  There's probably an acronym for it now.)

Hacking up an interface and code for 10 megabit Ethernet on coaxial
cables would be fun too.  That could be done on standard TX and RX
boards, probably by just wiring them to the transceiver cable of an
Ethernet transceiver.  Ethernet modulation is pretty straightforward.

For true incestuous pleasure, we could code up the signal modulation
and electrical interface for USB 1.1.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] TX/RX simultaneously using one USRP board

2006-04-14 Thread John Gilmore
 Just curious, why did you first fm_demod and then fm_mod.
 You could also do:
 src = usrp.source_c (0, rx_decim)
 dst = usrp.sink_c (0, tx_interp)
 if_filter=gr_fir_filter_ccf(1, if_filter_coeffs)
 self.connect (src, if_filter, dst)

By adding a few blocks to the FPGA (like the FIR filter and a feedback
buffer), the implementation could avoid pushing these samples across
the USB entirely, without any changes to the Python code!

[This will become much more useful in later USRPs that have bigger
FPGAs.  You could pull out a few received signals, e.g. two or three
FM transmissions out of a wide band, translate each to a different
frequency, mix the results together and feed it out the transmit path,
all on the USRP.  While simultaneously having some control channels
that run across the USB to be processed by host system software.
Sounds like a great design for a cellular radio base station.]

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Capturing data to file

2006-03-22 Thread John Gilmore
 It seems there is something wrong with the way that mux is declared in the
 capture_to_file.py code (0xf0f0f0f0).  

The problem is that Python promotes that value to a bignum because it
doesn't fit into an int (as a positive number).  This was a recent change
to Python, which is great for numeric users but has caused small problems
for people making bitmasks.

John




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] usrp_* gains on Mac OS X much greater than on Linux

2005-12-22 Thread John Gilmore
It should be pretty simple for the USRP's FPGA to swap the bytes of
16-bit samples it delivers in USB packets, if instructed in a control
register by the host.  This would avoid any speed penalty for
big-endian hosts.

(It's also pretty simple to determine that a simple byte-swap would be
a complete cure for the problem, by temporarily doing the swap in software.)

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] sparc -- x86 data exchange

2005-12-16 Thread John Gilmore
Three opinions...

  *  GNU Radio should be processing data in the local machine's native
 byte order and data format (e.g. IEEE float).  You should have to
 explicitly tell it to do something about byte order (e.g. convert
 samples to little-endian).

  *  Any conversions we offer should say nothing about machine types
 (x86), rather should be specific about byte orders.  E.g. we
 should not offer convert longs from x86 to sparc, we should
 offer output big-endian longs and input big-endian longs.
 These conversions would be implemented on all machine types, but
 of course on some of them there's no work to do.  An extra name
 for big-endian should be in network byte order, for people
 who are squirting partially-processed data over the net to
 another signal processing program on an arbitrary machine.

(My opinions on byte order come from having co-designed and maintained
the BFD library that the GNU binutils use to read and write object
files, which require pervasive and specific attention to byte order.
We changed our byte-order API several times until we got it right and
easy to use.)

  *  I'm hesitant to make GNU Radio depend on Yet Another random
 library package like liboil.  Building it is already an exercise
 in frustration, as is trying to package it for a distribution.

Can't we skip some premature optimization and get back to making the
program do real things that real people want to do?  I don't see the
obvious GUI-operable scanners, recorders, radar screens, etc, that
our capabilities are supposed to make it easy to create.  We're how
many years into this package?, and still re-re-rewriting the guts.
Let's rather make it something that tens of thousands of people
would use to record multiple FM stations, or scan and log police and
ambulance frequencies, or TiVo the ham bands, or avoid DRM on
over-the-air TV transmissions.  Even our FM decoding is inferior to
what cheap transistor radios do.  Six months' focus on polish and
applications would make a world of difference.

Just my 2c...

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Groklaw and Dr. Frank Brickle discuss SDR

2005-09-30 Thread John Gilmore
Groklaw.net is an interesting blog by Pamela Jones, paralegal of
mystery, who has entertainingly coordinated the free software
community's response to the SCO v. IBM lawsuit.  Once in a while the
lawsuit gets slow and she has time to cover other things -- like
Katrina, FEMA, and emergency communications.  Frank talks about how he
was approached by FEMA to help make DttSP and the SDR-1000 usable by
FEMA and other first responders to patch together their lockdown
government-contractor radio systems:

  http://www.groklaw.net/article.php?story=20050916105216639

Many comments by readers are interesting, too.

Frank's comments were based on this earlier posting by Pamela about
how using open standards makes systems much more likely to work in
emergencies:

  http://www.groklaw.net/article.php?story=2005091305273070

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Gigabit Design Proposal

2005-06-30 Thread John Gilmore
A critical parameter will be the response time (latency) required on the
host.  This is largely controlled by the amount of bufferring on
the GITD.  Pushing in the opposite design direction is the desire to
minimize latency and cost on the GITD itself.

A memory-mapped interface is great for software but adds to the 
complexity and bus bandwidth requirements when designing for hardware. 
The memory bus has to handle simultaneous packet reads  writes, etc.

It would be a very much simpler design if it had only a single packet
buffer for xmit (and another for rcv).  Everything would be serial
(FIFO) rather than random access, and the data would just flow thru.
The catch is that when the last sample of a packet was sent to the
DAC, the host would have a very short time in which to send the next
packet containing the next sample.

Adding a simple FIFO on the DAC side barely increases the complexity
but lowers the required latency (adding sampleperiod x fifosize nanoseconds
of latency). This is the approach taken on the USRP, as I understand it.

If the Ethernet core can steer each received packet into an
appropriate fifo (based on its UDP port number, for example) then
multiple DACs, ADCs, up- or down-converters can be accommodated.

(Even if this set of FIFOs ends up implemented with an external RAM,
it maybe best to conceptualize it as FIFOs rather than random access
memory.  A better FPGA or tighter latency spec could result in
sucking that function entirely into the FPGA.)

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: GigE (was Re: [Discuss-gnuradio] DSP based SDR)

2005-06-24 Thread John Gilmore
 involve an application layer connection control scheme.  For TX, each
 packet has a number and the device NACKs a packet if it is received when
 the buffer is full.  The host then retries NACKed packets at a given
 interval and gives up if not successful after N tries.  This is still a
 lot lighter than a TCP stack (and could be done in an FPGA).

You've just reinvented the first ten instructions of TCP packet
processing.  The kernel code already does (roughly) that.  What is
also there in TCP is code to handle the case when that fast path
fails (e.g. when a packet was garbled on the wire and you instead
receive the next packet, and you buffer it and keep looking for that
first packet to be retransmitted, but meanwhile more later packets are
coming in, but you aren't out of buffer space yet, or maybe you are,
and the radio transmitter is getting close to needing that missing
data, or maybe it isn't, etc).

I've been designing protocols like this since 1979 (PCNet).  It's real
work.  TCP was designed on the back of an envelope, but it was
designed by guys who had lived under NCP (its predecessor) for a
decade, and had watched it go into catastrophic network-wide failure
under overload.  They threw it away, discarded its most basic
assumption (guaranteed delivery of data by the network), and started
over with the assumption that the network could throw away your data
at any time (the endpoints need to be responsible for guaranteed
delivery).  Their second effort, TCP, has scaled up to billions of
users and trillions of bits per second.  But it took them many months
to get TCP working, and many years of research and tuning to make it
deliver reasonable bandwidth in the face of bandwidth limits
(congestion).

Bandwidth limits are why we are even considering replacing our current
simple USB2 protocol.  Our next interface and protocol WILL be
sampling signals that are at the hairy edge of what the hardware and
software can handle -- just like today.  Our appetites grow over time.
Our flow control protocol will work better if it's been modeled and
implemented and studied and deployed and fixed by thousands of other
people, in real world use.

Maybe we should table this discussion until someone actually proposes
to build a fast AtoD with an ethernet interface.  I reopened it so the
last word wouldn't be Don't ever do that.  When someone eventually
does it, I think we'll learn a lot from the experience.  Maybe what
we'll learn is Don't do that, but I think it will be a much more
subtle and interesting answer (which will then help us scale to the
next level of bandwidth, 10-gigabit Ethernet, InfernoWire, USB17, or
whatever).

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Gig-E alternatives dual USB2

2005-06-22 Thread John Gilmore
 The other thought is that if you are considering putting the peripheral 
 remotely close to an outdoor antenna, perhaps an optical fiber solution 
 would be better - why risk frying your CPU or your body?

Copper GigE is sufficiently cheap and ubiquitous that a DAC/ADC board
should use it.  But for the people who want to mount the whole thing
on a tower and run a nonconducting fiber back to their processing
shack, a converter from copper GigE to fiber GigE is small, low power,
and only costs a few hundred dollars.

 Though GigE sounds like a good idea to pursue, has anyone thought about 
 using 2 or more USB 2 interfaces as an alternative?

A good hack!  I don't know if common multi-USB2 host interfaces can
run all the ports at top speed simultaneously.  Some look to software
like a single interface connected to a hub.

I wonder if we could make a Second USB2 daughtercard that would use
some of the FPGA's digital I/O pins to drive another USB2 chip?

(The protocol over the USB would need to change to add packet numbers, or
to otherwise provide for a way to synchronize the two streams; but this
is probably a simpler change than making a GigE interface.)

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Tempest for LCD displays?

2005-06-20 Thread John Gilmore
 I'm actually interested in detecting LCD and CRT leakage, and decoding 
 the picture display from both LCDs and CRTs with a remote USRP, as a 
 useful hack for determining what TV channels people are watching nearby  
 (I know you can also listen for the local oscillator in the tuner, but 
 the tube probably leaks more energy, and gives you more information.

Ross Anderson and Markus Kuhn did some work on this.  In fact, they
designed a font that makes it hard to see the text on a computer
screen when monitoring via Tempest emissions.  And they have a great
way of optical eavesdropping, based on watching a CRT's phosphor light
vary over small increments of time (e.g. watching a wall that the CRT
is illuminating).  The USRP may be fast enough to capture such light
from slow monitors, though the USB bottleneck gets in the way.  See:

  http://www.cl.cam.ac.uk/Research/Security/tamper/

John



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] VGA-based DVB-T modulator

2005-06-14 Thread John Gilmore
 Does anyone here know if the VGA cards prevent you from controlling
 the DAC durinng the blanking intervals?  Are the blanking intervals
 implemented in hardware or in software?

Generally, video cards stop squirting bits during the blanking intervals,
which are implemented in software.  This lets the adjacent rows of the
frame buffer be next to each other in the memory that the video hardware
is scanning its way through.

However, the timing of the blanking intervals can be controlled with a
fair bit of detail.  These are those terrible X config modeline
values that can blow up your monitor if you set them wrongly.  There
will be *some* blanking interval, but it can perhaps be very short and
can perhaps occur at an interval that won't often affect your signal.

It would be great if video hardware had a mode that turned off this
foolishness and just kept scanning out a section of RAM, raw.  This
would even improve refresh rates on things like LCDs that don't have
to move an electron beam back across the screen during the horizontal
retrace time.  But few video chips probably do.

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] DSP based SDR

2005-05-26 Thread John Gilmore
Have you considered putting a USRP-compatible daughterboard connector
on your DSP-based board?  That would let you mostly ignore radio front
ends.  You and anyone else could piggyback on the work done to make
each radio front end receiver board made for the USRP.  You'd just use
the cheap connector/transformer board for direct connection to
external radios.  It seems like building the radio front ends is a
significant pain (they're coming out more slowly than expected), so
you can save yourself that pain.

Matt and Eric claimed during the USRP development that it wasn't
possible to build a USB-powered board that didn't (1) draw too much
power, and (2) couple too much noise into the sensitive analog
circuitry.  Of course, their board has four hungry chips on it; yours
will have only two.  You might try building your first prototype
boards with jumpers or solder bridges that will let you test with USB
power and with wallwart power -- and see if the radio performs
differently.

In the USRP I had proposed that the clocks to the ADC's be
programmable, so the whole processing chain could run more slowly than
the maximum rate.  Matt was unable to find clock generator parts that
meet his jitter specs (which are critical for oversampling).  That's
why the USRP runs the ADC at top speed and downconverts using math in
the FPGA.  If your Blackfin can't accept data at top speed, you'll
have to improve on the USRP's clocking.

You prefer USB2 over firewire or gigabit Ethernet?  It would be nice
to have a radio spectrum interface that didn't have USB2's bandwidth
as its bottleneck.  Gig E is always full duplex (no collisions between
transmit and receive), and offers higher bandwidth.  GigE switches are
now in the $100 range and dropping fast (or you can plug the board
directly into a computer's GigE port, if it isn't on the Internet at
the same time, e.g. for mobile laptop use).

John Gilmore


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Broadcast flag: FCC and MPAA Response Briefs

2005-04-13 Thread John Gilmore
The American Library Association, EFF, and others challenged the FCC's
authority to regulate equipment beyond the receive tuner, in its broadcast
flag ruling.  (The flag order requires that the tuner not provide
its signal to equipment that would let consumers simply record the signal.)

The court issued a letter questioning ALA's and EFF's standing to
challenge the order.  Standing is a legal doctrine that controls who
is permitted to file suits; you have to be affected and not just
be a bystander.  EFF and ALA submitted a brief and declarations that
detail how we and our members are affected and have standing.

FCC's and MPAA's responses just came in; here they are, courtesy of 
EFF attorney and DTV Liberation Front organizer Wendy Seltzer:

  http://wendy.seltzer.org/media/fcc-flag-supp.pdf
  http://wendy.seltzer.org/media/mpaa-flag-supp.pdf

Some of the earlier documents are here:

  http://www.publicknowledge.org/issues/bfcase

More background is here:

  http://www.eff.org/IP/Video/HDTV/

John 





___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] wfm_rcv.py works, but with half-second delay in audio!

2005-03-07 Thread John Gilmore
I finally got a SMA cable to hook the USRP to my old 4937 tuner.
wfm_rcv.py worked like a charm on the first try, tuning a strong local
FM radio station.  I cabled the computer's audio output into my main
amplifier, which also has a traditional FM tuner.  When I switched
between the tuner and the computer audio output, I noticed that the
computer output was about half a second delayed from the FM radio
signal available thru an ordinary tuner.

Any explanations?

John

PS:  I'm using the tarball release from the Debian packages, not the CVS.


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] NCSA GnuRadio Effort

2005-03-03 Thread John Gilmore
The sensor + radio fusion stuff looks interesting.  I see why the Navy's
interested.

In the future, you should be able to talk to both radio and i2c
devices using the USRP.  Your current tuner board could be converted
to a USRP daughterboard with minimal trouble (or you could wait for
Matt's similar board).  You could make a custom daughterboard that has
nothing but plugs for i2c (or maybe you could use the basic rx or tx
board for that -- I don't know if the i2c pins come out to the rows of
headers or not).  The USRP software provides a way to read and write
to i2c devices (and there are a few on the USRP, including the ID EEPROMs).

John


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] signals/atsc question

2005-03-01 Thread John Gilmore
 (and while I do have access to an mc4020 board, it is
 not in a location that can receive ATSC signals and I'm not about to run
 coax all over the place).

I have to start by saying: either moving the mc4020 board to where the
antenna is, or running coax all over the place, will be MUCH easier
than to do what's needed to squirt this fat a signal over the USB bus.
The mc4020 board runs fine in the current GNU Radio 2.x infrastructure.

(Maybe Matt or Eric, or someone else on the list, has some better
ideas than what I discuss below.  I'm not a signal processing guru,
and they are.)

I am using a 4937 frontend, so that gets the
 USRP a signal from 2.75 to 8.75MHz. The only way that I've been able to
 capture the signal reliably is by doing a DDC by -5.75MHz with a
 decimation factor of 8. This puts the signal nicely between -3 and +3
 MHz, at 8MS/s with complex samples. In order to convert this to 20MS/s
 real, I've tried two approaches:

There are about 10.76 Msymbols/sec in an ATSC signal, so you are going
to have Nyquist problems if you try to represent them in 8M complex
samples/sec.  You'll need at least 10.76 complex MS/s.  (Indeed you
may notice that we were skating inside the edge by using 20
non-complex MS/s on the old hardware.)  If we had a faster USB bus,
the USRP could sample at a nice high rate, like 32 Msamples/sec, then
convert those complex samples directly into shorts that the old code
will be happy with, without any further glop.

Unfortunately that would take about 120 Mbytes/sec over the USB bus.

If we can coax the USRP into providing shorts rather than complex, we
can transfer twice as much data thru our bottleneck.  I think it can,
but I'm not sure how to ask it to do that -- and 60 Mbytes/sec still
wouldn't suffice.

I'm a little surprised that the code in the USRP's FPGA doesn't do
arbitrary sample rate conversion, which would let us just say
Whatever the hardware sample rate is, don't worry about it --
interpolate those samples to 20,000,000 samples per second and hand
them to me over the USB.  That would let us design the sample rate to
match the bandwidth available.  Instead, the current FPGA code will
only decimate by fixed integer ratios, e.g. it'll throw away all but
1 out of N samples for you, without doing interpolation, giving you
little control over sample rate and thus over USB bus data rate.

But even at 20 Ms/s, with 14-bit samples passed in 2-byte shorts,
we've exceeded the capacity of the USB bus.  It would be pretty easy
to build a sample-packer that would pass 16 samples in 14 bytes
(rather than in 16 bytes), which would save us 1/8th of the bandwidth.
That would get the data rate to 35 Mbytes/sec, right at the hairy edge
of what USB2 can do.  To get more headroom, we could round or truncate
the samples from 14 to 12 bits, again with FPGA code.  (Indeed, a nice
sample rate converter should probably also offer sample size
conversion, letting you grab 20ksamp/s of 7-bit samples, or 32.778403
Msamp/s of 8-bit samples, or 55.3 Msamp/s of 4-bit samples, or
whatever else you want.  It might even be able to give you 20 ksamp/s
of 16-bit or 32-bit samples, I don't know the math involved.)  (C++
code on the CPU side of the USB bus would unpack these 14- or 12-bit,
or shorter, samples into shorts again.)

So, if all this nonexistent VHDL code existed in the FPGA, then you
could do the sampling with the USRP.  This is why I recommend doing it
with the mc4020 board.

Now back to the old code that you're trying to validate before you
port it.  The argument parsing in the old code was kludged to only let
you select particular rates like 20,000,000 samples/sec (-s 20).
Sorry.  The bulk of the code is parameterized with the variable
input_rate, which is a double.  I think the vast majority of the
code would work if you set that variable to any value that doesn't
mess up the Nyquist rules.  You can fix the arg parsing so that
input_rate = atod(optarg) * 1e6; and then feed it whatever -s value
matches your sample rate.

(As you later convert the old code to the new framework, you'll want to
notice and fix any part that isn't sample-rate-independent anyway...)

 exception of the pilot which isn't very pronounced. (Note that it
 *seems* as if the pilot is stronger on the original than on the
 converted -- see http://web.mit.edu/imirkin/www/gnuradio)

It took careful antenna aiming and agc gain twiddling to get those
nice pictures.  And even more care to get signals that the code liked.

 Both of these methods yield similar results -- the gnuradio-0.9 atsc_rx
 happily takes the input, and generates an output TS file, with an error
 rate of 1. However, I have plugged this very same antenna pointed in the
 same way into my pcHDTV 3000 card, and it has no problems with the
 signal (maybe an occasional glitch).

The pcHDTV card uses a chip that's specialized and engineered to do
this job very well in a variety of environments.  By contrast, you are
only about the