Stephen Hersey | 17 May 2010 23:01
Picon

Looking for overview information on the project

Greetings!
I'm interested in experimenting with SDR on my new BeagleBoard. However, rather than plunge in, download lotsa packages, kick off BitBake, and find myself lost in a maze of twisty little error messages,  I'd like to start by understanding the overall architecture of the Beagle-SDR implementation, how it partitions functionality between the GPP, DSP processor, and external hardware, how it fits in with GNU Radio and Embedded SDR, and eventually, how to connect stuff to it. I've read the ARRL Handbook chapter on SDR, I have a general understanding of SDR principles and some experience working with SCA environments and waveforms, and I've read the descriptions of the USRP, but I'm having trouble finding any overall design information on the Beagle-SDR. Can anyone point me to sources of information on the architecture you're building here and its performance goals? (For example: If, as appears likely, you're emulating the USRP motherboard in the Beagleboard DSP, what sort of RF frequency range do you plan to cover?)

Down the road, I'd like to use the BeagleBoard and its SDR capabilities for control of a semi-autonomous remotely operated vehicle, but that's down the road. Small steps first...

Any hints are greatly appreciated.

--
Steve Hersey N1XNX
n1xnx <at> arrl.net
-----
Each of us has strengths and talents that others don't. Whether innate or learned, these are gifts -- and a gift not shared is a sad and lonely thing. Using our gifts for the benefit of all is an ethical obligation for every intelligent being. (The magic only works if you pass it on!)

Rob | 18 May 2010 01:40
Favicon

RE: Looking for overview information on the project

Hi Steve,

I'm Rob Thomas, originator of the BeagleBrick concept and advisor to the team at Rose-Hulman that did the build-out of the circuitry demonstrated at Hamvention 2010. Your questions are at a much deeper level than I can answer. I suggest you go to Beagleboard.org/chat and ask them in there.

My goal was simple - to take the configuration of off the shelf peripherals that are needed to use an SDR radio with the Beagleboard and with which I had successfully made contacts on 20 and 80 meters and wrap them into a contiguous package resulting in a stand-alone ham radio station in a 4" x 6" "brick.

Outside of what I was able to accomplish with the prototype using said off the shelf parts, the students at Rose Hulman devised a strategy to create a level controller board or consolidate all of that and do the necessary voltage and impedence matching for the various modules. The main point was to eliminate the need for monitor, keyboard and mouse by using an LCD touchscreen which had already been adapted to the Beagleboard and which is well documented on several wikis.

Other than that please feel free to query the folks on www.beagleboard.org/chat and you will find them most helpful.

Best Regards,

Rob

Robert Bruce Thomas, B.I.D.
Industrial Designer
Technology Integration Specialist
Richmond, Virginia, 23229
804.833.4470
http://www.klikhome.com

-------- Original Message --------
Subject: Looking for overview information on the project
From: Stephen Hersey <n1xnxham-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Date: Mon, May 17, 2010 5:01 pm
To: beagle-sdr-7I+KllWURj5BDgjK7y7TUQ@public.gmane.org

Greetings!
I'm interested in experimenting with SDR on my new BeagleBoard. However, rather than plunge in, download lotsa packages, kick off BitBake, and find myself lost in a maze of twisty little error messages,  I'd like to start by understanding the overall architecture of the Beagle-SDR implementation, how it partitions functionality between the GPP, DSP processor, and external hardware, how it fits in with GNU Radio and Embedded SDR, and eventually, how to connect stuff to it. I've read the ARRL Handbook chapter on SDR, I have a general understanding of SDR principles and some experience working with SCA environments and waveforms, and I've read the descriptions of the USRP, but I'm having trouble finding any overall design information on the Beagle-SDR. Can anyone point me to sources of information on the architecture you're building here and its performance goals? (For example: If, as appears likely, you're emulating the USRP motherboard in the Beagleboard DSP, what sort of RF frequency range do you plan to cover?)

Down the road, I'd like to use the BeagleBoard and its SDR capabilities for control of a semi-autonomous remotely operated vehicle, but that's down the road. Small steps first...

Any hints are greatly appreciated.

--
Steve Hersey N1XNX
n1xnx-WYrOkVUspZo@public.gmane.org
-----
Each of us has strengths and talents that others don't. Whether innate or learned, these are gifts -- and a gift not shared is a sad and lonely thing. Using our gifts for the benefit of all is an ethical obligation for every intelligent being. (The magic only works if you pass it on!)

Stephen Hersey | 18 May 2010 03:42
Picon

Re: Looking for overview information on the project

Rob,
Thank you very much for the prompt and detailed reply. I like the BeagleBrick concept. I'm also rather blown away by the sheer wealth of capabilities the BeagleBoard provides. (It's rather unusual to be able to run a full graphical desktop with applications on a fanless embedded controller, and that doesn't even get to the DSP or the direct LCD interface. I think that once I figure out how to fully exploit the onboard DSP, I'll be able to do some really cool things with it.) I'll certainly pose this question to the beagleboard.org chat group, and see what happens.

Best Regards, Steve Hersey

On Mon, May 17, 2010 at 7:40 PM, Rob <rbt-W+VvsqFmliJWk0Htik3J/w@public.gmane.org> wrote:
Hi Steve,

I'm Rob Thomas, originator of the BeagleBrick concept and advisor to the team at Rose-Hulman that did the build-out of the circuitry demonstrated at Hamvention 2010. Your questions are at a much deeper level than I can answer. I suggest you go to Beagleboard.org/chat and ask them in there.

My goal was simple - to take the configuration of off the shelf peripherals that are needed to use an SDR radio with the Beagleboard and with which I had successfully made contacts on 20 and 80 meters and wrap them into a contiguous package resulting in a stand-alone ham radio station in a 4" x 6" "brick.

Outside of what I was able to accomplish with the prototype using said off the shelf parts, the students at Rose Hulman devised a strategy to create a level controller board or consolidate all of that and do the necessary voltage and impedence matching for the various modules. The main point was to eliminate the need for monitor, keyboard and mouse by using an LCD touchscreen which had already been adapted to the Beagleboard and which is well documented on several wikis.

Other than that please feel free to query the folks on www.beagleboard.org/chat and you will find them most helpful.

Best Regards,

Rob

Robert Bruce Thomas, B.I.D.
Industrial Designer
Technology Integration Specialist
Richmond, Virginia, 23229
804.833.4470
http://www.klikhome.com

-------- Original Message --------
Subject: Looking for overview information on the project
From: Stephen Hersey <n1xnxham-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Date: Mon, May 17, 2010 5:01 pm
To: beagle-sdr <at> opensdr.com

Greetings!
I'm interested in experimenting with SDR on my new BeagleBoard. However, rather than plunge in, download lotsa packages, kick off BitBake, and find myself lost in a maze of twisty little error messages,  I'd like to start by understanding the overall architecture of the Beagle-SDR implementation, how it partitions functionality between the GPP, DSP processor, and external hardware, how it fits in with GNU Radio and Embedded SDR, and eventually, how to connect stuff to it. I've read the ARRL Handbook chapter on SDR, I have a general understanding of SDR principles and some experience working with SCA environments and waveforms, and I've read the descriptions of the USRP, but I'm having trouble finding any overall design information on the Beagle-SDR. Can anyone point me to sources of information on the architecture you're building here and its performance goals? (For example: If, as appears likely, you're emulating the USRP motherboard in the Beagleboard DSP, what sort of RF frequency range do you plan to cover?)

Down the road, I'd like to use the BeagleBoard and its SDR capabilities for control of a semi-autonomous remotely operated vehicle, but that's down the road. Small steps first...

Any hints are greatly appreciated.

--
Steve Hersey N1XNX
n1xnx-WYrOkVUspZo@public.gmane.org
-----
Each of us has strengths and talents that others don't. Whether innate or learned, these are gifts -- and a gift not shared is a sad and lonely thing. Using our gifts for the benefit of all is an ethical obligation for every intelligent being. (The magic only works if you pass it on!)




--
Steve Hersey N1XNX
n1xnx-WYrOkVUspZo@public.gmane.org
-----
Each of us has strengths and talents that others don't. Whether innate or learned, these are gifts -- and a gift not shared is a sad and lonely thing. Using our gifts for the benefit of all is an ethical obligation for every intelligent being. (The magic only works if you pass it on!)

Eric Brombaugh | 18 May 2010 20:30
Picon
Gravatar

Beagle FPGA board - status update

Hi,

A quick status on the Beagle FPGA project:

Boards are back from the PCB fab and the first one has been assembled 
and is being tested. Configuration software is available and the board 
is working with both the Angstrom Stable and Unstable development trees. 
So far all power, ID, clocking and configuration support circuitry is 
working as designed. Off-board I/O and the remaining Beagle interface 
remains to be tested.

Find out more about this project at the following sites:

http://members.cox.net/ebrombaugh1/embedded/beagle/beagle_fpga.html

http://www.elinux.org/BeagleBoard_Tracker

Please let me know if you have any questions or comments on this.

Thanks,

Eric

Stephen Hersey | 18 May 2010 20:49
Picon

Re: Beagle FPGA board - status update

Here's a question: What I/O do tyou plan to use between the FPGA and BeagleBoard? From the schematic, it seems evident that you can use one or more McBSPs (which ought to be good for SDR data traffic); do you also envision doing parallel I/O?

On Tue, May 18, 2010 at 2:30 PM, Eric Brombaugh <ebrombaugh1 <at> cox.net> wrote:
Hi,

A quick status on the Beagle FPGA project:

Boards are back from the PCB fab and the first one has been assembled and is being tested. Configuration software is available and the board is working with both the Angstrom Stable and Unstable development trees. So far all power, ID, clocking and configuration support circuitry is working as designed. Off-board I/O and the remaining Beagle interface remains to be tested.

Find out more about this project at the following sites:

http://members.cox.net/ebrombaugh1/embedded/beagle/beagle_fpga.html

http://www.elinux.org/BeagleBoard_Tracker

Please let me know if you have any questions or comments on this.

Thanks,

Eric



--
Steve Hersey N1XNX
n1xnx-WYrOkVUspZo@public.gmane.org
-----
Each of us has strengths and talents that others don't. Whether innate or learned, these are gifts -- and a gift not shared is a sad and lonely thing. Using our gifts for the benefit of all is an ethical obligation for every intelligent being. (The magic only works if you pass it on!)

Eric Brombaugh | 18 May 2010 21:15
Picon
Gravatar

Re: Beagle FPGA board - status update

As you noticed, the interface between Beagle & FPGA is mostly 
uncommitted. There are a few options that stand out:

* McSPI3 - this is a 1-bit serial stream, simultaneous I/O which 
supports up to 48Mbps. SPI is inherently packetized and so may not be 
ideal for isochronous streams like one often finds in SDR.

* McBSP3 - this is a 1-bit serial stream with simultaneous I/O that also 
includes framing. It can operate up to 48Mbps in several different 
modes, some of which support isochronous streams. This seems like it 
would be ideal for SDR, especially since the McBSP can be piped into the 
on-chip C6x DSP.

* MMC2 - this is an 8-bit parallel stream with muxed I/O and separate 
commands that is primarily intended for communication with MMC/SD/SDIO 
cards. With some creative FPGA wrapper logic and corresponding driver 
code in the OMAP MCU it could conceivably be adapted to a fairly high 
bandwidth packetized interface that could support fairly high data rates 
- a quick skim of the TRM suggests a maximum clock frequency of 52MHz 
for a theoretical data rate of 52MBps, but there's a fair amount of 
handshaking involved with the SD protocols that would cut the aggregate 
down from that considerably. Also, the current interface allocation 
between Beagle and FPGA is not optimized to use this interface, so a 
minor circuit revision would be required to explore this.

Eric

On 05/18/2010 11:49 AM, Stephen Hersey wrote:
> Here's a question: What I/O do tyou plan to use between the FPGA and
> BeagleBoard? From the schematic, it seems evident that you can use one
> or more McBSPs (which ought to be good for SDR data traffic); do you
> also envision doing parallel I/O?
>
> On Tue, May 18, 2010 at 2:30 PM, Eric Brombaugh <ebrombaugh1@...
> <mailto:ebrombaugh1@...>> wrote:
>
>     Hi,
>
>     A quick status on the Beagle FPGA project:
>
>     Boards are back from the PCB fab and the first one has been
>     assembled and is being tested. Configuration software is available
>     and the board is working with both the Angstrom Stable and Unstable
>     development trees. So far all power, ID, clocking and configuration
>     support circuitry is working as designed. Off-board I/O and the
>     remaining Beagle interface remains to be tested.
>
>     Find out more about this project at the following sites:
>
>     http://members.cox.net/ebrombaugh1/embedded/beagle/beagle_fpga.html
>
>     http://www.elinux.org/BeagleBoard_Tracker
>
>     Please let me know if you have any questions or comments on this.
>
>     Thanks,
>
>     Eric
>
>
>
>
> --
> Steve Hersey N1XNX
> n1xnx@... <mailto:n1xnx@...>
> -----
> Each of us has strengths and talents that others don't. Whether innate
> or learned, these are gifts -- and a gift not shared is a sad and lonely
> thing. Using our gifts for the benefit of all is an ethical obligation
> for every intelligent being. (The magic only works if you pass it on!)
>

Stephen Hersey | 18 May 2010 22:18
Picon

Re: Beagle FPGA board - status update

McBSP3 -- Bingo! That looks like the best candidate for SDR I/O; piping data directly between the FPGA and the DSP at many Mbps means that compute-intensive tasks can be done entirely in the DSP, or partially in the DSP and partially in the FPGA, without needing to bother the ARM CPU for the data transfers. Might even be able to implement a packet-radio modem in the DSP, and pass payload data frames to and from the DSP from the ARM CPU as a virtual-serial-port device. Time to start reading up on the DSP system, woohoo!

Oh, and I forgot to mention it the first time: Your FPGA peripheral rocks!

Thanks, Steve

On Tue, May 18, 2010 at 3:15 PM, Eric Brombaugh <ebrombaugh1-j9pdmedNgrk@public.gmane.org> wrote:
As you noticed, the interface between Beagle & FPGA is mostly uncommitted. There are a few options that stand out:

* McSPI3 - this is a 1-bit serial stream, simultaneous I/O which supports up to 48Mbps. SPI is inherently packetized and so may not be ideal for isochronous streams like one often finds in SDR.

* McBSP3 - this is a 1-bit serial stream with simultaneous I/O that also includes framing. It can operate up to 48Mbps in several different modes, some of which support isochronous streams. This seems like it would be ideal for SDR, especially since the McBSP can be piped into the on-chip C6x DSP.

* MMC2 - this is an 8-bit parallel stream with muxed I/O and separate commands that is primarily intended for communication with MMC/SD/SDIO cards. With some creative FPGA wrapper logic and corresponding driver code in the OMAP MCU it could conceivably be adapted to a fairly high bandwidth packetized interface that could support fairly high data rates - a quick skim of the TRM suggests a maximum clock frequency of 52MHz for a theoretical data rate of 52MBps, but there's a fair amount of handshaking involved with the SD protocols that would cut the aggregate down from that considerably. Also, the current interface allocation between Beagle and FPGA is not optimized to use this interface, so a minor circuit revision would be required to explore this.

Eric


On 05/18/2010 11:49 AM, Stephen Hersey wrote:
Here's a question: What I/O do tyou plan to use between the FPGA and
BeagleBoard? From the schematic, it seems evident that you can use one
or more McBSPs (which ought to be good for SDR data traffic); do you
also envision doing parallel I/O?

On Tue, May 18, 2010 at 2:30 PM, Eric Brombaugh <ebrombaugh1-j9pdmedNgrk@public.gmane.org
<mailto:ebrombaugh1-j9pdmedNgrk@public.gmane.org>> wrote:

   Hi,

   A quick status on the Beagle FPGA project:

   Boards are back from the PCB fab and the first one has been
   assembled and is being tested. Configuration software is available
   and the board is working with both the Angstrom Stable and Unstable
   development trees. So far all power, ID, clocking and configuration
   support circuitry is working as designed. Off-board I/O and the
   remaining Beagle interface remains to be tested.

   Find out more about this project at the following sites:

   http://members.cox.net/ebrombaugh1/embedded/beagle/beagle_fpga.html

   http://www.elinux.org/BeagleBoard_Tracker

   Please let me know if you have any questions or comments on this.

   Thanks,

   Eric




--
Steve Hersey N1XNX
n1xnx-WYrOkVUspZo@public.gmane.org <mailto:n1xnx <at> arrl.net>

-----
Each of us has strengths and talents that others don't. Whether innate
or learned, these are gifts -- and a gift not shared is a sad and lonely
thing. Using our gifts for the benefit of all is an ethical obligation
for every intelligent being. (The magic only works if you pass it on!)





--
Steve Hersey N1XNX
n1xnx-WYrOkVUspZo@public.gmane.org
-----
Each of us has strengths and talents that others don't. Whether innate or learned, these are gifts -- and a gift not shared is a sad and lonely thing. Using our gifts for the benefit of all is an ethical obligation for every intelligent being. (The magic only works if you pass it on!)

Eric Brombaugh | 18 May 2010 23:03
Picon
Gravatar

Re: Beagle FPGA board - status update

Agree - McBSP3 looks like the best way to get streaming data into the 
Beagle in such a way that it can be pre-processed in the DSP. It limits 
the bandwidth a bit over trying to work out something using MMC2, but is 
probably good enough for a lot of useful stuff and it will be a heckuva 
lot easier to get going.

One thing to consider - setting up McBSP3 as an ordinary audio device 
running at 48ksps would be a great way to bootstrap into GnuRadio - I 
believe there are already audio sources/sinks that would hook right up, 
and a decimating/interpolating FPGA design could probably be set up to 
generate I2S-compatible data streams without too much effort, with 
side-channel control for frequency and bandwidth taking place over the 
SPI4 port that's already in use for the FPGA setup. I've got a TXDAC 
design to plug into two of the connectors on the FPGA board out to fab 
now and hope to have this testing in a few weeks.

Eric

On 05/18/2010 01:18 PM, Stephen Hersey wrote:
> McBSP3 -- Bingo! That looks like the best candidate for SDR I/O; piping
> data directly between the FPGA and the DSP at many Mbps means that
> compute-intensive tasks can be done entirely in the DSP, or partially in
> the DSP and partially in the FPGA, without needing to bother the ARM CPU
> for the data transfers. Might even be able to implement a packet-radio
> modem in the DSP, and pass payload data frames to and from the DSP from
> the ARM CPU as a virtual-serial-port device. Time to start reading up on
> the DSP system, woohoo!
>
> Oh, and I forgot to mention it the first time: Your FPGA peripheral rocks!
>
> Thanks, Steve

Stephen Hersey | 23 May 2010 04:09
Picon

Need a clue to solve a Boost inconsistency under Angstrom

I'm attempting to build OSSIE using the Bitbake build system for the
BeagleBoard. I've successfully built the Angstrom x11-image
(local.conf lists DISTRO = "angstrom-2008.1") on my cross-build system
(running Debian Lenny updated a week ago), so I trust the basic sanity
of my OE toolchain and the basic Angstrom build.

I've followed the instructions at "Getting started with Embedded SDR"
(http://www.opensdr.com/node/7), with adaptations that seem reasonable
for the latest bitbake, mainly replacing ${OEDIR} with ${OETREE}. (I
notice those instructions date from 2008, so there may be something
else obsolete I'm doing...) I have also compared them to the Overo
build instructions, and I don't see any obvious incompatibilities.

The OSSIE version I'm getting from the SVN repo at
https://svn.geekisp.com/opensdr/OE/ossie_collection is 0.7.0.0, tagged
as ossie-cf-0.0.0+svnr380-r2.

When I try to bitbake a console-image with the OSSIE collection
included, I get an error compiling the OSSIE CF, which seems to be an
incompatibility with the Boost package, version 1_36_0, that is pulled
in by bitbake. The error is listed below:

FileSystem_impl.cpp: In member function 'virtual void
FileSystem_impl::remove(const char*)':
FileSystem_impl.cpp:95: error: void value not ignored as it ought to be
FileSystem_impl.cpp: In member function 'virtual
CF::FileSystem::FileInformationSequence* FileSystem_impl::list(const
char*)':
FileSystem_impl.cpp:168: error: 'class
boost::filesystem::basic_directory_entry<boost::filesystem::basic_path<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
boost::filesystem::path_traits> >' has no member named 'leaf'

There's a post on Nabble
(http://old.nabble.com/-filesystem--compiling-code-breaks-on-1.36-td19002108.html)
that mentions a very similar error, suggesting that Boost 1.36.0 broke
compatibility with older revs in regard to the filesystem.

All of this speaks to me of a version incompatibility between the
copies of OSSIE and Boost I'm using; either I'm following an outdated
set of instructions and fetching an old version of OSSIE from the
wrong place, or there's a setting I've neglected to tweak.

Can anyone who has recently built OSSIE on Angstrom, perhaps even for
the BeagleBoard, suggest where I may be going wrong here? I've got the
build logs if necessary, but in the interests of brevity I won't just
paste them all in here...

Thanks, Steve N1XNX


Gmane