Even though the weather was amazing this weekend, I couldn’t manage to keep myself from making progress on QtRadio. A lot of stuff was fixed, changed, and added over the weekend.
My osx-testing branch is now available in Alex’s fork, and there is a pull request to merge it in to the master branch. The final changes were extremely minor – removing an old OSX sample rate fix, and switching the conditions to include Powermate support on Linux only (!win32 -> linux).
On my ui-testing branch, I merged the latest master changes, merged the osx-testing changes, and improved on a number of the new features.
QtRadio ui-testing on OSX with Multimon Decode
The biggest change this weekend has been the addition of a digital decoder widget to QtRadio. Using the Multimon source I found online, and an example Qt app called Qtmm by Ceste (Author of GQRX SDR software). This added the same AFSK support to QtRadio as you find in GQRX. After that I was curious to see if we could finish porting Multimon and add the remaining modes back in to QtRadio…. The next day DTMF decoding is working! And then some changes to allow switching between the two available decoders. I would really like to add more modes, like CW, RTTY, PSK, etc.. but I must finish work on the layout changes before I can focus on the widgets themselves. kj6DZB pointed me to a new (active) fork of Multimon called MultimonNG that has some updates and additional decoders, so I’m working on switching to that branch of Multimon.
One interesting thought, if we can feed the decoders a fixed portion of audio from QtRadio, then it is possible to add multiple decoders! Think adding markers on the screen to see multiple CW conversations kind of like cwskimmer. It is currently possible to add multiple decoders, but they all feed off of the same audio stream.
QtRadio ui-testing on OSX with Multimon Decode
I have added my initial changes on GitHub, very rough hacks to get it going -
Known Issues -
- Without Audio.cpp change QtRadio crashes on startup, possibly related to the next issue
- Samplerate at 8000 crashes QtRadio
- Samplerate at 48000 usually produces choppy audio on internet servers
- PulseAudio isn’t really used at this point? I haven’t bothered to set it up or start it, just built/installed to satisfy dependencies, looks like QtRadio is using native audio access?
- Shortcut keys don’t work
- My hack for removing Powermate is not proper, need to fix asap.
A lot has changed since the last time I tried to build QtRadio on OSX. Over the past few months there were changes in Qt (Now 5.1 beta), homebrew added more libraries, and OSX 10.8 changed some of the dev tools/environment.
The rough process is -
- Install required libraries via Homebrew
- Install pulseaudio 3 via Homebrew script on GitHub
- Install Qt5.1 beta (dmg file on qt-project.org)
- Clone ghpsdr3-alex
- Make minor source changes – Comment out powermate (I switched the win32 comments for testing), make one minor change in Audio.cpp (not sure what it does, but it crashes without the change).
Build via QtCreator -or command line after qmake- and…
It works! QtRadio on OSX 10.8
QtRadio has come a long way, and now people are starting to add additional features that need space for GUI widgets. To accomodate all the variables for layout – screen size, hardware performance, and hardware-specific panels, I have suggested using a fluid layout and docking widgets. This concept has been used in many programs over the years, and is actually built in to the Qt libraries we have already been using this entire time.
After a couple hours of hacking on example applications I added some dock areas and converted some of the QtRadio screens in to docking widgets. With a few hours of work I now have the server list docked and working with a fluid layout, hardware panels dock and work with a fixed layout (bad), and to test how easy it is to consume other existing, more complicated widgets, I added in the Reverse Beacon client from DL6KBG’s standalone QtRadioManager logging application.
Being able to move things around and dock widgets is great, but not if we can’t save the layout! I added a “Window” menu to QtRadio that allows us to save and load layout files. This way we can ship QtRadio with some predefined layouts, and those with tiny screens or huge screens can adjust their layout to suit their needs.
These changes are all proof-of-concept at the moment, but once the initial bugs are ironed out I hope to have them pulled in to the master branch in the coming weeks. There are ideas for other widgets, like a PSK terminal, and I’m hoping more will come.
I would like to take a longer look at QPlugins and the Qt plugin interface, with the dream that we could have plugins loaded/unloaded at will (or with a layout) to expand functionality without affecting the core QtRadio code.
QtRadio with Dock Widgets - Server List, Hardware Panel, and DL6KBG Reverse Beacon.
Each time I install Linaro and QtRadio on a Pandaboard I say I am going to document it…this time I did! On top of that, I went ahead and documented the installation of most of the popular SDR software that one would want to use.
Here I present the first revision (so new I’m still filling in TODO areas) of the Pandaboard ES SDR Installation Guide You can always find a link to the latest revision in the main menu bar of this site.
As time goes on and I experiment more with each piece of software I am planning to add a configuration section for each program.
Here is a list of what gets installed with the current guide -
- Linaro ALIP Image
- Pandaboard PowerVR SGX drivers/OpenGL ES
- ghpsdr3-alex trunk (dspserver, hardware servers, check to see if you need a different branch to run your RF hardware)
- Softrock/HPSDR USB setup
- Powermate USB setup for QtRadio
The SoftRockRXTX 40,30,20 kit is up and running! WSPRing at 1W from my inverted V wire dipole.
TX record so far is ~2400km, RX is over 15,000km (as reported on wsprnet.org)
As luck would have it, I located another Pandaboard ES on eBay that was a steal of a deal, so instead of ODROID as I originally intended for this rig, I have another Pandaboard ES that is running the new rig. I’m thinking about an sdr-widget to round it out, but I haven’t committed the funds just yet. For now I’m using an old USB sound card from Creative that is doing OK…but not close to the widget performance!
Progress has been slow. Most of the time, when available, goes towards testing TX. I’m pretty certain the issue is now narrowed down to a bad FST switch on the mobo. The unit does go in to transmit after I replaced the defective BS170 on the SR6.3ng, but I only get 0.02W output instead of ~4+W. Recent posts on the mailing list have turned up others with similar issues that also were narrowed down to a dead FST ic on the mobo.
Parts for that repair are now on the way. In the mean time…
I wanted to get another HF receiver to use as a personal ‘reference’ when testing and calibrating my Mobo project. Naturally a SoftRock RX fits the bill, and it is also how many suggest beginning the Mobo project. After taking a look at what was currently for sale at KB9YIG’s website, I got hooked… and now there is a SoftRock RXTX Ensemble on it’s way to compliment the Mobo project. I already have a case and some ideas for what I want to do with the Ensemble, so expect to hear about it more in the future.
More progress! Last weekend I grabbed a 6-32 tap and some socket head cap screws from the hardware store and properly mounted the HF Packer v4 amp and UT5JCW 2m transverter.
The goal for this weekend is final mounting for the LDG tuner, front panel layout for tuner controls, amp controls, encoder, power connections, and making cables.
Below are some pictures of the progress…
A Mounting Mockup
Mounting Mockup Close-up
Mounting Mockup - Below Tuner
HF Packer v4 amp on custom heatsink
With only the VHF transverter and HF amplifier left for mounting, and no good used heatsinks hanging around the house, I decided to make my own heatsinks this weekend.
The company I work for – Presentations, Inc. – Has a CNC router (a ShopBot that I converted to Mach3 & Gecko drives) and we just happened to have some scrap 3/8″ aluminum in the shop, leftovers from a recent project. After getting the ok to use the aluminum for my personal project I sat down and designed two heatsinks in CAD. The smaller one is for the VHF transverter, and the larger one is for the HF amplifier. The design is just a series of 1/4″x1/4″ grooves in the 3/8″ aluminum, with some extra material left at the bottom to tap in to for mounting in the case. The design works out nicely because the router bit that I used to cut the material was also 1/4″. Cutting was fairly un-eventful with our modified ShopBot cutting right through the aluminum in .02″ passes. Some aluminum cutting fluid was added part way through the cut to help cool the bit.
Custom Heatsinks - CNC Router
After some fairly quick cleanup I was left with two decent looking heatsinks! As soon as I got home I went down to the workbench and mounted the transverter. It’s a perfect fit.
VHF Transverter Heatsink
Earlier this morning, Mike, SV5BYR left a comment on my 2m transverter post. It turns out he has one of the same transverters and had already tried it out – with great results. You can read his review over on his blog - http://sv5byr.blogspot.gr/2012/07/my-2m-transverter.html
Here is what he has to say -
I think that this small transverter is a diamond.
Here is a photo of his transverter -
SV5BYR's UT5JCW 2m Transverter