FSK and GFSK signal decoding

Hi,

we have an USRP1 with a WBX card and we would like to get some data
received
on 433MHz from a homemade module. It sends a data packet each 5 seconds.
The
packet is constructed like this: , where DATA represents some information collected on
that
module.We intend to work on Windows not Linux, it much more user
friendly.We
don’t really know how to start all this therefore we would appriciate
any
help.We installed UHD,GNURADIO and other needed things, but I couldn’t
find
any help file with some explained examples. What could be easyer, to
make some
application (in C++, VisualBasic, etc.), to use Python or other
solutions.
Anyway whenwe will get data intothe PCwe need to do some math operations
and
display it.

So, the biggest problem is thatwe don’t really understand howwe could
get
that data. We have that module that sends some packets.If we set the
USRP1
through UHD to 433MHz (what other parameters shouldwe set), when it will
receivesome RF signals it willstarts to pass it to the application (run
with
python or made with other development softwares). The USRP will send
some
data(byte 1; byte 2; byte 3; …) as many as it receives. From that
datawe
will get out our DATA and check CRC, HEADER, etc.

A help file would be very helpfull. Till nowwe have worked with many
development softwares and with each one there were some kind of help
files for
beginners like us, to understand the basics. The problem is thatwe don’t
really
undestand how UHD works, how couldwe use it with a VisualBasic
environment for
example. There’s any such kind of help file or some web pages?

Thank you very much.

Gunther Ferdinand.

On Sun, 2011-04-10 at 03:49 -0700, Gunther Ferdinand wrote:

any help file with some explained examples. What could be easyer, to
make some application (in C++, VisualBasic, etc.), to use Python or
other solutions. Anyway when we will get data into the PC we need to
do some math operations and display it.

From a development perspective, you’re probably best off in Linux, but
Windows and Cygwin with C++ and Python will work as well. You will
probably encounter significant difficulty trying to get Visual Basic to
work in this application.

So, the biggest problem is that we don’t really understand how we
could get that data. We have that module that sends some packets. If
we set the USRP1 through UHD to 433MHz (what other parameters should
we set), when it will receive some RF signals it will starts to pass
it to the application (run with python or made with other development
softwares). The USRP will send some data (byte 1; byte 2; byte
3; … ) as many as it receives. From that data we will get out our
DATA and check CRC, HEADER, etc.

The USRP is not going to give you bytes of user data, it’s going to give
you (almost) raw samples as received from the air after downconversion
from 433MHz. As a result, it is up to you to perform the following tasks
to get your data back:

  • Coarse frequency estimation
  • Demodulation
  • Preamble detection
  • Fine frequency synchronization
  • Symbol synchronization
  • Symbol slicing
  • Framing

Gnuradio provides blocks to help you with most of these tasks, but
you’ll have to understand their basic operation in order to use them. I
recommend a good digital communications textbook for the theory and
discussion of the above operations: I found Sklar’s “Digital
Communications” to be pretty helpful.

For an example of a simple GMSK receiver, you can check out the AIS
receiver I wrote at https://www.cgran.org/wiki/AIS . It’s a pretty
simple receiver example which gives an example of how Python and C++
interact in Gnuradio, and how the various components of a complete
receiver are written in Gnuradio-land. There are other applications
doing similar things in the Gnuradio examples. gr-pager is one that
comes to mind.

A help file would be very helpfull. Till now we have worked with
many development softwares and with each one there were some kind of
help files for beginners like us, to understand the basics. The
problem is that we don’t really undestand how UHD works, how could we
use it with a VisualBasic environment for example. There’s any such
kind of help file or some web pages?

The API documentation is the first place to look, along with the
examples we include in UHD. For your application, though, it sounds like
you’ll want to use UHD with Gnuradio, so the Gnuradio examples are your
best bet for seeing how implementations are done in the “real world”.

–n

Hi,

If I would like to establish a communication with an ISM band module
how far
away should it be? Could I receive data from a module using a
transceiver with
transmit power of +13dBm that is located at 20m (indoor)distance or more
(the
module is able to send data as far as 800m outdoor and 10m or more
indoor -
depending on number of walls). If I start to send data from USRP1 to
other
modules how far should be those modules (withing the range of 20m
indooror
more), I read that USRP1 Tx power is 50mW - 100 mW (17-20dBm)?

If I have for example 10 modules, half of them working on 868MHz and
the
other half on 915MHz, could I read data transmitted from these modules
and send
data back based on a certain communication protocol (ex: modules working
on
915MHz will send and receive data between them as well as other modules
on
868MHz and the USRP1 + WBX [50MHz - 2.2GHz] + LP0410 [400MHz -
1000MHz]driven
by a PC - with a fast dual core processor-will switch fast enough to
read data
from one of two groups, identify signal, decode it and use data). The
problem
would be how to guess where the data is comming from and to decode it
(group A
communication - FSK; group B communication - GFSK).

Would it be possible.

Thank you very much,
Gunther.