Close

Hack Chat Transcript, Part 2

A event log for Learning DSP and SDR Hack Chat

To the frequency domain, and beyond

Dan MaloneyDan Maloney 11/11/2020 at 21:050 Comments
Marc Lichtman12:28 PM

Ettus support is fantastic from my experience

Marc Lichtman12:28 PM
and I don't have any affiliations with them

Marc Lichtman12:29 PM
and LimeSDR support has been like super bad, I had a couple bricked Limes early on

perronemajr12:29 PM
And part of that: is there a good way to map out the power output as a function of frequency?

Marc Lichtman12:29 PM
from my experience

miek12:29 PM
@Aaron a lot of FPGAs include DSP blocks that are good for implementing FIR filters

Marc Lichtman12:29 PM
sorry if there are Lime folks here

Marc Lichtman12:29 PM
I'll have to look into that NMR app later

Marc Lichtman12:29 PM
hadnt seen it before

Marc Lichtman12:30 PM
keep in mind, when someone uses a certain SDR for a certain app, 99% of the time they could have used a different SDR

Marc Lichtman12:30 PM
so it really comes down to being familiar with the API

Marc Lichtman12:30 PM
and having code examples and such

perronemajr12:30 PM
NMR is super useful for my work so it def caught my attention

Thomas Shaddack12:30 PM
looks like there's a range of possibilities with various rf-freq measurement of materials.

Marc Lichtman12:30 PM
yeah I wouldn't put much emphasis on the LimeSDR part

Marc Lichtman12:30 PM
they probably could have used several other SDRs

perronemajr12:30 PM
Point taken

Marc Lichtman12:30 PM
SDRs are very general purpose

Aaron12:31 PM
Will this chat transcript be available later?

@perronemajr - Any idea how old that NMR article is? Might make a good Hackaday writeup if it's still pretty fresh.

Marc Lichtman12:31 PM
and like I said, the way I usually use them is to deliver the baseband IQ samples to my host machine, where they get processed

perronemajr12:31 PM
That's why I asked if there was a good way of mapping the power output

Marc Lichtman12:31 PM
I only rarely modify the FPGA on the SDR itself

perronemajr12:31 PM
because if you can map it out for hackrf one then you can use that instead

@Aaron - Yes, absolutely. I'll post it right after the chat.

Marc Lichtman12:31 PM
yeah and another SDR uses the same FPGA or RFIC then there's less work to do

Aaron12:31 PM
Great, Thanks! Some of us are still at work.. shhhh... =)

clint.cole12:31 PM
Thanks Dan

Marc Lichtman12:31 PM
or if the app didn't involve modifying the FPGA, you can probably sub them out with little effort

Marc Lichtman12:32 PM
like if all the DSP is happening on the host machine, its easy to swap SDRs

Marc Lichtman12:32 PM
the SDR is just a frequency-agile receiver (or transmitter) in that case

perronemajr12:32 PM
I think it did modify the FPGA, according to the paper written

Marc Lichtman12:32 PM
yeah

perronemajr12:32 PM
Will check again though

Marc Lichtman12:32 PM
so then you would want to check how big an FPGA is needed

perronemajr12:32 PM
And look for ways around

Marc Lichtman12:32 PM
like the PlutoSDR has almost no room left on the FPGA for custom stuff

Marc Lichtman12:32 PM
but USRP B210 I think has a lot of room

Marc Lichtman12:33 PM
not sure about HackRF

Marc Lichtman12:33 PM
bigger FPGAs cost a lot more

Marc Lichtman12:33 PM
so when you see more expensive SDRs, that might be one reason, larger FPGA

Marc Lichtman12:33 PM
I like to do my DSP on the host side, for the sake of rapid development

Marc Lichtman12:33 PM
but if you need to do some DSP at "high rate", sometimes it has to be done on the FPGA

perronemajr12:33 PM
What's a good budget SDR with an FPGA at least as large as the one lime has?

Barry Duggan12:34 PM
using GNU Radio, I swap between USRP B200mini and a Pluto with almost zero effort for transmit and receive

Marc Lichtman12:34 PM
yeah GNU Radio is all about doing DSP on the host, until you get into RFNoC

Marc Lichtman12:34 PM
I dont know exactly how large the Lime's is, but considering the price its probably on the smaller end

Marc Lichtman12:34 PM
you can see how many LUTs or however they measure the size of the FPGA

Michael Brown joined the room.12:34 PM

Marc Lichtman12:35 PM
its an Intel, not Xilinx, so might be harder to compare, not sure

perronemajr12:35 PM
Wikipedia is great: https://en.wikipedia.org/wiki/List_of_software-defined_radios checking now

Marc Lichtman12:35 PM
FPGA development is like a whole other thing =P

Marc Lichtman12:35 PM
lots of jobs out there for FPGA devs, if any students are in the chat

Michael Brown12:35 PM
Makes me want to ask, the BladeRF Micro has two choices between 40k and 300k LEs. Any idea what kind of applications would require the much larger chip?

Jeffrey Forbes12:35 PM
Have you tried the pynq board for python to fpga?

Marc Lichtman12:35 PM
get good with FPGA dev, and learn DSP basics (eg with www.pysdr.org) and you'll have a lot of opportunities

Michael Brown12:36 PM
40k already "feels" like a lot but I imagine the DSP gets very heavy on resource usage

perronemajr12:36 PM
Doesn't list one for hackrf; perhaps it doesn't have one? Or maybe it's just very small

Marc Lichtman12:36 PM
any app that requires a lot of DSP on the FPGA will need the larger one. The smaller one has just enough room for the existing code, I believe, it's not intended to add much to

miek12:36 PM
the HackRF just has a very small CPLD for glue logic, no FPGA

Marc Lichtman12:36 PM
oh ok

Marc Lichtman12:37 PM
yeah I mean most of the apps I made did not involve adding to the FPGA

Marc Lichtman12:37 PM
I always prefer not to do FPGA dev, unless its necessary

Marc Lichtman12:37 PM
in fact i like to stay within Python, where most folks use C/C++ for SDR apps

Marc Lichtman12:37 PM
so I prefer SDRs with good Python APIs, which most have

Marc Lichtman12:38 PM
usually the heavy lifting it done in C, and they use pybind or something for the Python API

Marc Lichtman12:38 PM
so dont think you are going to have a huge performance hit by using Python for your SDR app

Marc Lichtman12:38 PM
like most numpy functions are implemented in C, and very performant

Aaron12:38 PM
It will depend on the device installed on.

Marc Lichtman12:38 PM
RE "40k already "feels" like a lot but I imagine the DSP gets very heavy on resource usage" dont forget about everything the company had to add

Marc Lichtman12:39 PM
yeah for sure

Aaron12:39 PM
I tried using the Raspberry Pi, it was SLOW..

Marc Lichtman12:39 PM
yeah I like to use x86 platforms whenever I can, for rapid development sake

Thomas Shaddack12:39 PM
rpi 3 or 4?

Marc Lichtman12:39 PM
Ive been enjoying using these x86 based single board computers that have either Atoms or full Core CPUs on them

perronemajr12:39 PM
Could the DSP be moved to the computer instead of FPGA? for NMR or EPR real time isn't needed; just needs to scan through the frequencies

Michaël Stilmant12:39 PM
About Pi I was jsut on that page: The SDR Linux Distro for Raspberry Pi https://pisdr.luigi.ltd/

Marc Lichtman12:39 PM
"Could the DSP be moved to the computer instead of FPGA" Always!!!!

Marc Lichtman12:40 PM
just depends how many samples you want to pump through

perronemajr12:40 PM
Well that's encouraging: I'll take a look

Marc Lichtman12:40 PM
a given realtime app can usually be performed near-realtime by using CPU instead of FPGA

Barry Duggan12:40 PM
I can do the basic GNU Radio stuff on an rPi, but it can be overloaded with higher sample rates

Aaron12:40 PM
I started making an SDR image for the PI.. Great idea! I would love to try someone elses..

Marc Lichtman12:40 PM
and i would recommend that if you're a hobbyist, you can always port the functionality to the FPGA later

Marc Lichtman12:41 PM
I've done stuff on the Pi, but I usually do the development on a powerful machine, then make sure it can run fast enough on the Pi

Marc Lichtman12:41 PM
its just more rapid development that way

Aaron12:41 PM
True..

Whitney Knitter12:41 PM
As someone looking to move the functionality out of the CPU/PC into the FPGA, what resources do people recommend?

Marc Lichtman12:41 PM
well you'll need to learn FPGA development

Marc Lichtman12:42 PM
so might want to start with a dev kit for whatever ecosystem you plan to use (e.g. Vivado)

Marc Lichtman12:42 PM
like an Artix based board, which can be had for less than $100

Aaron12:42 PM
Plus there are several companies. You have to stick with the one that has the most for your application.

Marc Lichtman12:42 PM
you can use the free Vivado license if your FPGA is small enough

Marc Lichtman12:42 PM
yeah figure out which FPGA you will have to target

Aaron12:42 PM
Like Altera, I use them, but xilinx has some features that seem better for certain applications.

Marc Lichtman12:42 PM
like switching from Xilinx to Intel is unlike any other switch I can think of

Marc Lichtman12:42 PM
Intel/Altera

Aaron12:43 PM
I am excited they bought Altera..

fid12:43 PM
During remoticon I set up the PiSDR on a RasPi3 and it runs nicely.

Marc Lichtman12:43 PM
yeah same

Aaron12:43 PM
I can't wait to try GNU Radio on the pi 4..

Marc Lichtman12:43 PM
in the SDR world, Xilinx has been the dominant force

Marc Lichtman12:43 PM
as well as US gov

Jeffrey Forbes12:43 PM
AMD recently bought xilnix

Marc Lichtman12:43 PM
the SDRs that use Intel/Altera did it to save money =P

Marc Lichtman12:44 PM
yeah AMD has been insane lately

kiggins.chris12:44 PM
Gnu radio + rpi4 = personal space heater

Marc Lichtman12:44 PM
they are crushing it on all fronts

Barry Duggan12:44 PM
for a pre-built ISO image for GNU Radio for rPi, look at https://github.com/luigifcruz/pisdr-image

Aaron12:44 PM
You also have to make sure your FPGA dev board has enought memory for what you need to do.

Aaron12:44 PM
Thanks Barry.. I am going to try that!

Jeffrey Forbes12:44 PM
The AMD CEO knows what she is doing.

Marc Lichtman12:44 PM
from a branding perspective, Altera switched to Intel, but I doubt Xilinx will switch their branding

Marc Lichtman12:45 PM
I think it was because Altera was losing the race and Intel had always been a big name

Thomas Shaddack12:45 PM
what about synchronization of multiple receivers? antenna arrays, time-of-arrival passive radars...?

Marc Lichtman12:45 PM
well when I suggested FPGA dev board, that was purely for learning FPGA dev

fid12:45 PM
@kiggins.chris :-D That's the reason I have a fan on the RasPi3.

Whitney Knitter12:45 PM
What about tips specifically for implementing DSP in HDL?

Marc Lichtman12:45 PM
i wouldnt get too caught up in the capabilities of the dev board, since you will likely be switching to the FPGA onboard your SDR

Marc Lichtman12:45 PM
"what about synchronization of multiple receivers? antenna arrays, time-of-arrival passive radars...?" yeah thats an important consideration

Barry Duggan12:46 PM
Aaron: it also has some other good apps with it

Marc Lichtman12:46 PM
I've done work using USRP X310's that were synced over PPS/10MHz, and also work with SDRs synced over GPS

Marc Lichtman12:46 PM
I don't have tips for implementing DSP in HDL =P

Marc Lichtman12:46 PM
learn DSP from a conceptual/algorithmic POV

Marc Lichtman12:46 PM
then also get good with FPGA dev

Marc Lichtman12:47 PM
When you start talking about getting multiple coherent channels using SDRs, you get into the more expensive SDRs (unless you just need 2 channels which the B210 can do)

Marc Lichtman12:47 PM
and that coherency is required for angle-of-arrival and phased arrays

WaWT12:47 PM
What types of AI/ML techniques or algorithms have you implemented in SDR? What kind of benefits/improvements do they provide?

Marc Lichtman12:48 PM
I've done quite a bit of ML apps, but they were always implemented at the host side

Marc Lichtman12:48 PM
since the ML tends to happen at the end of the chain, after any DSP preprocessing and such

Thomas Shaddack12:48 PM
can a syncing signal be added to the input signals and then numerically isolated?

Marc Lichtman12:48 PM
I mean folks have implemented stuff like DNN inference into FPGAs

Marc Lichtman12:49 PM
well even with a syncing signal you still need coherent receivers

Marc Lichtman12:49 PM
the sync signal will fix any constant phase shift that might exist

Marc Lichtman12:49 PM
but the sync signal is usually over a wire, right?

perronemajr12:49 PM
Are SDR outputs delicate to reflected waves? for NMR you basically need to put the transmitter and reciever in a Faraday cage together which means the amplitudes can get pretty high

Marc Lichtman12:49 PM
because otherwise it might reach the two apertures at different times

Marc Lichtman12:49 PM
"Are SDR outputs delicate to reflected waves" yes!!! make sure if you are transmitting, you use a well-matched antenna

perronemajr12:50 PM
Is it possible to use the reciever as a sink for the energy?

Marc Lichtman12:50 PM
oh but in a faraday cage your reflections shouldnt be that high

Marc Lichtman12:50 PM
hmm good question

Thomas Shaddack12:50 PM
can be wire, can be laser, can be separate radio channel, can be third-party transmitter, can be something gps-derived...

Marc Lichtman12:50 PM
if you end up receiving at too high a level, just stick an attenutator on the rx port

Thomas Shaddack12:50 PM
in faraday cage the reflections can be sky-high. see microwave oven. but it could be lined by a rf absorber.

perronemajr12:51 PM
^

Marc Lichtman12:51 PM
but high compared to a poorly matched antenna that reflects half the power back?

perronemajr12:51 PM
You'd basically be getting all the power back

Marc Lichtman12:51 PM
I guess im confusing rx and tx sides of the SDR which have different hardware

Marc Lichtman12:51 PM
oh geez, yeah def add an attenuator to the rx side then

perronemajr12:52 PM
Especially in NMR where you're resonating the material

Jeffrey Forbes12:52 PM
Transmitter / receiver switching for NMR is a solved problem.

Marc Lichtman12:52 PM
the SDR data sheets usually have a max input on the RF connector in dBm

perronemajr12:52 PM
Got it; attenuator was the search term I needed

Whitney Knitter12:52 PM
When designing an SDR, do you recommend starting with the tx side or rx side? Why?

Thomas Shaddack12:52 PM
what about radar? something pretty cool could be pinging the moon.

Marc Lichtman12:52 PM
designing an SDR, or SDR app?

Marc Lichtman12:53 PM
also did that NMR app include an added T/R switch?

Marc Lichtman12:53 PM
or did they just use the TX and RX ports separately

Whitney Knitter12:53 PM
An SDR, hardwire and softwaer

Marc Lichtman12:53 PM
if you are interested in designing an SDR itself, I would join whatever the largest open source hardware project is

Marc Lichtman12:54 PM
it's an enormous task

perronemajr12:54 PM
@Thomas Shaddack https://www.technologyreview.com/2019/08/23/75512/quantum-radar-has-been-demonstrated-for-the-first-time/ cool stuff, don't know why they mentioned it considering certain things...

AVR (lordKiCAD)12:54 PM
what if you just shit out PCBs like its no thing ?

Aaron12:54 PM
Yet, china sells the chips for pennies... LOL

Marc Lichtman12:54 PM
anyone know what the biggest open hardware SDR project is?

perronemajr12:54 PM
That's why I mentioned squeezed states

Marc Lichtman12:54 PM
yeah if you just want an SDR, buy one, lol

Jeffrey Forbes12:54 PM
With NMR there is typically only one coil for transmit and receive.

Marc Lichtman12:54 PM
but I would avoid the chinese clones if it's your first SDR

Aaron12:55 PM
Agreed... What is the larges SDR open source project?

Marc Lichtman12:55 PM
for learning DSP, and how to use SDRs, definitely start with the RX side

Marc Lichtman12:55 PM
now keep in mind, stuff like USRPs have their schematics publicly available, and firmware is open source

Aaron12:55 PM
Besides GNU radio?

Marc Lichtman12:56 PM
well GNU Radio is the software/DSP/GUI side of the SDR app

perronemajr12:56 PM
@Jeffrey Forbes Seems to be, just wasn't aware of that stuff, being more in physics than electrical eng.

Mark12:56 PM
For DSP? Or for hardware?

Mark12:56 PM
Anyone looked at HPSDR?

Marc Lichtman12:56 PM
GNU Radio competitors include Pothos(sp?) and maybe Red Hawk

michael.vieau joined the room.12:56 PM

Marc Lichtman12:56 PM
but you don't need a framework like GNU Radio to create an SDR app

Marc Lichtman12:57 PM
GNU Radio just makes it easier to re-use other people's work, and share your work

Aaron12:57 PM
HackRF is open source...

Marc Lichtman12:57 PM
so you dont have to reinvent the wheel

Marc Lichtman12:57 PM
yeah but it's still company-driven right

Marc Lichtman12:57 PM
are there any community lead ones?

AVR (lordKiCAD)12:57 PM
I wanted to do one around the AD9375

Marc Lichtman12:58 PM
I guess the short answer is, I wouldn't waste time designing/building an SDR unless that's what you are passionate about

AVR (lordKiCAD)12:58 PM
the board design wouldn't be that challenging for me

perronemajr12:58 PM
@Whitney Knitter def start with rx because accidentally transmitting in bands reserved for military applications gets ugly fast

Aaron12:58 PM
Do you have answers for this? Or asking if we know? *waiting for the answer impatiently..*

Marc Lichtman12:58 PM
keep in mind, a big part of the SDR is its firmware/driver

Marc Lichtman12:58 PM
which question?

Marc Lichtman12:58 PM
"What is the larges SDR open source project?"?

Aaron12:59 PM
yes

Marc Lichtman12:59 PM
it's too vague a question imo, depends which side you're talking about

perronemajr12:59 PM
@Jeffrey Forbes Interesting how is that done with tx and rx? Just measure the resonance somehow?

perronemajr12:59 PM

Discussions