Quantcast
Channel: m0xpd's 'Shack Nasties'
Viewing all articles
Browse latest Browse all 220

Arduino SDR

$
0
0
Here's the latest news from the bench - I have my Arduino DUE running as an SDR receiver...


You will have seen a couple of weeks ago that I had the Arduino DUE running (internally designed) programmable band-pass filters at CD sample rate. Well, I've taken that technology to use as a low-frequency "IF" and added a very computationally-efficient mix down to base-band, all inside the Arduino DUE.

I am currently using an external VFO, running on an Arduino MEGA - but I know there is enough horsepower left in the DUE to control the DDS and the user interface (as well as doing all the DSP for the radio functions), so the MEGA is just a temporary convenience.

Here's the whole shebang labelled for clarity...


RF from the antenna comes into one of my plug-in bandpass filter modules (there's a 40m filter in place in the photo), after which it goes into a rather conventional 602-based mixer. The Arduino-based VFO generates the signal which mixes the signal to the low intermediate frequency band, which is amplified in two-stages by half a quad op-amp. The remaining half of the op-amp is used to implement a 4th-order anti-aliasing filter, which has as close to Butterworth tuning as my available passives allow.

The signal is then passed to my Arduino DUE, which samples the IF at 44.1kHz with one of its internal (12-bit) ADCs. The signal is then filtered and mixed down to audio frequency, where it is output via one of the internal DACs (again 12-bit, 44.1kHz) and onward to an active speaker (actually, into my desktop PC).

Whilst the internal signal processing is conducted at high resolution (32-bit, fixed-point), I had feared that the 12-bit data converters would be such a weak link in the whole process that it wouldn't work - but I shouldn't have worried. Let's just say it is significantly surpassing expectations!

In fact, I discovered a significant flaw in the sampling process in my earlier Arduino DSP experiments which was seriously limiting dynamic range. This fault was generating a whole bunch of "ghost" and "image" signals which made themselves known when I introduced the (software) heterodyne to baseband central to this receiver. It is sorted now. I'm not ready to make any further details of the code public just yet - but will be posting more information as this project progresses (although I'm not yet sure if it will eventually be "open-source").

There is a great deal of exciting DSP potential out there for ham radio applications - I've also been playing with an STM32F407 chip on one of ST Microelectronics' amazingly cheap "Discovery" boards. This has much more "grunt" than the little SAM3X on the Arduino DUE (at under half the price) - but I've got a soft spot for the Arduino family and want to see how far I can take the DUE before succumbing to the temptations of even fancier chunks of silicon.

...-.- de m0xpd

  

Viewing all articles
Browse latest Browse all 220

Trending Articles