Thursday, September 25, 2008

New signal samplers

Hello,
It's been a long time since I posted something... I have been busy with some hardware development.
But in my Company we finally have some new data grabber prototypes for our software receiver (and the future ones).

The first is a neat USB dongle:


The second is bigger (has more "stuff" inside of course):


Well I'm not allowed to say too much but.. these two have in common:
- the RF chip from Maxim-Dallas MAX2769,
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/5241
- a Rakon IT3205 TCXO with 1ppm accuracy,
http://www.rakon.com/models/display_model?model_id=503&reset=1&dont_refine=1&action=display
- a USB 2.0 micro controller.

The big one has inside also CPLD:
http://en.wikipedia.org/wiki/CPLD
This is inserted between the RF chip and the USB micro controller, and can perform simple data pre-processing before streaming the signal samples to the computer.

The beauty is that the micro controller firmware allows to program the RF chip and the CPLD in software, as many times as you want.

Like them?

Maybe more coming soon,
Michele

19 comments:

Nabil Ghanem said...

Hi Michele,

I have a question about another sampler. Did you ever try the SiGe GN3Sv2?
I am playing around with it, but it seems that the IQs it returns are only +1 or -1 values instead of getting a real IQ signal... obviously this is not normal.

I hope you know something about this
thanks in advance,
Nabil

Michele Bavaro said...

Hello Nabil,
have a look here:

http://ccar.colorado.edu/gnss/

at "Front-end Module" menu tab.
This particular device samples using 1-bit quantisation. It means that it's perfectly fine to receive only '+1' and '-1'.
This minimal quantisation leads only to about 2.5dB loss when processing GPS.

Regards,
Michele


P.S.: Try plotting the PSD, you'll see it actually works!

Sanghoon Jeon said...

Hello Michele,

I'm a student studying SDR at seoul national univ. in Korea.
I saw your comment at SaprkFrun.
Did you solve the GN3S v2's recording limitation?
I tried to make some application codes. But I couldn't get longer than 650MB.

And I have another question..
the new signal samplers of your company looks great. Dose it sold now? Where can I buy one?

I hope I'll get some answers in here soon.

Regards,
Sanghoon Jeon.

Michele Bavaro said...

Hello Sanghoon Jeon,
to solve the 650 Mbytes limitation you have to slightly modify the firmware of the GN3Sv2. The firmware source code is provided by Colorado University
http://ccar.colorado.edu/gnss/
you need to install MinGW
http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
the SDCC,
http://sdcc.sourceforge.net/snap.php#Windows
and the libusb-win32
http://sourceforge.net/project/showfiles.php?group_id=78138&package_id=79216

I am afraid I cannot send you the modified code, but I can suggest you to have a look at the timeout variable 'guardCnt' initialised with 'hook_timer_tick' and how the Cypress FX2 GPIF works.
Ah! Of course you also need to remove the limitation from the application source code (look at the macro MAX_FILE_SIZE).
Good luck!

Michele

Sanghoon Jeon said...

Hello Michele
The advice is so nice and very helpful to me .

I have another question.
Using minGW and SDCC, I made ihx file and hex file. So, I want to program the code to GN3S.

But I don't know how to do because I'm newbie in firmware work.
As my First thought, I used cypress FX2 development tools. However, It needed another driver( EZ-USB).In additional, for using this, I had to re-install driver and write EEPROM everytime for fixing code.

Do you know how to program code using libusb?

Thanks for reading poor English and
I hope this question doesn't bother you.

Regards,
Sanghoon Jeon.

Michele Bavaro said...

Hello Sanghoon Jeon,
sorry for the late reply, I've been away for some meetings and it's not easy to catch up.
Even though you probably found the answer already, I can tell how I did it.
To program the device you need a driver on Windows, nothing on Linux. The driver is again provided by libusb-win32, so don't bother yourself using the Cypress development kit. Once you can access the device, use fx2_programmer:

http://volodya-project.sourceforge.net/fx2_programmer.php

to program it. On Windows, you may need to recompile the sources. The syntax is straightforward (look at the examples).
If you want to upload a firmware on the EEPROM - in such a way that after the device is disconnected the new image is retained - you need some more work, but it can be done.

Regards,
Michele

P.S.: Probably it would be worth you to have a look at

http://gnuradio.org/trac/wiki/USRP

Sanghoon Jeon said...

Hello Michele.
I'm.. again.;;
When I get back from Japan last sunday, I was really pleased because of your comments.
So, I tried to use fx2_programmer really hard in this week.

However, Unfortunatly...
I didn't make it. T-T

using fx2_programmer, as I know, the sampler has to be 'unconfigured'. If it becomes unconfigured status, I should fix the circuit of the sampler.
however, as there is a cap in circuit, I'm afraid to try fixing circuit.; When I tried to remove the cap, I think I'll ruin everything.

Do you know how I program the ihx to fx2 without hardware change?

Michele Bavaro said...

Hello Sanghoon Jeon,
I do not have a GN3Sv2 to play with, but I'm reasonably sure that there is no need to open it and rework the board in order to reprogram the firmware.

By the way, did you remember to set the 8051 of the FX2 in reset state before and set it again in normal condition after the firmware upload?
This is usually done writing "1" at the address 0xE600 (the CPUCS register) before, and writing "0" at the same address after.

As I said, in a similar way you can also program the EEPROM (is it the "0xA9" command?? don't remember) so that the device will retain its configuration after it has been unplugged.
Hope this helps.

Regards,
Michele

Aleks said...

Hi Michele,

I'm trying to reprogram the GN3Sv2 to remove the 40 second limitation, and I'm not quite sure where to start.

I've modified and built the code for it, but I don't know quite how to program it.

I've got a copy of the FX2_programmer, but I don't know which memory locations are used to store the HEX file code. Any help would be highly appreciated, I've been tearing my hair out over this for a few days now.

Cheers,
Aleks

Michele Bavaro said...

Hello Aleks,
this is not enough information.. furthermore I don't officially support the GN3Sv2, you should ask its developers ;) I can point you to the right direction though:

http://sourceforge.net/projects/osgps

Regards,
Michele

Aleks said...

Thanks Michele,

I'll check osgps.

Aleks

SamP said...

I am currently using the GN3Sv1. Can I change the firmware on the device with the FX2_programmer?

I can currently track the satellites in real time by resetting the device ever 40 seconds and reacquiring the code offset, and injecting a 0 for the data to be decoded.

However this would be better if resetting the device was not needed.

Michele Bavaro said...

Hello SamP,

well done. You can, yes. Again, please refer to the people that support osgps for help on the GN3Sv1.

Cheers,
Michele

SamP said...

I found out that I am loosing 22-23ms of data when I reset the device. I would not be able to recover one data bit.

How is the progress on your dongles.

Michele Bavaro said...

Dear SamP,
the dongles are fine, they can be purchased on NSL's website.
Maybe you should explain me more (how do you reset the device, how can you track continuously if you loose an unknown number of samples, etc). Then maybe you should ask the question.

Regards,
Michele

Jessica said...

Michele,

I am on a university team attempting to use the SiGe GN3Sv2, however it is currently out of stock, and I was wondering if you knew of any good places to get the sample preprocessed data so we could test our code.

Thanks,

Jessica

Michele Bavaro said...

Hi Jessica,

which are the characteristics of the file you need? Does it have to be a file grabbed with the GN3Sv2? Or can it be a file grabbed with my front-end?

For the GN3Sv2, look at

http://sourceforge.net/projects/osgps/files/

For mine, feel free to contact me at michele.bavaro at nsl dot eu dot com.

Cheers,
Mic

Maurizio said...

Hi Michele, I was surfing the web and I run into your blog!

A long time since the last time we met in Turin at ISMB. I see your work on GNSS and I must say very well done.

We made some progresses too with our GPS+Galileo real time fully software receiver. It is able to process 16 GPS channels + EGNOS processing a data stream of about 8 bit samples@20 MSamples/sec with a CPU power consumption of 29% with a 3.1 Core2 processor.

Still working in Linux (I am more than happy about that since you know I am a Linux supporter) since we did not put effort on the Windows driver development. I might contact you in private for some suggestion of yours about this specific aspect. Now just let me tell you "Great Work Michele".

Ciao Maurizio.

Geoffrey said...

Hi there,

Do you consider taking on any kind of commercial consulting work? If so, could you drop me a line at geoffrey.cross at omg3d.com?

Thanks!
Geoff.