Well I have had a frustrating few days. With little progress.
First problem was the FFT routine I am using. There appears to
be some artefacts in the iFFT output in the bins around N/2.
Whatever I do I can't get rid of them. They are not in the bins
I am using for the OFDM but they produce unwanted out of band
signals.
The next problem is trying to calibrate out the DC offset in the
WBX up-converter. I was told it was easy to do just a few lines
of code! It is more complex than that. The principal is simple
getting it to work reliably is not.
On the bright side I received the 7660 negative voltage converter
chips I ordered from Taiwan all 30 of them. A life times supply at the
speed I build things.
I am going to have to take a break from all thing Amateur radio in the
next week or so. I have some maths homework to finish, I have already
put it off for far to long, playing with the USRP2 is just too much fun.
I will be back after June 9th.
Saturday, 29 May 2010
Tuesday, 25 May 2010
DVB-T
I have now started to debug my DVB-T implementation. As you can see
from the picture it looks like the P.C is fast enough to do real-time DVB-T
encoding. The iFFT used to generate the OFDM signal is a piece of MMX
code I found in an Intel appnote. The signal is about 7 MHz wide.
Friday, 21 May 2010
UHD Updates
Re-did some of my code which dropped the CPU load from 70% to 45% on one core.
Then upgraded to the latest version of UHD which caused the load to drop to 35%.
Of course the UHD upgrade broken everything and I had to spend a while figuring
out what had changed in the libraries. The ATC chip capacitors arrived this
morning for the driver amp. I need to find a suitable heat sink. The ones I wanted
were out of stock.
Then upgraded to the latest version of UHD which caused the load to drop to 35%.
Of course the UHD upgrade broken everything and I had to spend a while figuring
out what had changed in the libraries. The ATC chip capacitors arrived this
morning for the driver amp. I need to find a suitable heat sink. The ones I wanted
were out of stock.
Wednesday, 19 May 2010
More GUI
I managed to get some more work done on the GUI today.
I added the ability to configure the transmitter to
operate at 2,3,4,5 and 6 M Symbols/s and I can also control
the frequency and power level. I am starting to really like
the QT4 development environment.
I added the ability to configure the transmitter to
operate at 2,3,4,5 and 6 M Symbols/s and I can also control
the frequency and power level. I am starting to really like
the QT4 development environment.
Saturday, 15 May 2010
PUFF
I have been playing with PUFF http://tiny.cc/j14ne for a couple
of days. I need to boost the output of the USRP2 to fully drive the
24 cms PA. I bought some FPD4000AF 4 GHz pHEMTs they are
4 watt devices and you can get them for about £1 each. Whether I
will be able to design a suitable amplifier only time will tell. At £1 a
pop it's worth a try. Will keep you posted.
of days. I need to boost the output of the USRP2 to fully drive the
24 cms PA. I bought some FPD4000AF 4 GHz pHEMTs they are
4 watt devices and you can get them for about £1 each. Whether I
will be able to design a suitable amplifier only time will tell. At £1 a
pop it's worth a try. Will keep you posted.
Wednesday, 12 May 2010
More Xine!
In the picture above the left screen is the Linux monitor. It shows the DVB
transmitter application running. The window to the right is Xine and is
displaying the transport stream generated by the DVB software.
The screen to the right is the same signal being decoded by the satellite STB.
The next challenge is to write the DVB-S demodulation code so the USRP2
can be used both for transmit and receive.
Tuesday, 11 May 2010
Xine
After a day spent deep in the entrails of my Linux box
I managed to take the transport stream generated
by the M0DTS DVB-S system and feed it into Xine.
This allows me to display the transport stream as
a picture in a Linux window.
So what you might say.Well, I know about transport
streams, in fact I generate them in my own code.
So when I get around to implementing the receive side
of DVB-S I now know I will be able to display the
audio / video in a Linux window from the demodulated
transport stream.
I had to use a tool called Autoten to get a suitable codec as
Xine kept telling me it didn't have an MPEG 1/2 codec.
I also had to fix the auto update in my Fedora 12 installation
but that is another story.
I managed to take the transport stream generated
by the M0DTS DVB-S system and feed it into Xine.
This allows me to display the transport stream as
a picture in a Linux window.
So what you might say.Well, I know about transport
streams, in fact I generate them in my own code.
So when I get around to implementing the receive side
of DVB-S I now know I will be able to display the
audio / video in a Linux window from the demodulated
transport stream.
I had to use a tool called Autoten to get a suitable codec as
Xine kept telling me it didn't have an MPEG 1/2 codec.
I also had to fix the auto update in my Fedora 12 installation
but that is another story.
Monday, 10 May 2010
U.H.D
I am pleased to report that the software is now working
with the new Universal Hardware Driver (UHD) from
Ettus Research. This will allow me to have much greater
control over the USRP2 + WBX from within the GUI.
with the new Universal Hardware Driver (UHD) from
Ettus Research. This will allow me to have much greater
control over the USRP2 + WBX from within the GUI.
Saturday, 8 May 2010
1.3 GHz GH Engineering PA on test
Finally the missing parts arrived and I was able to do some testing of
the 1.3 GHz power amplifier. The output is only about 1 watt at the moment.
There was a lot of lossy RG58 cable between the USRP2 and the test bench hence
the low power.
One thing I found was that if the SMA connectors are not screwed tight you loose
quite a lot of RF. The two black cables inside the amplifier are scrap semi-rigid
cable covered in heat shrink sleeving that I bought on eBay.
I am not the worlds best metal worker but the case, which was made from
pieces of U channel aluminium and flat plate is enough to maintain the PAs
modesty.
I also made some changes to the Software. The idea was to reduce the amount
of memory it requires so it would work better on the laptop. A nice by-product
of the change has been a significant reduction in the system latency.
Friday, 7 May 2010
Hauppauge WinTV USB2 PVR and a Laptop
The used USB PVR arrived this morning so I thought I
would try it out with my laptop. The laptop is a dual core
2GHz machine with 2G of memory. After a few teething
problems (I had to reduce the ram usage of my program)
I managed to get it to work transmitting 4Msps video. So it
looks like I now have a way of going mobile. The CPU load
is around 60% on both cores.
Interestingly the port ids on the USB2 PVR and on the
PCI PVR seemed to be swapped. Took me a few minutes
to figure out why I was getting a black screen. I also noticed
that the USB2 PVR seems to work a bit better than the PCI
one does with the software. The PCI unit does not like changing
parameters when streaming video. The USB2 unit does not seem
to care.
This is not what I meant to do today. I had hoped to do a bit
more on the GUI. Yesterday I managed to get the DVB-T code
to compile and run. It is no where near working correctly though.
would try it out with my laptop. The laptop is a dual core
2GHz machine with 2G of memory. After a few teething
problems (I had to reduce the ram usage of my program)
I managed to get it to work transmitting 4Msps video. So it
looks like I now have a way of going mobile. The CPU load
is around 60% on both cores.
Interestingly the port ids on the USB2 PVR and on the
PCI PVR seemed to be swapped. Took me a few minutes
to figure out why I was getting a black screen. I also noticed
that the USB2 PVR seems to work a bit better than the PCI
one does with the software. The PCI unit does not like changing
parameters when streaming video. The USB2 unit does not seem
to care.
This is not what I meant to do today. I had hoped to do a bit
more on the GUI. Yesterday I managed to get the DVB-T code
to compile and run. It is no where near working correctly though.
Tuesday, 4 May 2010
System block diagram

This is the block diagram of the system. The bold text in the centre box
shows the parts of the system that have been implemented in the software.
The block diagram was drawn using free schematic software from PCBExpress.
Although using a USRP2 for Digital Television may appear expensive,
the USRP2 SDR can be re-programmed to implement virtually any type
of radio you desire. I consider it the best value radio I have ever bought.
The USRP2/WBX cost about the price of a new TS2000.
Monday, 3 May 2010
A picture paints a thousand words

The SI tables are now working (all except the EPG information) and I have
also fixed a bug in the interpolation filter. It won't be long before I make my
first transmission at full power (10 watts). I am just waiting for a 99p part to
finish off the amplifier.
Saturday, 1 May 2010
DVB Primitive GUI

Above is the first primitive GUI for the DVB-S transmitter.
The GUI is based on QT4. The visible tab is the one for the
various FEC rates available in DVB-S.
I now have direct control of the Hauppauge PVR500 card using
the v4l2 API. This is necessary as the video bitrate needs changing
when any of the parameters are changed like the FEC code rate.
Originally I wrote the program in standard C but to make it easier
for me to integrate with the GUI I have changed the files to C++.
The whole DVB transmitter can now be developed from within the
QT4 development environment. For someone that is not a Linux natural
(I have used Visual C++ before) being able to use a visual development
environment again is nice. I know I have just upset the Linux hardcore
but that is the way it is.
Before I can proceed much further with the development I need the
new UHD for the WBX board. This will allow me to control the
transmitters frequency from the GUI.
I will probably finish off the 1.3 GHz PA next and will also have a think
about the GUI layout. Eventually I want to add DVB-T and when I have
figured out how best to do it, DVB-S and DVB-T receive.
Subscribe to:
Posts (Atom)