11/11/2020 at 21:07 •
I mean without
do you mean SDR hardware project?
like community-lead open source hardware
OK, that was a jam-packed hour! Gonna be a chore to get this transcript posted, that's for sure. But that's a good problem to have. I want to thank Marc for being here today and for this informative and fun Hack Chat. I really appreciate the time today, Marc, thanks so much. And to everyone who attended, same to you -- you made this a great Hack Chat! Feel free to keep the chat going, of course - the Hack CHat is always here for you!
Don't forget that next week we have a Chat that was rescheduled from October:
Leo Fernekes will host the Hack Chat on Wednesday, November 18, 2020 at noon Pacific Time. (Note that this is rescheduled from the original 10/14 date -- we had a little time zone snafu. -- ed) Time zones got you down? Here's a handy time converter!
Yeah glad to have hosted a Hack Chat!
Hello everyone. Are there SDR software dedicated for digital signals decoding?
thanks for having me
GNU Radio! =)
Pulse NMR, Apply a transmitter pulse then receive the emitted signal
GNU Radio has flowgraphs/blocks for many different comms protocols
...and everyone else for their comments!
Yeah I didn't realize this awesome community existed, I had just known about hackaday from the articles
Thanks. need to check that.
@Marc Lichtman - If you're asking about the user-side, ADSB/FlightAware has a lot of folks contributing radio telemetry of aircraft locations
Thanks marc! Github is the best way to keep the discussion then?
www.pysdr.org, I just recently finished the first version so there might be room for improvement, and I'm always looking for helpfeel free to check out the textbook,
@Marc Lichtman IMO, Open Hardware is more of a myth, it will never take of, like Open Software, so don't put much hope in an open HW SDR.
@fid -- I'll be posting a transcript in a few minutes in case you missed anything
how different (for learning the very basics) is DSP for audio and for rf?
@Jeffrey Forbes Thanks!
@Aaron 's questionOh, sorry, that was
"how different (for learning the very basics) is DSP for audio and for rf?" tons of similarities
but when you get into comms stuff its all new
11/11/2020 at 21:05 •
Ettus support is fantastic from my experience
and I don't have any affiliations with them
and LimeSDR support has been like super bad, I had a couple bricked Limes early on
And part of that: is there a good way to map out the power output as a function of frequency?
from my experience
@Aaron a lot of FPGAs include DSP blocks that are good for implementing FIR filters
sorry if there are Lime folks here
I'll have to look into that NMR app later
hadnt seen it before
keep in mind, when someone uses a certain SDR for a certain app, 99% of the time they could have used a different SDR
so it really comes down to being familiar with the API
and having code examples and such
NMR is super useful for my work so it def caught my attention
looks like there's a range of possibilities with various rf-freq measurement of materials.
yeah I wouldn't put much emphasis on the LimeSDR part
they probably could have used several other SDRs
SDRs are very general purpose
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.
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
That's why I asked if there was a good way of mapping the power output
I only rarely modify the FPGA on the SDR itself
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.
yeah and another SDR uses the same FPGA or RFIC then there's less work to do
Great, Thanks! Some of us are still at work.. shhhh... =)
or if the app didn't involve modifying the FPGA, you can probably sub them out with little effort
like if all the DSP is happening on the host machine, its easy to swap SDRs
the SDR is just a frequency-agile receiver (or transmitter) in that case
I think it did modify the FPGA, according to the paper written
Will check again though
so then you would want to check how big an FPGA is needed
And look for ways around
like the PlutoSDR has almost no room left on the FPGA for custom stuff
but USRP B210 I think has a lot of room
not sure about HackRF
bigger FPGAs cost a lot more
so when you see more expensive SDRs, that might be one reason, larger FPGA
I like to do my DSP on the host side, for the sake of rapid development
but if you need to do some DSP at "high rate", sometimes it has to be done on the FPGA
What's a good budget SDR with an FPGA at least as large as the one lime has?
using GNU Radio, I swap between USRP B200mini and a Pluto with almost zero effort for transmit and receive
yeah GNU Radio is all about doing DSP on the host, until you get into RFNoC
I dont know exactly how large the Lime's is, but considering the price its probably on the smaller end
you can see how many LUTs or however they measure the size of the FPGA
its an Intel, not Xilinx, so might be harder to compare, not sure
FPGA development is like a whole other thing =P
lots of jobs out there for FPGA devs, if any students are in the chat
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?
Have you tried the pynq board for python to fpga?
www.pysdr.org) and you'll have a lot of opportunitiesget good with FPGA dev, and learn DSP basics (eg with
40k already "feels" like a lot but I imagine the DSP gets very heavy on resource usage
Doesn't list one for hackrf; perhaps it doesn't have one? Or maybe it's just very small
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
the HackRF just has a very small CPLD for glue logic, no FPGA
yeah I mean most of the apps I made did not involve adding to the FPGA
I always prefer not to do FPGA dev, unless its necessary
in fact i like to stay within Python, where most folks use C/C++ for SDR apps
so I prefer SDRs with good Python APIs, which most have
usually the heavy lifting it done in C, and they use pybind or something for the Python API
so dont think you are going to have a huge performance hit by using Python for your SDR app
like most numpy functions are implemented in C, and very performant
It will depend on the device installed on.
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
yeah for sure
I tried using the Raspberry Pi, it was SLOW..
yeah I like to use x86 platforms whenever I can, for rapid development sake
rpi 3 or 4?
Ive been enjoying using these x86 based single board computers that have either Atoms or full Core CPUs on them
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
"Could the DSP be moved to the computer instead of FPGA" Always!!!!
just depends how many samples you want to pump through
Well that's encouraging: I'll take a look
a given realtime app can usually be performed near-realtime by using CPU instead of FPGA
I can do the basic GNU Radio stuff on an rPi, but it can be overloaded with higher sample rates
I started making an SDR image for the PI.. Great idea! I would love to try someone elses..
and i would recommend that if you're a hobbyist, you can always port the functionality to the FPGA later
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
its just more rapid development that way
As someone looking to move the functionality out of the CPU/PC into the FPGA, what resources do people recommend?
well you'll need to learn FPGA development
so might want to start with a dev kit for whatever ecosystem you plan to use (e.g. Vivado)
like an Artix based board, which can be had for less than $100
Plus there are several companies. You have to stick with the one that has the most for your application.
you can use the free Vivado license if your FPGA is small enough
yeah figure out which FPGA you will have to target
Like Altera, I use them, but xilinx has some features that seem better for certain applications.
like switching from Xilinx to Intel is unlike any other switch I can think of
I am excited they bought Altera..
During remoticon I set up the PiSDR on a RasPi3 and it runs nicely.
I can't wait to try GNU Radio on the pi 4..
in the SDR world, Xilinx has been the dominant force
as well as US gov
AMD recently bought xilnix
the SDRs that use Intel/Altera did it to save money =P
yeah AMD has been insane lately
Gnu radio + rpi4 = personal space heater
they are crushing it on all fronts
You also have to make sure your FPGA dev board has enought memory for what you need to do.
Thanks Barry.. I am going to try that!
The AMD CEO knows what she is doing.
from a branding perspective, Altera switched to Intel, but I doubt Xilinx will switch their branding
I think it was because Altera was losing the race and Intel had always been a big name
what about synchronization of multiple receivers? antenna arrays, time-of-arrival passive radars...?
well when I suggested FPGA dev board, that was purely for learning FPGA dev
@kiggins.chris :-D That's the reason I have a fan on the RasPi3.
What about tips specifically for implementing DSP in HDL?
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
"what about synchronization of multiple receivers? antenna arrays, time-of-arrival passive radars...?" yeah thats an important consideration
Aaron: it also has some other good apps with it
I've done work using USRP X310's that were synced over PPS/10MHz, and also work with SDRs synced over GPS
I don't have tips for implementing DSP in HDL =P
learn DSP from a conceptual/algorithmic POV
then also get good with FPGA dev
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)
and that coherency is required for angle-of-arrival and phased arrays
What types of AI/ML techniques or algorithms have you implemented in SDR? What kind of benefits/improvements do they provide?
I've done quite a bit of ML apps, but they were always implemented at the host side
since the ML tends to happen at the end of the chain, after any DSP preprocessing and such
can a syncing signal be added to the input signals and then numerically isolated?
I mean folks have implemented stuff like DNN inference into FPGAs
well even with a syncing signal you still need coherent receivers
the sync signal will fix any constant phase shift that might exist
but the sync signal is usually over a wire, right?
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
because otherwise it might reach the two apertures at different times
"Are SDR outputs delicate to reflected waves" yes!!! make sure if you are transmitting, you use a well-matched antenna
Is it possible to use the reciever as a sink for the energy?
oh but in a faraday cage your reflections shouldnt be that high
hmm good question
can be wire, can be laser, can be separate radio channel, can be third-party transmitter, can be something gps-derived...
if you end up receiving at too high a level, just stick an attenutator on the rx port
in faraday cage the reflections can be sky-high. see microwave oven. but it could be lined by a rf absorber.
but high compared to a poorly matched antenna that reflects half the power back?
You'd basically be getting all the power back
I guess im confusing rx and tx sides of the SDR which have different hardware
oh geez, yeah def add an attenuator to the rx side then
Especially in NMR where you're resonating the material
Transmitter / receiver switching for NMR is a solved problem.
the SDR data sheets usually have a max input on the RF connector in dBm
Got it; attenuator was the search term I needed
When designing an SDR, do you recommend starting with the tx side or rx side? Why?
what about radar? something pretty cool could be pinging the moon.
designing an SDR, or SDR app?
also did that NMR app include an added T/R switch?
or did they just use the TX and RX ports separately
An SDR, hardwire and softwaer
if you are interested in designing an SDR itself, I would join whatever the largest open source hardware project is
it's an enormous task
@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...
what if you just shit out PCBs like its no thing ?
Yet, china sells the chips for pennies... LOL
anyone know what the biggest open hardware SDR project is?
That's why I mentioned squeezed states
yeah if you just want an SDR, buy one, lol
With NMR there is typically only one coil for transmit and receive.
but I would avoid the chinese clones if it's your first SDR
Agreed... What is the larges SDR open source project?
for learning DSP, and how to use SDRs, definitely start with the RX side
now keep in mind, stuff like USRPs have their schematics publicly available, and firmware is open source
Besides GNU radio?
well GNU Radio is the software/DSP/GUI side of the SDR app
@Jeffrey Forbes Seems to be, just wasn't aware of that stuff, being more in physics than electrical eng.
For DSP? Or for hardware?
Anyone looked at HPSDR?
GNU Radio competitors include Pothos(sp?) and maybe Red Hawk
but you don't need a framework like GNU Radio to create an SDR app
GNU Radio just makes it easier to re-use other people's work, and share your work
HackRF is open source...
so you dont have to reinvent the wheel
yeah but it's still company-driven right
are there any community lead ones?
I wanted to do one around the AD9375
I guess the short answer is, I wouldn't waste time designing/building an SDR unless that's what you are passionate about
the board design wouldn't be that challenging for me
@Whitney Knitter def start with rx because accidentally transmitting in bands reserved for military applications gets ugly fast
Do you have answers for this? Or asking if we know? *waiting for the answer impatiently..*
keep in mind, a big part of the SDR is its firmware/driver
"What is the larges SDR open source project?"?
it's too vague a question imo, depends which side you're talking about
@Jeffrey Forbes Interesting how is that done with tx and rx? Just measure the resonance somehow?
- 11/11/2020 at 21:04 • 0 comments
OK all, big crowd today. A warm welcome to all of you who came over via RTL-SDR.com, and to everyone else. I'm Dan, a staff writer here at Hackaday, and I'll be the mod today for Dr. Marc Lichtman as we dive into Learning SDR and DSP!
Welcome, Marc! Can you tell us a little about your background to start us off?
My name is Marc Lichtman and I wear three different hats- 1) I'm an adjunct prof at University of Maryland, within the CS dept, where I teach a course on hands-on SDR, 2) I'm one of the leads for the GNU Radio project, a free and open source SDR framework, and 3) I'm a research engineer at Perspecta Labs as my full time gig where I do a lot of SDR, machine learning, and spectrum sensing related work.
www.pysdr.org, to help teach DSP and SDR concepts in a hands-on and less mathy way, compared to traditional textbooks on the topics. It uses Python for all code examples, and there are some PlutoSDR-specific exercises. And it's based off what I learned teaching my course at UMDI recently put together a free online textbook,
I think that coders and CS students shouldn't feel like they can't dive into DSP and SDR just because they didn't go through a EE graduate program =P
I went through an EE graduate program.. I WISH they went this far... ;)
a large fraction of the actual work being done in DSP/SDR (and jobs), requires good coders, like your typical CS students
hah yeah, you have to be a EE grad student, specializing in wireless/DSP
How do you find the CS students reacting to a hardware topic that at first seems out of the typical CS wheelhouse?
I mean there might be an intro to comms class at the undergrad level, but that's about it
well, the CS students I had didn't have any experience related to the topics, so they needed to be slowly introduced in a hands-on way, that involved a lot of code examples and exercises
it's very foreign to them
luckily, even though an SDR is hardware, what you actually do with it is mostly software
My daughter is studying this for her PhD in Electronics Engineering at Stanford
What's going to be the next great development in SDR? I know I'm seeing it appear in Amateur radio equipment.
ah very nice
What math background did they have at the point they came into your class?
Which is partly why I want to learn about it
I started reading your book and haven't gotten very far yet, but so far you did an excellent job!
Not sure what the next great development is, depends if you are looking at low cost SDRs, or like space-hardened, or stuff focusing on hams
I second that!
but usually ham stuff is at lower sample rates, and it's all about the antenna, from my little xp
so you dont need like the latest and greatest SDR that can do 200 MHz instantaneous bw
What SDR platforms do you use and what can you recommend?
As far as math bg, my course wasn't too mathy so what they had was enough
@Marc Lichtman I have no actual use case. I just like to learn :)
HF bands for hams are not covered very well with existing hardware
I personally spend most of my time with the lower cost SDRs, so your PlutoSDRs and USRP B200/B210
Can you give an overview of what the status of DSP and SDR hardware is? Up to what frequency do they go? When does it make sense to drop a classic hardware implementation for a software defined one?
yeah you need the downconverters like ham-it-up, right?
@Marc Lichtman I believe that is correct.
I have a HackRF and love it... However, there are some Chinese radios that give you the IQ output..
depends how much money you spend, but up to 6 GHz center freq is a common one, because of the mass produced RFICs used in the low-cost SDRs
wow, that high?
For the current crop of RTL-SDR type dongles, yes. But IIRC there are some purpose-built SDRs for the ham bands that don't need downconverters.
remember you have the SDR's RF freq range, and then also it's sample rate range (which is the same as it's bandwidth range)
that works for receive, but there is no equivalent for transmitting - no ham it down :)
hah yeah someone needs to make that
but if you look at what makes an SDR hard to build, its the upper RF freq range, not lower, from what Ive seen
and obviously higher sample rates will cost more
your Plutos and USRP B200's do up to 56 MHz, but there are SDRs that do up to 200 MHz or even higher
RTL-SDRs will always be limited by the chip they are based on, to 2 GHz RF, and 2.4 MHz sample rate, I believe
Sorry for not reading all of your book before this hack chat.. So hopefully our questions are not going to be redundant...
so like for $10 you get 2.4 MHz sample rate, and for $200+ you get 56 MHz
oh I wouldn't expect anyone to have read the book already
www.pysdr.org, free and no adsbut after the chat feel free to check it out,
As a CS person who knows nothing do I need to buy a different antenna than the pluto-sdr comes with to transmit at wifi frequencies?
sorry, a beginners question : is the typical SDR equipment capable of dealing with UWB schemes ?
Personally, I would love to get a good idea of the hardware and software that you use for your testing.
I got to read an early release. great material
what do you mean by UWB
depends how WB
Ultra Wide Band
I use a Pluto and USRP B210 for testing/work, with a variety of antennas
how wide band? =P
they can only do up to 56 MHz, for example, at one time
so thats your limit there
and the RTL-SDR can only do up to 2.4 MHz at one time
My internet is spotty... Not sure if you received this question since it said it failed to send: Personally, I would love to get a good idea of the hardware and software that you use for your testing.
and there probably is a sensitivity issue too
What’s an RTL.
I think that with an amateur license one can do experimental radio at the shorter wavelengths,
software wise, I mostly use Python and GNU Radio
like to create apps
but I still play around with receivers like GQRX and the SATNOGs software stack
What kind of apps?
RTL is the chipset on most USB dongles...
well, drone stuff, LTE surveying, spectrum sensing
it varies over time
some apps are for work, some for fun
Question: I work with a non-profit that does flood monitoring using LoRaWAN-connected sensors; have you (or anyone here) had any experiences using SDRs with LoRaWAN (900MHz)?
sometimes its not actually a standalone app but a piece of software that goes into something else
I don't know how well-maintained it is or how far they got
More info on the RTL2832U chipset: https://www.realtek.com/en/products/communications-network-ics/item/rtl2832u
but something like a PlutoSDR or USRP B210 should be able to tx and rx at 900 Mhz at the sample rates you're talking about just fine
RTL-SDR might be able to rx it? not sure
if you need to tx as well then RTL-SDR won't fly
I have found that GNU Radio is a pain to install for Windows and for Linux. Is there any kind of virtual machine or an image that has everything installed?
Do you suggest any type of math background courses (free hopefully) for understanding the DSP?
Hi Marc, I'm reading your book. I'm a software engineer entering RF area. It's a very good book to start. Thank you. Is there a forum or mailing list for book readers to discuss problems, solutions to the exercises, etc?
@Marc Lichtman gave it a browse already and it looks great! Seems like it covers all the key concepts. My hat off to your book, sir!
For now, the only "not really" spotted is the figure of the Gaussian shape, in the figure from this page https://pysdr.org/content/noise.html That doesn't look like normal distribution to me, but I'm nitpicking, I know
An example of a Gaussian (interactive): https://www.geogebra.org/m/ehkwndma
I think MATLAB is a very good course...
I've been able to see signal with RTL-SDR but haven't gone into any greater depth; thanks for the response.
RE math courses, for my textbook the idea was to get by with very little math, but basics of complex numbers will help, and some trig
and if you want to get into more complex stuff like MIMO you'll need a lot of mutlivar xp
like a lot of matrix math
it depends how deep you want to dive
MATLAB does very well with matrices and is fast..
No mailing list currently, for the textbook, just the github issues/PR pages
so you could use github issue for stuff that isn't actually an issue
yeah I would highly recommend Python over MATLAB if you want to get into SDR
@aaron I just bought one of those 64GB ultra small PCs and made a stand-alone machine. All it does is run GNU Radio off the recommended linux distro.
Python will do whatever you want to do in MATLAB, unless you're talking about comms systems toolbox or something
just as fast
Is anyone doing SDR with JUlia ? Julia will eventualyl replace MATLAB
OK I got instant education on RTL-SDR thks to the link. But is there something you can use for the transmit side at 2GHz-ish frequencies?
I also have it running on my windows PC -- but you're right , it's not trivial to get going.
Hi Marc, I am a CS student and I want to thank you for your really clear and well written course, it provides a good starting point for everyone who want to start with RF stuff. I'm used to using the HackRF for that purpose, is your python module fully compatible with that tool (i'd rather user HackRF than Pluto,
Julia is fast but you want to use a lanuage other people use...
What about Julia? It is free and faster than Python and in many cases Matlab.
So a good start for a receiver that will play well with GNU Radio, what would be your recommendation? On UHF or VHF bands?
What hardware would you recommend for generating and reading squeezed quantum states? Parametric generator and balanced homodyne reciever?
like the speed is not going to make up for the fact that other folks will be using Python and C/C++
I would stick with Python or C/C++ imo
What are some of the applications that someone interested in SDR and DSP could accomplish after reading your book?
MATLAB is OK for simulation only
@curiousmarc - I think HackRF will do that
RE "OK I got instant education on RTL-SDR thks to the link. But is there something you can use for the transmit side at 2GHz-ish frequencies?" look into PlutoSDR and USRP B200
Thx will look it up right now
HackRF One from Great Scott Gadgets is a Software Defined Radio peripheral capable of transmission or reception of radio signals from 1 MHz to 6 GHz. Designed to enable test and development of modern and next generation radio technologies, HackRF One is an open source hardware platform that can be used as a USB peripheral or programmed for stand-alone operation.
RE "Hi Marc, I am a CS student..." my textbook does NOT include a python module
LimeSDR Mini is also quite good.
HackRF will do up to "6GHz".. But the sample rate might not be as fast as others.
I specifically didn't make a python module to go along with my textbook, like other books have done, e.g. Think DSP
yeah i've had issues with LimeSDR's support...
HackRF is good too, its an older one
LimeSDR mini use to be the go-to for low budget, but now I think that has gone to PlutoSDR if you are OK with not doing 100% duty cycle, since its over USB 2.0
GNU Radio is SO powerful..
yeah GNU Radio is great for making SDR apps that you can share with others
or even just specific blocks
RE "What are some of the applications that someone interested in SDR and DSP could accomplish after reading your book?", good question!!! I like to think they can do the kind of stuff I do, like spectrum sensing
what you won't be able to do, is set up an actual comms link
when you get into RX/TX over the air, there are more details that go into it, that I don't cover in my book (yet)
Marc, Do youhkave any knowledge or thoughts of where DARPA funding may take Gnu Radio
like with my book you can simulate a QPSK signal over a wireless channel, but if you actually tried to transmit/receive, you might run into issues
As long as it is still free.. Who cares.. =)
When about to ask the question on projects I did find this page from rtl sdr
What is RTL-SDR? RTL-SDR is a very cheap ~$25 USB dongle that can be used as a computer based radio scanner for receiving live radio signals in your area (no internet required). Depending on the particular model it could receive frequencies from 500 kHz up to 1.75 GHz.
DARPA funding will indirectly help GNU Radio in many ways
including having GNU Radio support heterogeneous platforms like FPGAs/DSPs
@Marc Lichtman - What kind of problems? Legal issues with license requirements?
but a lot of what DARPA does is research-oriented, and a lot of those projects use GNU Radio =)
well legal issues, yeah, but I was thinking more along the lines of equalization
like since you will probably have a strong multipath fading channel
Do they have any FPGAs that are strickly filtering only? As is, RCL?
my textbook covers sync, but not equalization (yet)
they have DSPs that are, not FPGAs per se
but lots of system on chips include both
I mean you can implement a digital filter in an FPGA pretty easily, without taking too much of the fabric
I think an FPGA strictly for filtering should be deisinged.
I don't think it would be an FPGA if it was strictly for filtering
check out the latest RFSoCs from Xilinx
they probably do what you want =)
but they are expensive
Zynq UltraScale+ RFSoCs integrate multi-giga-sample RF data converters and soft-decision forward error correct (SD-FEC) into a MPSoC architecture.
I am sure they are..
Comments on RFNoC?
I think RFNoC is great, and its slowly coming along
it's an Ettus (USRP) thing, if anyone is curious
Once they become cheaper, I am sure we will be seeing a HUGE jump in SDRs..
so not GNU Radio specific, it's more Ettus specific, although GNU Radio supports it
yeah I tend to use SDRs in a way where the samples are delivered to my host machine
Best open SDR on the market ?
versus doing any DSP on the SDR
It sounds like your experience mirrors my own with lime v ettus re:support
- 11/11/2020 at 21:04 • 0 comments