SDR is very interesting to me as an old Radio Amateur (HAM), and SDR was kind of magic sauce up till now, you explained it so I can understand how it works a bit better, thanks.
Hi Jon Dawson! Thank you once again for making the pre-compiled file available. I want to apologize for the delay in responding, I was a little busy with college studies. Today I carried out the tests by inserting the code and did a preliminary test. I added the display to the Raspberry Pi Pico and inserted the file and it worked on the first try! Sensational! I will be posting more information here in the future. Thank you very much!
Cool, so glad you got it working! We have a gallery here: github.com/dawsonjon/PicoRX/issues/99#issuecomment-2423709531. If you want to post a picture of your build, would love to see it!
As a returner to the amateur radio hobby, this was fascinating. Thanks for explaining it at basic level without assuming any prior knowledge. Very well presented and I look forward to development and mods. 👍
Delighted to discover a real schematic in the docs link! That blobby diagram tells us nothing if we don't know the pinouts for all the chips involved, it should cede some of its screen time to the proper schematic.
Wow this is amazing, it's a shame the OLED display is so small. Could you make a video running the band to really see how it behaves... Congratulations on the incredible project🎉
I can't resist building this SDR. I related to your comparison of this receiver to the classic crystal radio. I too was hooked on radio after hearing music in the earphone of a simple crystal radio I bought from the Scholastic Book Club when I was in grade school. I seem to recall that this item was more expensive than most of the books and little kits for sale, the number $6 sticks in my mind. When translated into today's dollars, the Pi-Pico radio will cost about the same. I ordered the 3253 mux part but when they came , I learned that I ordered the TSSOP package. I'm not confident that I will be able to solder that tiny package to the adapter board. I looked closer and found that a SOIC version is available also. I ordered the SOIC parts just in case I make a mess of the TSSOP part. I can't wait to get started. Update 9/22/24 I finally found the time to build the receiver. I decided to build it on a solderless breadboard just to try it out. It turns out the soldering the TSSOP part was not as difficult as I feared. I simply applied lots of solder which created one large solder bridge. The excess solder was removed using solder wick and resulted in a nicely soldered part. After carefully assembling all the parts on the breadboard, I applied power via the USB interface, and tuned to a local AM station. Success! Hearing the local AM station was almost as exciting as hearing a jumble of voices and music on my first crystal radio.
Suggestion for those building this: Troll through the available opamps and you likely will be able to find one that has a better noise performance. Remember to look down in the datasheet for the real numbers. The one up in the banner headline is always the "typical" number. As we all know, they shipped those to someone else. Go with the maximum numbers. MCP6022 has a very small noise current but quite a lot of noise voltage. You likely can find one with a bit more noise current and less noise voltage.
I am bookmarking this. I think I just thought of a way to extend the upper frequency range a whole bunch. I will work on the idea this evening and put something here if it looks likely.
Yes definitely, there's nothing particularly special about that op-amp, I'm sure there are plenty with similar specs, better noise performance and lower cost. Especially if you are willing to substitute an smd part.
@@101Things-ds8tc The idea for more high frequencies would work but it seriously increases the parts count 1) A PIO can make a much faster local oscillator but you don't get a large number of frequency choices. 2) A Taylor mixer could mix down from really high to just too high for the ADC. 3) Instead of going straight to the ADC, you amplify, low pass a bit and do 2 more Taylor mixers this time using a more reasonable frequency 4) Doing some math with resistors, you get the I and Q channels for the ADC with the op-amp as you are doing it.
Funny, i was looking at your project at the weekend. Seems that op amp is unobtanium in NZ. They all seem to be in the UK, i wonder why. Nice little project and well documented. Thank you.
Cool, thanks! Hopefully the op-amp won't be a show stopper, I think there must be a quite a few with similar specs, especially if you are willing to use an SMD device with an adaptor. There's always the LT6231 if you don't mind paying a bit extra.
Super awesome! Subscribed ❤ What modifications does this circuit required to add an amplifier and change to transmission mode ? Thanks and all the best!
I'll dig into this channel more, Would love to see this turned into a 2way+ SDR for infrastructure-less mesh communication. If the unit can adjust frequencies modes on the fly and the amplitude based on the provided adhoc power source + antenna, then any device can be made into a powerful relay and extend the network with no hw changes. Not sure if pico runs unix but add pi zero and a touch screen and you got a infa-less cellphone. Imagine not paying mobile isps, serving sites with edge load balancing, a truely free internet could be built on this
@@jediknight2350 I haven't been able to get hold of one yet, but its on order. FPU should be a game changer, but to be honest, I don't think I have hit the limits of the first generation pico yet!
Hello, I just finished scratch build this Rx on 8x8 cm matrix pcb and it works. Headphone sound was comfortable. Connected to a quarter wave CB antenna, 31m broadcasting was good at night. However, the CB band signal received is faint compared to a USB RTL-SDR to PC with the same antenna. ( any suggestion please ) The Band Pass Filter has not been assembled yet, hopefully the BPF will be able to provide better results from the signal/noise ratio. And the panoramic signal to noise floor display is better.
Brilliant, so glad you got it working! We have a gallery of completed builds here github.com/dawsonjon/PicoRX/issues/99, would love to see some pictures! At the high end of the frequency range, you might well get some improvements by using an LNA. Careful attention to layout can also help reduce the noise floor, when you don't have a ground plane, it pays to think about return paths for currents and routing of grounds.
Awesome‼ Thanks 👍 Why did you go with the MCP6022 when there are other op-amps, less expensive op-amps, with a gain-bandwidth product of 10MHz and a slew rate of at least 7V/us? For example, I found the NE5532P on Mouser for $0.59 (US dollars) versus $1.86 (US dollars) for the MCP6022.
Thanks, Good question! I did consider that device, it's a popular option. I also looked at the lm4562. It's mainly because I wanted to run on 3.3v. That's not to say there aren't better options though. My search wasn't exactly exhaustive, I already had some in stock.
Hello! What is the algorythm of demodulation in the receiver? The simplest way for SSB - is an alorithm of the Wevaer reciever. Other case - square root of sum I^2+Q^2 for AM. In other cases there must be low-frequency wideband phase shifter: it is very heavy for CPU
Thanks! I'm using frequency shifts and filters to suppress the opposite sideband. For AM I use a fast min/max magnitude approximation. There is a full description here: 101-things.readthedocs.io/en/latest/radio_receiver.html#demodulation-fm.
Amazing!! I love this little thing, as a HAM. Can I buy a pre-made or are there a BOM and Positions csv files? I have a medical condition and cannot solder, so I have to get someone to solder for me or order parts fitted 😕 Thankyou for an amazing project.
Hi, thanks for your comment. I'm afraid I don't have anything pre-made at the moment. It's something I might consider in the future, and I believe that others have built PCBs etc.
This is very intriguing. 20 years ago I was wondering if it's possible to build a cheap analog receiver for marine utility radio (NAVTEX, weather reports via RTTY and radiofax). Cheap receivers would have too much drift for reliable operation, but a microcontroller might monitor the demodulated aufio signal and re-tune the receiver accordingly. Probably possible, but too much of a challenge for someone barely confident in digital electronics. Seeing this project makes me reconsider that old idea …
Two more questions. Is this colored schematic available somewhere on github? Is the battery connected to VSYS and does the D1 diode need to be still removed from Pico?
Thanks! I haven't added the coloured schematic (not in an editable form anyway). But I can if you need it. In terms of power, you have options! Simplest is to leave as is and have a USB powered device using phone charger power bank etc. Second option is to connect battery to VSYS and remove D1, effectively giving you a battery powered device with a USB connection, but it won't work without batteries. Third option would be to implement one of the solutions in datasheets.raspberrypi.com/pico/pico-datasheet.pdf section 4.5 using either a diode or PFET to allow either batteries or USB power to be used interchangeably. I think there are also versions of the pi-pico that have built in lithium batteries and charging circuitry, this might be a neat solution in a compact device.
@@101Things-ds8tc I have one USB-C RP2040 board with double schottky, but with only 3.3V LDO. LDO should be better for RF stuff, but I would also like to add a LNA which requires 5V. Adding another 5V LDO will require at least 6V battery. Not sure how to solve this.
Hello, what is the polarity of 10 uF capacitor from pin 10 and 11 of 74cbtlv3253 to the opamp, which side is plus/minus ? I read about D1 and not fully understand that it must be removed, where exactly is this D1 ? ( I am going to use a rechargeable 3.7V batery + tp4056 charger ) Thanks
I used ceramics for the 10uF caps, but I would probably put positive towards the analog switch if I was using electrolytics. There are a few options with the power, you can supply the battery using an external diode, to power from either USB or battery. Another option is to remove D1 from the pi-pico, that means that you can't power from usb (only batteries), but you can still use it for programming/audio.
Hello I am in the middle of soldering the 10uF coupling capacitors, and realize that in breadboard picture vs the schematic the 10uF placement is quite different. In breadboard picture, the 10uF is between 3253 and 56nF. In schematic, the 10uF is between 56nF and 82 Ohm resistor. Which one should be followed the schematic or breadboard ? Thanks 🙏
Can you share a proper electronic schematic diagram? A confusing cable diagram is not helping to understand your project that otherwise seems to be very interesting. Thanks for sharing it.
Sure, there's a bunch of documentation here 101-things.readthedocs.io/en/latest/breadboard_radio.html including a more traditional schematic. If you want to know all the technical details you could take a look at the documentation for the original PicoRx here: 101-things.readthedocs.io/en/latest/radio_receiver.html, it goes into detail about the hardware, and software design with schematics and code samples.
@@101Things-ds8tc The older version ran the op amp at 5v, the newer one at 3.3v. Both use a divider fed from 3.3v to set the input levels. Shouldn't the input level be set at half the op amp pwr supply? Or is this to just set the zero signal dc level for the A/D inputs of the pico? I have a bunch of OP275 opamps. They have a GBP or 9 mhz, should be high enough, but they seem to have a min pwr supply of +/- 4.5 v so maybe not?
Hi, there is a write-up here with all the technical details. You can download the pre-built firmware here github.com/dawsonjon/PicoRX/actions (select the latest run, then select the appropriate .zip file under artifacts), the .zip file will contain a .uf2 that can be used to program the pico. If you hold the button while plugging the pico into a PC, it will appear as flash drive. Just drag and drop the .uf2 file to program.
The order is important, but there are a few combinations that would work. The S inputs are driven in the order 0, 1, 3, 2. This means that the antenna is connected to the output pins in the sequence 10, 11, 13, 12. They connect to the op-amp inputs in the sequence -q, -i, +q, +i. The alternative sequences [-i, +q, +i, -q] or [+q, +i, -q, -i] or [+i, -q, -i, +q] would work just as well. There is a menu option that allows the I and Q channel to be swapped, if this option is enabled then you can use the reverse of any of these sequences i.e. [+i, +q, -i, -q] or [-q, +i, +q, -i] or [-i, -q, +i, +q] or [+q, -i, -q, +i]. Any sequence where I and Q don't alternate is invalid and won't work with either setting. Its a little difficult to explain, but hopefully that makes sense.
NE5532 is a 5v part, there are a list of drop-in replacement parts here: 101-things.readthedocs.io/en/latest/breadboard_radio.html#operational-amplifier-alternatives, but NE5532 should work well if you adapt the circuit.
Hi Jon Absolutely amazing project! Excellent demonstration of the power of modern CPU's. I absolutely have to try it myself, but I cannot find the .uf2 firmware image. There is a link in your long documentation that does not work, and I also could not find it on Github, but I have to admit that I find the structure and working of Github confusing for somebody of my age. Can you perhaps make the .uf2 file available (again). Again thank you very much for this beautiful project!
Thanks! I'm using GitHub actions to automate the build process. github.com/dawsonjon/PicoRX/actions If you go to the latest run, then look in the artifacts section, you should see 3 downloadable zip files. Chose the one that matches the version of pi Pico you are using and it will contain the .uf2 file. Best of luck with your build!
I wired the Pico up according to the pictorial diagram pointed to on the github. The display lights up and shows 1.411 mhz AM. Pressing the buttons or operating the encoder doesn't seem to do anything. I'm using the click wheel encoder from Adafruit, right and left buttons on the fwd and bkwd switches, encoder switch on the press switch. I uploaded the pre built firmware. Don't have the IQ mixer wired up yet (waiting for parts) but I wanted to see the UI functions. It does seem to be doing something, touching the pico causes temp reading to bounce, along with s meter. Just can't get into the menu as if the switches don't work.
Cool! Sounds like good progress so far! I can't see any reason why it wouldn't work with that encoder in the way you describe. There are internal pull-ups on the encoder/button pins, so these should normally read 3.3v, and dip to 0v when pressed. You should be able to check the pico pins with a scope or meter. Might also be worth checking the continuity of the encoder switches too, just to make sure the pins are connected as you expect. Assume you are using the original pico, not the pico2, the code for the pico2 isn't quite ready yet.
@@101Things-ds8tc I don't know who is "lucky" enough to have a pico2, I've signed up for notification at digikey on stock. I'm using a pcio 1. The display used (0.96") is rather small and my vision isn't up to the task anymore (far sighted in my old age!). Am using a magnifier to read it! Would like to sub a larger one, but then would need a different driver library. Will check the encoder / switches with scope. Could also be the breadboard, might need to solder connections.
Tested with a scope, and then an ohmeter on the encoder. Looks like the encoder wheel is totally dead. NONE of the switches work. Will stick an encoder like you used on the breadboard and try it again. Can't believe I got a DOA from Adafruit. It's been sitting in the junque box for two years now, waiting for a project to use it in so too late to send it back.
That's a shame, I thought they looked pretty neat. It sounds like a bigger screen would be a really popular option, I'm sure its something I will be looking at when time permits.
@@101Things-ds8tc I think I just got a bad one, either the wheel or the adapter PC board. I might move the bands and push io's elsewhere if possible so I can use the SPI interface for a tft display.
I recently replicate your project, and it is successful. I'm using a different op-amp (NE5532) and analogue switch (74HC4053). One question, from your project description page, it is clearly stated that you set a cut off frequency to 12KHz, is it possible to change the sampling processing from the code it self without changing my default hardware set up?. For your information, there is a lot of background noise in my receiving performance and I suspected my input and op-amp cut off frequency was too low
Cool, glad you got it working. I think that with the 74hc4053, 33n instead of 56n for the sampling capacitors should give you about the right bandwidth. The code samples at a fixed 500kHz, it's beneficial to oversample regardless of the Tayloe detector cutoff.
@@101Things-ds8tc Very thanks for the reply. For your information I'm used the previous Tayloe Detector circuit for my USDX project. I'm using 100n for the input with the feedback resistor - 82K ohm and capacitor 1n farad. Do I need to change the feedback resistor and capacitor value?
I wonder if you could replace the 743253 with a few resistors and capacitors. The input would be split into four channels using a resistor per channel. Then connect the channel to a GPIO through a capacitor. You would then ground the channel by switching the GPIO to output and cycle through the channels by ungrounding one by switching the associated GPIO to input.
That's an interesting idea! I did try something similar using an FPGA once, making a crude mixer by periodically grounding and ungrounding RF signal through RC network. It did work (up to a point), and I was able to receive strong local stations. There was a diode in the IO pin that clipped the negative swing below -0.7v.
AIS uses frequencies around 162MHz, would it be possible to use this for receiving AIS if using a quicker MCU ? From Wikipedia: Channel A 161.975 MHz (87B) Channel B 162.025 MHz (88B)
Simple is good. :)@@101Things-ds8tc -Before I forget. You could have several receivers on a single MCU. Perhaps you could set up the timers to generate frequencies and connect the DMA for sampling data, so the MCU is freed up to "relax". It might even be able to receive while being 'asleep' (WFI).
Thanks, the Pico 2 should be much better with the fpu and accelerated DSP. I have got one on order... To be honest though, I don't think I have found the limits of the first generation device yet!
Yes, there is some description here from the old design 101-things.readthedocs.io/en/latest/radio_receiver.html#creating-quadrature-oscillator-using-pio. It still works the same, but now I also change the system clock to give me the best divide ratio, there is a bit more info here: 101-things.readthedocs.io/en/latest/breadboard_radio.html#improvements-and-tweaks. The actual code is here: github.com/dawsonjon/PicoRX/blob/master/nco.pio#L41. It just loops through the possible frequencies and chooses the one that gets closest. I actually deliberately aim for a small offset (low IF) so that any switching noise that we receive is a few kHz away from the wanted signal and gets removed by the digital filter.
@@101Things-ds8tc Thank you for your reply with your links and code for your Pico SDR receiver project. I think that RPI pico novices and radio hams would be very interested in a video that fully explained how the PIO was configured and coded to produce the quadrature local oscillator outputs.
What the appropriate cost of the parts? How does the performance compare to the typical HF radios, like the Icom 7300, Icom 7610, or other equivalent brands and model HF radios?
Hi, The Pi Pico costs 4 GBP, I paid 0.46 GBP for the analog mux and 1.44 GBP for the op amp. The displays cost between about 1.5 and 3.5 GBP depending where you buy them. I guess you could make one for about 10-20 GBP all in. I haven't done any scientific measurements and don't want to make any wild claims about the performance, but with the you-loop and LNA setup it seems to receive most of the stations that my RSP1A does, although they are harder to find and don't always sound as good.
Thanks, unfortunately I don't think this is suitable, it looks like a digital mux with the same pinout. You need a analog mux. Look for something with a low on resistance e.g. 5 ohms and a fast switching time e.g. 10ns.
Sure I used a 74CBTLV3253PW in a TSSOP-16 package. You will need an adaptor if you are building on a breadboard, I think most are double sided with soic-16 on one side and tssop-16 on the other.
I love this project. I’ve been trying to figure out the math behind the IQ sampling by the single ADC. At first I thought that this was an issue unique to your design but then I realized that the ATMega328 used in the (tr)uSDX also has just one ADC so it must be solving the same issue, somehow. If I understand correctly, your solution ends up sampling 250K I and 250K Q values per second. If that’s the case, would it be possible to use a diode ring mixer instead of Tayloe, sample its single output at 500K, and then convert that to 250K I/Q in software? Such hardware might be even easier for beginners (like me) to understand.
Thanks! Yes, that's exactly right I'm sampling I at 250 and Q at 250. It took me a while to get my head around using a single (multiplexed) ADC, but its probably obvious to someone with a DSP background. I think its just an extension of interpolating using zero padding and low-pass filter. You can easily convert 500k to 250k I/Q in software, the only difficulty in that case would be distinguishing positive and negative frequencies. I can't think of a way to do this without using a second mixer. I think sBitx uses a superhet design along these lines.
Very neat project! Do you have any plans to add transmit capability? Have long dreamed of a super low cost CW Morse code radio to get more people in the hobby. I know there are some relatively low cost options at about $200, but this could drastically reduce the entry cost so that more people would get into it. 73 Mike N4FFF
@@101Things-ds8tc I think that your project is fantastic way for someone to get into radio, especially SDR RX, with the fun of building and leveraging your time investment in the hard parts! I love it! I know there are also a lot of people who would really enjoy aspects of radio that will never have any interested in hardware or building things. I also know that you don't always know if you will enjoy it enough to take the plunge with an expensive first step. I'm particularly interested in getting kids and younger people in the hobby. After they get a taste of the fun, then maybe they will find it interesting enough to learn about hardware or spend more money. I imagine that a $20-50 radio where you could listen to everything and send morse code (CW) would be cheap enough for a lot of people to try and then realize how much they love it. The $200 radios, which are awesome that they exist, are enough money to prevent a lot of people from getting started. That would be such an amazing first step into the magic of radio. Your project has me day dreaming of a base board that you simply plug a pico pi into and put into a case. Your project seems like it would be perfect for the SDR RX for such a "kit". I wonder how hard it would then be to add TX capability for morse code.
Its just an unbranded generic wideband LNA. Something like this one (not a recommendation but should give you an idea). www.ebay.co.uk/itm/126578890836?_trkparms=amclksrc%3DITM%26aid%3D1110013%26algo%3DHOMESPLICE.SIMRXI%26ao%3D1%26asc%3D264183%26meid%3De51288ebad91450d8c324999fb234140%26pid%3D101196%26rk%3D2%26rkt%3D12%26sd%3D186490543190%26itm%3D126578890836%26pmt%3D1%26noa%3D0%26pg%3D4429486%26algv%3DSimRXIVINativeV2WithSellersOwnItemsFilter&_trksid=p4429486.c101196.m2219&itmprp=cksum%3A126578890836e51288ebad91450d8c324999fb234140%7Cenc%3AAQAJAAABAPUpV7F1Bd%252BBh9UJeewaO4DKj%252BmyWoAZr9ZAL2aU%252FtKZ5Z5Dpbx7fDPnVlcJ5A8LF5uP8Rr8BkU%252B6dS9RRzP0VriUmQgh7795vpdINBLm77hMIXRqtLVn7bjRFXBGmbyS6nx6OqJLPrnaadtgfLzvVXHRgNdHBYNfeP%252Ff9%252BC2kZtLOf%252FiDv6Rj8BGsKFk6kTw3h9AHwVX8VbIzRGhTMOM1uHpUzPQ6XenaVg1Di0eWHEKBMxQ%252Ff1hsNGb0WA3Z1OwygDZQxuVsWOuW%252BO54r2zY3xzvIDbfZQfV9bWxv0k97vIiUT4Qk2s1FiM58S7yvwsO0My724Ju5ttloXn2lAHz0%253D%7Campid%3APL_CLK%7Cclp%3A4429486&itmmeta=01J5GQVV0KY8FWDNA0EZ7K6A77
I'm not really set up for that sort of thing, but I expect you could persuade a friend to print one, or adapt a commercial enclosure. I bet you could fit one in an altoids tin with a bit of work!
Hi, The Pi Pico costs 4 GBP, I paid 0.46 GBP for the analog mux and 1.44 GBP for the op amp. The displays cost between about 1.5 and 3.5 GBP depending where you buy them. I guess you could make one for about 20 GBP all in.
I was aiming for simple hardware with a minimum of external components, implementing as much as I can in software. I think its pretty neat that the Pi-Pico can drive the Tayloe detector directly. I don't have anything against the si5351 though, its pretty cheap and performs well. I might even add one as an optional upgrade!
Wow, great stuff. I'm not totally au fait with the maths (or the Pi). I assume you can't output whatever freq you want for the quadrature signals. You have to pick whatever nearby freq that can be achieved by the PLL - i.e. multiplying/dividing the base clock by integer values? And the SW does the final processing?
Thanks! Yes, that's it precisely! I use the PLL and fractional divider to generate get as close as I can. There is another much more precise (small fraction of 1Hz) mixer in the software for fine tuning. Its all transparent to the user and tunes like a normal receiver.
I have a PCB for the older design here: github.com/dawsonjon/PicoRX/tree/master/PCB. Its an older design, it does have a preamplifier and preselector, but doesn't have some of the latest bandwidth improvements. Its still supported by the latest software though. I will probably respin at some point, but I would like to revisit the design of the filter and preamplifier first.
Hi, you would need a down-converter, using high frequency mixers. Construction is a lot more challenging at those sorts of frequencies, it would need a very carefully designed PCB with impedance matched traces etc.
Thanks, something to look out for. I haven't had any issues myself, my prototype is still going strong after nearly 2 years, but I only leave it on for an hour or so at a time. There's an adjustable display timeout too which should help if you are concerned about burn in. I find the OLED screens hard to beat in terms of cost and simplicity.
@@101Things-ds8tc I used the display for a watering project 24x7 and after a year it's quite burned in. That one was using a pico-W, an OLED screen and a moisture senor. I have a Samsung Tab S7+ which has an OLED screen, but even after four years that one it's crisp clear. So, for that reason, I am a little bit cautious with OLED displays in new projects. I try to avoid then and try to get my hands on high quality TFT display's.
There are a couple of ways, did you see the Pi Pico Transmitter on the channel? Another option.would.be to add a quadrature sampling exciter, which is a tried and tested approach.
Hello friend! Congratulations on the excellent work! Very well done. I would like some help, I don't have programming skills and I don't even know where to start to save the information to the pi pico. I would like a better understanding of how to insert logic into the microcontroller. I bought all the parts for assembly, now lacking knowledge on the pi pico. Could you help me? Once again, thank you very much! 73's.
Hi, thanks very much and good luck with your project. You can grab a pre-built .uf2 file here github.com/dawsonjon/PicoRX/actions. If you hold the button on the pi-pico while plugging in the USB cable, it should appear as a USB drive. Just drag and drop the .uf2 file on the drive and that will program the device.
@@101Things-ds8tc I'm tempted to do the PCB version. Do like that type of protoboard but they are quite expensive. I just need one of these and this is a great way to make a portable one!
That's an interesting question! Although we can't sample I and Q at the same time, the pi-pico does provide a round-robin mode allowing us to sample I and Q alternately. Provided we meet the Nyquist criteria we can work out the value of the signal at any point between samples using interpolation, thus we know what the value of Q would have been when we sampled I and vice-versa. It turns out that the processing required to do this is trivial, you just replace the "missing" samples with zeros, and remove the outer half of the spectrum (which we would need to do anyway). Of course you don't get something for nothing, we still get 250kHz bandwidth from a 500kHz ADC. There is a write up on the technique here: 101-things.readthedocs.io/en/latest/radio_receiver.html#sampling-iq-data-using-a-round-robin-adc.
@@101Things-ds8tc I beilieve (after reading your article) you have a 250 khz bandwidth, if that is the case then why not just directly sample the signal at 500khz, you will get 250khz anyway, much easier! . Why even use tyloe mixer? use a balanced switching mixer, much much easier with very common and cheap thru hole parts. I made an sdr using pico direct sampling using a switching mixer, will link it soon
Cool, your project sounds very interesting, I'm always interested in minimalist receiver designs! I chose a Tayloe detector for my design because they are (relatively) simple and perform very well with low loss, very good sensitivity and linearity. One of the main advantages of IQ sampling is that it can distinguish positive and negative frequencies, (signals which are above and below the local oscillator). For this reason I/Q mixers are sometimes called "image-rejecting" mixers. You can use a single mixer, and sample the output directly using an ADC, but one downside of this approach is that it can't distinguish the positive and negative frequencies (they just get added together and can't be separated in software), so it might be susceptible to interference from adjacent channels. To avoid interference, you need to filter out images in hardware before sampling with an ADC. Filtering image signals in hardware can be just as complex as IQ sampling, but it can perform better (e.g. in a superheterodyne receiver). Simple direct conversion receivers, do work well for AM signals though, with AM signals, the positive and negative frequencies are the same, so you don't need to worry too much about them getting added together.
SDR is very interesting to me as an old Radio Amateur (HAM), and SDR was kind of magic sauce up till now, you explained it so I can understand how it works a bit better, thanks.
Thanks! Happy to help!
12 years ago I've already were listening the bril WebSDR by the Uni of Twente ❤
Nice work on the simplicity of the design and incorporating the Pico!
Thank you very much!
Lol funny enough last night I was visiting the yt page to see if there were any updates on this project. Gotta watch this
Great hope you enjoy!
Hi Jon Dawson!
Thank you once again for making the pre-compiled file available. I want to apologize for the delay in responding, I was a little busy with college studies.
Today I carried out the tests by inserting the code and did a preliminary test.
I added the display to the Raspberry Pi Pico and inserted the file and it worked on the first try! Sensational!
I will be posting more information here in the future.
Thank you very much!
Cool, so glad you got it working! We have a gallery here: github.com/dawsonjon/PicoRX/issues/99#issuecomment-2423709531. If you want to post a picture of your build, would love to see it!
Awesome. Both your design and presentation are top notch. A+++
Thank you! Cheers!
As a returner to the amateur radio hobby, this was fascinating. Thanks for explaining it at basic level without assuming any prior knowledge. Very well presented and I look forward to development and mods. 👍
Thanks 👍
Very elegant design and clever NCO solution! I ordered a non-DC2DC version of Pico to see how it performs. Thanks for sharing!
Glad you like it!
Delighted to discover a real schematic in the docs link! That blobby diagram tells us nothing if we don't know the pinouts for all the chips involved, it should cede some of its screen time to the proper schematic.
Noted!
That is pretty cool. I am in Florida in the USA. Shortwave isn't much of a thing here anymore. It does look like a nice project for the pi pico.
Thanks! The broadcast shortwave stations are certainly dwindling, there is usually plenty of activity on the amateur bands (on a good day at least).
With the Pico 2 out, will be interesting to see this done with it
I have one on order, watch this space!
@@101Things-ds8tc oh yeah :) I want to see that - subsribed :)
Thank you!
This is a good example for learning how sdr works in practice!
I am happy😀
Thanks so much, glad you found it useful!
This is amazing! Will definitely be trying your design! Thanks for sharing.
You’re welcome 😊
Wow this is amazing, it's a shame the OLED display is so small. Could you make a video running the band to really see how it behaves... Congratulations on the incredible project🎉
Thanks, I figured I would make it as small and cheap and possible, then think about some upgrade options. A bigger screen is on the agenda!
I can't resist building this SDR. I related to your comparison of this receiver to the classic crystal radio. I too was hooked on radio after hearing music in the earphone of a simple crystal radio I bought from the Scholastic Book Club when I was in grade school. I seem to recall that this item was more expensive than most of the books and little kits for sale, the number $6 sticks in my mind. When translated into today's dollars, the Pi-Pico radio will cost about the same. I ordered the 3253 mux part but when they came , I learned that I ordered the TSSOP package. I'm not confident that I will be able to solder that tiny package to the adapter board. I looked closer and found that a SOIC version is available also. I ordered the SOIC parts just in case I make a mess of the TSSOP part. I can't wait to get started.
Update 9/22/24
I finally found the time to build the receiver. I decided to build it on a solderless breadboard just to try it out. It turns out the soldering the TSSOP part was not as difficult as I feared. I simply applied lots of solder which created one large solder bridge. The excess solder was removed using solder wick and resulted in a nicely soldered part. After carefully assembling all the parts on the breadboard, I applied power via the USB interface, and tuned to a local AM station. Success! Hearing the local AM station was almost as exciting as hearing a jumble of voices and music on my first crystal radio.
That's great 👍 I hope you enjoy the process as much as I did!
Nice little extension to add onboard audio to the EasySDR project by Doctor Volt (Michal)
Cool idea!
Suggestion for those building this:
Troll through the available opamps and you likely will be able to find one that has a better noise performance. Remember to look down in the datasheet for the real numbers. The one up in the banner headline is always the "typical" number. As we all know, they shipped those to someone else. Go with the maximum numbers. MCP6022 has a very small noise current but quite a lot of noise voltage. You likely can find one with a bit more noise current and less noise voltage.
I am bookmarking this. I think I just thought of a way to extend the upper frequency range a whole bunch. I will work on the idea this evening and put something here if it looks likely.
Yes definitely, there's nothing particularly special about that op-amp, I'm sure there are plenty with similar specs, better noise performance and lower cost. Especially if you are willing to substitute an smd part.
@@101Things-ds8tc The idea for more high frequencies would work but it seriously increases the parts count
1) A PIO can make a much faster local oscillator but you don't get a large number of frequency choices.
2) A Taylor mixer could mix down from really high to just too high for the ADC.
3) Instead of going straight to the ADC, you amplify, low pass a bit and do 2 more Taylor mixers this time using a more reasonable frequency
4) Doing some math with resistors, you get the I and Q channels for the ADC with the op-amp as you are doing it.
@@kensmith5694 Genius!
Very interesting. I've played around with SDR from time to time- but radio is like black magic to me.
Thanks, I don't think that black magic feeling ever goes away...
Hey man, I loved that circuit diagram with realistic looking components. Did you make it yourself or is it from an app?
Thanks, its nothing special, I just draw them in libreOffice draw.
Funny, i was looking at your project at the weekend. Seems that op amp is unobtanium in NZ. They all seem to be in the UK, i wonder why. Nice little project and well documented. Thank you.
Cool, thanks! Hopefully the op-amp won't be a show stopper, I think there must be a quite a few with similar specs, especially if you are willing to use an SMD device with an adaptor. There's always the LT6231 if you don't mind paying a bit extra.
Super awesome! Subscribed ❤
What modifications does this circuit required to add an amplifier and change to transmission mode ?
Thanks and all the best!
Thanks, I don't think it would be that difficult to implement TX. in It's simplest form, it could be a simple merge with the transmitter project.
I'll dig into this channel more,
Would love to see this turned into a 2way+ SDR for infrastructure-less mesh communication. If the unit can adjust frequencies modes on the fly and the amplitude based on the provided adhoc power source + antenna, then any device can be made into a powerful relay and extend the network with no hw changes.
Not sure if pico runs unix but add pi zero and a touch screen and you got a infa-less cellphone.
Imagine not paying mobile isps, serving sites with edge load balancing, a truely free internet could be built on this
that is an awesome bit of kit well done i love it what about a nice touch screen say 7" to watch some waterfalls.
That would be pretty cool! I think there's probably enough spare CPU....
@@101Things-ds8tc are you using the new pico2 more memory and faster.
@@jediknight2350 I haven't been able to get hold of one yet, but its on order. FPU should be a game changer, but to be honest, I don't think I have hit the limits of the first generation pico yet!
@@101Things-ds8tc i get you but imagine what you could do with the new one i cant wait to see your progress its awesome what youve done so far.
Hello, I just finished scratch build this Rx on 8x8 cm matrix pcb and it works.
Headphone sound was comfortable.
Connected to a quarter wave CB antenna, 31m broadcasting was good at night.
However, the CB band signal received is faint compared to a USB RTL-SDR to PC with the same antenna. ( any suggestion please )
The Band Pass Filter has not been assembled yet, hopefully the BPF will be able to provide better results from the signal/noise ratio. And the panoramic signal to noise floor display is better.
Brilliant, so glad you got it working! We have a gallery of completed builds here github.com/dawsonjon/PicoRX/issues/99, would love to see some pictures!
At the high end of the frequency range, you might well get some improvements by using an LNA. Careful attention to layout can also help reduce the noise floor, when you don't have a ground plane, it pays to think about return paths for currents and routing of grounds.
Very impressive, Sir. Great project!
Thank you very much!
Awesome‼ Thanks 👍 Why did you go with the MCP6022 when there are other op-amps, less expensive op-amps, with a gain-bandwidth product of 10MHz and a slew rate of at least 7V/us? For example, I found the NE5532P on Mouser for $0.59 (US dollars) versus $1.86 (US dollars) for the MCP6022.
Thanks, Good question! I did consider that device, it's a popular option. I also looked at the lm4562. It's mainly because I wanted to run on 3.3v. That's not to say there aren't better options though. My search wasn't exactly exhaustive, I already had some in stock.
Hello! What is the algorythm of demodulation in the receiver? The simplest way for SSB - is an alorithm of the Wevaer reciever. Other case - square root of sum I^2+Q^2 for AM. In other cases there must be low-frequency wideband phase shifter: it is very heavy for CPU
Thanks! I'm using frequency shifts and filters to suppress the opposite sideband. For AM I use a fast min/max magnitude approximation. There is a full description here: 101-things.readthedocs.io/en/latest/radio_receiver.html#demodulation-fm.
Seriously impressed, and slow scan as a bonus.
Here in Australia the Silicon Chip magazine did publish one some years ago.
Thanks!
Amazing!! I love this little thing, as a HAM. Can I buy a pre-made or are there a BOM and Positions csv files? I have a medical condition and cannot solder, so I have to get someone to solder for me or order parts fitted 😕 Thankyou for an amazing project.
Hi, thanks for your comment. I'm afraid I don't have anything pre-made at the moment. It's something I might consider in the future, and I believe that others have built PCBs etc.
Really cool Jon. Think I'll give it a try. Thanks!
Thanks, much appreciated 👍
This is very intriguing. 20 years ago I was wondering if it's possible to build a cheap analog receiver for marine utility radio (NAVTEX, weather reports via RTTY and radiofax). Cheap receivers would have too much drift for reliable operation, but a microcontroller might monitor the demodulated aufio signal and re-tune the receiver accordingly. Probably possible, but too much of a challenge for someone barely confident in digital electronics.
Seeing this project makes me reconsider that old idea …
Cool, it all sounds doable!
Two more questions. Is this colored schematic available somewhere on github? Is the battery connected to VSYS and does the D1 diode need to be still removed from Pico?
Thanks! I haven't added the coloured schematic (not in an editable form anyway). But I can if you need it. In terms of power, you have options! Simplest is to leave as is and have a USB powered device using phone charger power bank etc. Second option is to connect battery to VSYS and remove D1, effectively giving you a battery powered device with a USB connection, but it won't work without batteries. Third option would be to implement one of the solutions in datasheets.raspberrypi.com/pico/pico-datasheet.pdf section 4.5 using either a diode or PFET to allow either batteries or USB power to be used interchangeably. I think there are also versions of the pi-pico that have built in lithium batteries and charging circuitry, this might be a neat solution in a compact device.
@@101Things-ds8tc Thanks!
@@101Things-ds8tc I have one USB-C RP2040 board with double schottky, but with only 3.3V LDO. LDO should be better for RF stuff, but I would also like to add a LNA which requires 5V. Adding another 5V LDO will require at least 6V battery. Not sure how to solve this.
I can't see a simple solution, but maybe you could run LNA directly from the battery, perhaps using LC filter network rather than LDO?
Brilliant!
Are you thinking of making a transmitter at all with your Tayloe design?
Thanks, I'd love to add a TX capability, it definitely something I'm keen to explore.
Hello, what is the polarity of 10 uF capacitor from pin 10 and 11 of 74cbtlv3253 to the opamp, which side is plus/minus ?
I read about D1 and not fully understand that it must be removed, where exactly is this D1 ?
( I am going to use a rechargeable 3.7V batery + tp4056 charger )
Thanks
I used ceramics for the 10uF caps, but I would probably put positive towards the analog switch if I was using electrolytics.
There are a few options with the power, you can supply the battery using an external diode, to power from either USB or battery. Another option is to remove D1 from the pi-pico, that means that you can't power from usb (only batteries), but you can still use it for programming/audio.
Hello
I am in the middle of soldering the 10uF coupling capacitors,
and realize that in breadboard picture vs the schematic the 10uF placement is quite different.
In breadboard picture, the 10uF is between 3253 and 56nF.
In schematic, the 10uF is between 56nF and 82 Ohm resistor.
Which one should be followed the schematic or breadboard ?
Thanks 🙏
I don't think it matters, but I would go for the schematic option if you have a choice.
@@101Things-ds8tc ok thanks
Good sensitivity to pick up those SW stations. I'd struggle to do that with an rtlsdr or hackrf
Yes, it seems to pick up most things. Works well with the you loop and lna.
Nice work. Do you plan to do an upgraded version with a Pico 2?
That's the plan. Watch this space!
Can you share a proper electronic schematic diagram? A confusing cable diagram is not helping to understand your project that otherwise seems to be very interesting. Thanks for sharing it.
Sure, there's a bunch of documentation here 101-things.readthedocs.io/en/latest/breadboard_radio.html including a more traditional schematic. If you want to know all the technical details you could take a look at the documentation for the original PicoRx here: 101-things.readthedocs.io/en/latest/radio_receiver.html, it goes into detail about the hardware, and software design with schematics and code samples.
@@101Things-ds8tc Thanks!
@@101Things-ds8tc The older version ran the op amp at 5v, the newer one at 3.3v. Both use a divider fed from 3.3v to set the input levels. Shouldn't the input level be set at half the op amp pwr supply? Or is this to just set the zero signal dc level for the A/D inputs of the pico? I have a bunch of OP275 opamps. They have a GBP or 9 mhz, should be high enough, but they seem to have a min pwr supply of +/- 4.5 v so maybe not?
A DIY kit with all the parts would be nice. The biggest problem like always is finding the parts to build. 73
Does the Pico use a program do you have details on a web site ?I am a analogue T Rex TV Engineer so not very familiar with Pico cheers
Hi, there is a write-up here with all the technical details. You can download the pre-built firmware here github.com/dawsonjon/PicoRX/actions (select the latest run, then select the appropriate .zip file under artifacts), the .zip file will contain a .uf2 that can be used to program the pico. If you hold the button while plugging the pico into a PC, it will appear as flash drive. Just drag and drop the .uf2 file to program.
Great project! Can I use a CBT3253 instead of the chip you used? What are some other options if not? The chip you used is unobtanium here.
Yes, 74cbt3253 would work so long as you supply it with 5v rather than 3.3v.
Hello, could the output pins of 74cbtlv3253 at pins 10, 11, 12, 13 going to opamp, exchanges randomly due to simplified the layout ?
The order is important, but there are a few combinations that would work.
The S inputs are driven in the order 0, 1, 3, 2. This means that the antenna is connected to the output pins in the sequence 10, 11, 13, 12. They connect to the op-amp inputs in the sequence -q, -i, +q, +i.
The alternative sequences [-i, +q, +i, -q] or [+q, +i, -q, -i] or [+i, -q, -i, +q] would work just as well. There is a menu option that allows the I and Q channel to be swapped, if this option is enabled then you can use the reverse of any of these sequences i.e. [+i, +q, -i, -q] or [-q, +i, +q, -i] or [-i, -q, +i, +q] or [+q, -i, -q, +i]. Any sequence where I and Q don't alternate is invalid and won't work with either setting.
Its a little difficult to explain, but hopefully that makes sense.
@@101Things-ds8tc Thanks 👍👍👍
Hello, MCP6022 is not available here.
What is the correct VCC of opamp it self, if use a NE5532 ?
Thanks
NE5532 is a 5v part, there are a list of drop-in replacement parts here: 101-things.readthedocs.io/en/latest/breadboard_radio.html#operational-amplifier-alternatives, but NE5532 should work well if you adapt the circuit.
@101Things-ds8tc 👍 Thanks
Hi Jon
Absolutely amazing project! Excellent demonstration of the power of modern CPU's. I absolutely have to try it myself, but I cannot find the .uf2 firmware image. There is a link in your long documentation that does not work, and I also could not find it on Github, but I have to admit that I find the structure and working of Github confusing for somebody of my age. Can you perhaps make the .uf2 file available (again). Again thank you very much for this beautiful project!
Thanks!
I'm using GitHub actions to automate the build process. github.com/dawsonjon/PicoRX/actions
If you go to the latest run, then look in the artifacts section, you should see 3 downloadable zip files. Chose the one that matches the version of pi Pico you are using and it will contain the .uf2 file.
Best of luck with your build!
I wired the Pico up according to the pictorial diagram pointed to on the github. The display lights up and shows 1.411 mhz AM. Pressing the buttons or operating the encoder doesn't seem to do anything. I'm using the click wheel encoder from Adafruit, right and left buttons on the fwd and bkwd switches, encoder switch on the press switch. I uploaded the pre built firmware. Don't have the IQ mixer wired up yet (waiting for parts) but I wanted to see the UI functions. It does seem to be doing something, touching the pico causes temp reading to bounce, along with s meter. Just can't get into the menu as if the switches don't work.
Cool! Sounds like good progress so far! I can't see any reason why it wouldn't work with that encoder in the way you describe. There are internal pull-ups on the encoder/button pins, so these should normally read 3.3v, and dip to 0v when pressed. You should be able to check the pico pins with a scope or meter. Might also be worth checking the continuity of the encoder switches too, just to make sure the pins are connected as you expect. Assume you are using the original pico, not the pico2, the code for the pico2 isn't quite ready yet.
@@101Things-ds8tc I don't know who is "lucky" enough to have a pico2, I've signed up for notification at digikey on stock. I'm using a pcio 1.
The display used (0.96") is rather small and my vision isn't up to the task anymore (far sighted in my old age!). Am using a magnifier to read it!
Would like to sub a larger one, but then would need a different driver library.
Will check the encoder / switches with scope. Could also be the breadboard, might need to solder connections.
Tested with a scope, and then an ohmeter on the encoder. Looks like the encoder wheel is totally dead. NONE of the switches work. Will stick an encoder like you used on the breadboard and try it again. Can't believe I got a DOA from Adafruit. It's been sitting in the junque box for two years now, waiting for a project to use it in so too late to send it back.
That's a shame, I thought they looked pretty neat. It sounds like a bigger screen would be a really popular option, I'm sure its something I will be looking at when time permits.
@@101Things-ds8tc I think I just got a bad one, either the wheel or the adapter PC board.
I might move the bands and push io's elsewhere if possible so I can use the SPI interface for a tft display.
Amazing! Thanks for the video!
Glad you liked it!
I recently replicate your project, and it is successful. I'm using a different op-amp (NE5532) and analogue switch (74HC4053). One question, from your project description page, it is clearly stated that you set a cut off frequency to 12KHz, is it possible to change the sampling processing from the code it self without changing my default hardware set up?. For your information, there is a lot of background noise in my receiving performance and I suspected my input and op-amp cut off frequency was too low
Cool, glad you got it working. I think that with the 74hc4053, 33n instead of 56n for the sampling capacitors should give you about the right bandwidth. The code samples at a fixed 500kHz, it's beneficial to oversample regardless of the Tayloe detector cutoff.
@@101Things-ds8tc Very thanks for the reply. For your information I'm used the previous Tayloe Detector circuit for my USDX project. I'm using 100n for the input with the feedback resistor - 82K ohm and capacitor 1n farad. Do I need to change the feedback resistor and capacitor value?
I wonder if you could replace the 743253 with a few resistors and capacitors. The input would be split into four channels using a resistor per channel. Then connect the channel to a GPIO through a capacitor. You would then ground the channel by switching the GPIO to output and cycle through the channels by ungrounding one by switching the associated GPIO to input.
That's an interesting idea! I did try something similar using an FPGA once, making a crude mixer by periodically grounding and ungrounding RF signal through RC network. It did work (up to a point), and I was able to receive strong local stations. There was a diode in the IO pin that clipped the negative swing below -0.7v.
Excellent !. Thank you.
Glad you liked it!
Excelente resultado, parabens pelo projeto e obrigado por compartilhar.
Muito obrigado!
With the new Pico 2 coming out which has double the PIO channels, I'm curious if you can get even better performance characteristics!
Yes, I have done some testing with pico2 and it is very promising!
AIS uses frequencies around 162MHz, would it be possible to use this for receiving AIS if using a quicker MCU ?
From Wikipedia:
Channel A 161.975 MHz (87B)
Channel B 162.025 MHz (88B)
You could probably achieve this using a down converter, but there might be other simpler solutions out there.
Simple is good. :)@@101Things-ds8tc
-Before I forget. You could have several receivers on a single MCU.
Perhaps you could set up the timers to generate frequencies and connect the DMA for sampling data, so the MCU is freed up to "relax". It might even be able to receive while being 'asleep' (WFI).
Amazing! - can it be even better if you port to the new 2350 Pico 2?
It might be since the RP2350 has hardware floating point and DSP functions👍
Thanks, the Pico 2 should be much better with the fpu and accelerated DSP. I have got one on order... To be honest though, I don't think I have found the limits of the first generation device yet!
A kit would be great to avoid sourcing the components😉
Great idea, it's something I'm considering.
I like the PWM audio gives it a certain aesthetic.
What tool did you use to draw that colorful circuit diagram?
Nothing special, just drew them in libre office.
Do you have a link of any groups, forum or disccusion for this project ?
No I don't have anything like that, closest thing is the GitHub page.
very interesting project ! do you have further details on the Pico PIO code for the quadrature oscillator ?
Yes, there is some description here from the old design 101-things.readthedocs.io/en/latest/radio_receiver.html#creating-quadrature-oscillator-using-pio. It still works the same, but now I also change the system clock to give me the best divide ratio, there is a bit more info here: 101-things.readthedocs.io/en/latest/breadboard_radio.html#improvements-and-tweaks. The actual code is here: github.com/dawsonjon/PicoRX/blob/master/nco.pio#L41. It just loops through the possible frequencies and chooses the one that gets closest. I actually deliberately aim for a small offset (low IF) so that any switching noise that we receive is a few kHz away from the wanted signal and gets removed by the digital filter.
@@101Things-ds8tc Thank you for your reply with your links and code for your Pico SDR receiver project. I think that RPI pico novices and radio hams would be very interested in a video that fully explained how the PIO was configured and coded to produce the quadrature local oscillator outputs.
Nicely done!
Thank you! Cheers!
What the appropriate cost of the parts? How does the performance compare to the typical HF radios, like the Icom 7300, Icom 7610, or other equivalent brands and model HF radios?
Hi, The Pi Pico costs 4 GBP, I paid 0.46 GBP for the analog mux and 1.44 GBP for the op amp. The displays cost between about 1.5 and 3.5 GBP depending where you buy them. I guess you could make one for about 10-20 GBP all in. I haven't done any scientific measurements and don't want to make any wild claims about the performance, but with the you-loop and LNA setup it seems to receive most of the stations that my RSP1A does, although they are harder to find and don't always sound as good.
Bonjour, le schéma est bien réalisé, j'ai pas bien compris avec quel logiciel vous avez utilisé pour créer justement ce schéma très détaillé. Merci
Merci beaucoup ! Je n'ai utilisé aucun logiciel spécial pour les diagrammes, je les ai simplement dessinés dans LibreOffice Draw.
Its possible to use the MC74ACT139N? Thanks and compliments for the projects.
Thanks, unfortunately I don't think this is suitable, it looks like a digital mux with the same pinout. You need a analog mux. Look for something with a low on resistance e.g. 5 ohms and a fast switching time e.g. 10ns.
Thanks
Nice project for the RP2040. By the way, to my ear, you sound like a Cardiffian who lives/lived in England?
Thanks! You clearly have a good ear for accents!
@@101Things-ds8tc I am originally from Roath but I now live in Budapest, Hungary (via London).
I am insterested in building this. What package type of 743253 did you use?
Sure I used a 74CBTLV3253PW in a TSSOP-16 package. You will need an adaptor if you are building on a breadboard, I think most are double sided with soic-16 on one side and tssop-16 on the other.
I love this project. I’ve been trying to figure out the math behind the IQ sampling by the single ADC. At first I thought that this was an issue unique to your design but then I realized that the ATMega328 used in the (tr)uSDX also has just one ADC so it must be solving the same issue, somehow. If I understand correctly, your solution ends up sampling 250K I and 250K Q values per second. If that’s the case, would it be possible to use a diode ring mixer instead of Tayloe, sample its single output at 500K, and then convert that to 250K I/Q in software? Such hardware might be even easier for beginners (like me) to understand.
Thanks! Yes, that's exactly right I'm sampling I at 250 and Q at 250. It took me a while to get my head around using a single (multiplexed) ADC, but its probably obvious to someone with a DSP background. I think its just an extension of interpolating using zero padding and low-pass filter. You can easily convert 500k to 250k I/Q in software, the only difficulty in that case would be distinguishing positive and negative frequencies. I can't think of a way to do this without using a second mixer. I think sBitx uses a superhet design along these lines.
Very neat project! Do you have any plans to add transmit capability?
Have long dreamed of a super low cost CW Morse code radio to get more people in the hobby. I know there are some relatively low cost options at about $200, but this could drastically reduce the entry cost so that more people would get into it. 73 Mike N4FFF
Thanks! Yes, I think it should be possible to get into the hobby quite cheaply nowadays. And there's the fun of building your own kit too!
@@101Things-ds8tc I think that your project is fantastic way for someone to get into radio, especially SDR RX, with the fun of building and leveraging your time investment in the hard parts! I love it!
I know there are also a lot of people who would really enjoy aspects of radio that will never have any interested in hardware or building things. I also know that you don't always know if you will enjoy it enough to take the plunge with an expensive first step. I'm particularly interested in getting kids and younger people in the hobby. After they get a taste of the fun, then maybe they will find it interesting enough to learn about hardware or spend more money.
I imagine that a $20-50 radio where you could listen to everything and send morse code (CW) would be cheap enough for a lot of people to try and then realize how much they love it. The $200 radios, which are awesome that they exist, are enough money to prevent a lot of people from getting started. That would be such an amazing first step into the magic of radio. Your project has me day dreaming of a base board that you simply plug a pico pi into and put into a case. Your project seems like it would be perfect for the SDR RX for such a "kit". I wonder how hard it would then be to add TX capability for morse code.
What’s the name of the LNA you are using with the antenna?
Its just an unbranded generic wideband LNA. Something like this one (not a recommendation but should give you an idea). www.ebay.co.uk/itm/126578890836?_trkparms=amclksrc%3DITM%26aid%3D1110013%26algo%3DHOMESPLICE.SIMRXI%26ao%3D1%26asc%3D264183%26meid%3De51288ebad91450d8c324999fb234140%26pid%3D101196%26rk%3D2%26rkt%3D12%26sd%3D186490543190%26itm%3D126578890836%26pmt%3D1%26noa%3D0%26pg%3D4429486%26algv%3DSimRXIVINativeV2WithSellersOwnItemsFilter&_trksid=p4429486.c101196.m2219&itmprp=cksum%3A126578890836e51288ebad91450d8c324999fb234140%7Cenc%3AAQAJAAABAPUpV7F1Bd%252BBh9UJeewaO4DKj%252BmyWoAZr9ZAL2aU%252FtKZ5Z5Dpbx7fDPnVlcJ5A8LF5uP8Rr8BkU%252B6dS9RRzP0VriUmQgh7795vpdINBLm77hMIXRqtLVn7bjRFXBGmbyS6nx6OqJLPrnaadtgfLzvVXHRgNdHBYNfeP%252Ff9%252BC2kZtLOf%252FiDv6Rj8BGsKFk6kTw3h9AHwVX8VbIzRGhTMOM1uHpUzPQ6XenaVg1Di0eWHEKBMxQ%252Ff1hsNGb0WA3Z1OwygDZQxuVsWOuW%252BO54r2zY3xzvIDbfZQfV9bWxv0k97vIiUT4Qk2s1FiM58S7yvwsO0My724Ju5ttloXn2lAHz0%253D%7Campid%3APL_CLK%7Cclp%3A4429486&itmmeta=01J5GQVV0KY8FWDNA0EZ7K6A77
@@101Things-ds8tc Thanks.
Legend,well done
Thanks very much!
amazing performance!!
Thanks!
Muito legal esse projeto parabéns.
muito obrigado
I wonder if you will print the case for us that don't have a 3d printer?
I'm not really set up for that sort of thing, but I expect you could persuade a friend to print one, or adapt a commercial enclosure. I bet you could fit one in an altoids tin with a bit of work!
@@101Things-ds8tc There are Chinese PC houses that also do 3d printing.
Very cool project!
Thank you! Cheers!
Please, can you give a (very) rough estimate of the cost to build?
Hi, The Pi Pico costs 4 GBP, I paid 0.46 GBP for the analog mux and 1.44 GBP for the op amp. The displays cost between about 1.5 and 3.5 GBP depending where you buy them. I guess you could make one for about 20 GBP all in.
Can this be improved by using a PI PICO 2? Thanks.
Yes, will be posting a video on this soon! 👍
Thanks for sharing, can use raspberry pi 3 ?
Thanks 👍 It won't work with a raspberry pi3, but the pi-pico is pretty cheap in comparison.
I don't understand the use of AAAs for power. They cost the same as AAs and have less than half the capacity.
Totally agree, the only advantage of AAA is that they are physically smaller. If you have the space use AA they will last even longer.
Tummed up subbed and saved 👍
Thanks! Much appreciated!
How hard would it be to add TX?
Shouldn't be too hard, the receiver is the hard part.
why not use si5351 ?
It's cool how he is able to do without that extra chip.
I was aiming for simple hardware with a minimum of external components, implementing as much as I can in software. I think its pretty neat that the Pi-Pico can drive the Tayloe detector directly. I don't have anything against the si5351 though, its pretty cheap and performs well. I might even add one as an optional upgrade!
@@BaldurNorddahl he already uses a mixer and a multiplexer
and they dont sell neither of it here 😭
Well done.
Thanks 👍
Wow, great stuff. I'm not totally au fait with the maths (or the Pi). I assume you can't output whatever freq you want for the quadrature signals. You have to pick whatever nearby freq that can be achieved by the PLL - i.e. multiplying/dividing the base clock by integer values? And the SW does the final processing?
Thanks! Yes, that's it precisely! I use the PLL and fractional divider to generate get as close as I can. There is another much more precise (small fraction of 1Hz) mixer in the software for fine tuning. Its all transparent to the user and tunes like a normal receiver.
In case someone designed a board for this i would love to have a copy and order JPCB .
I have a PCB for the older design here: github.com/dawsonjon/PicoRX/tree/master/PCB. Its an older design, it does have a preamplifier and preselector, but doesn't have some of the latest bandwidth improvements. Its still supported by the latest software though. I will probably respin at some point, but I would like to revisit the design of the filter and preamplifier first.
felicitaciones muy bueno !!!!!
¡Muchas gracias!
Can it receive weatherfax?
Yes, I'd never tried before but just hooked it up to fldigi and it seemed to work just fine!
hey how can we build up to 5ghz rtl sdr
Hi, you would need a down-converter, using high frequency mixers. Construction is a lot more challenging at those sorts of frequencies, it would need a very carefully designed PCB with impedance matched traces etc.
Have you tried with a pico2 yet?
Yes, quite impressed so far. Will post a video soon.
@@101Things-ds8tc Thanks. I playing with larger display as well, I trying to follow the code, most of the display routines are in ui.c and ui.h right?
I am no fan of OLED screen's. I used once for a project and after a year it was completely burned in.
Thanks, something to look out for. I haven't had any issues myself, my prototype is still going strong after nearly 2 years, but I only leave it on for an hour or so at a time. There's an adjustable display timeout too which should help if you are concerned about burn in. I find the OLED screens hard to beat in terms of cost and simplicity.
@@101Things-ds8tc I used the display for a watering project 24x7 and after a year it's quite burned in. That one was using a pico-W, an OLED screen and a moisture senor.
I have a Samsung Tab S7+ which has an OLED screen, but even after four years that one it's crisp clear.
So, for that reason, I am a little bit cautious with OLED displays in new projects. I try to avoid then and try to get my hands on high quality TFT display's.
how can this become a transmitter ?
There are a couple of ways, did you see the Pi Pico Transmitter on the channel? Another option.would.be to add a quadrature sampling exciter, which is a tried and tested approach.
Hello friend! Congratulations on the excellent work! Very well done.
I would like some help, I don't have programming skills and I don't even know where to start to save the information to the pi pico.
I would like a better understanding of how to insert logic into the microcontroller.
I bought all the parts for assembly, now lacking knowledge on the pi pico.
Could you help me?
Once again, thank you very much! 73's.
Hi, thanks very much and good luck with your project. You can grab a pre-built .uf2 file here github.com/dawsonjon/PicoRX/actions.
If you hold the button on the pi-pico while plugging in the USB cable, it should appear as a USB drive. Just drag and drop the .uf2 file on the drive and that will program the device.
@101Things-ds8tc Your message is no longer available for me to read. Could you share again? Thanks!
Very nice.
Cheers, much appreciated!
I always want to have SDR who can listen SSB
Cool, glad you like it!
kudos
Much appreciated 👍
please share the gerber files of your project too 😁
There are some gerbers for the original design, but doesn't have all the latest updates (yet)...
HERE: take my money!
Thanks very much 😊
@@101Things-ds8tc I'm tempted to do the PCB version. Do like that type of protoboard but they are quite expensive. I just need one of these and this is a great way to make a portable one!
Subbed
Thanks!
Why are you IQ sampling, the pico has only one ADC , you are not IQ sampling at all
for iq you need to sample at the same time two signals coming out of the iq mixers, rpi pico doesnt have two independent ADC
That's an interesting question!
Although we can't sample I and Q at the same time, the pi-pico does provide a round-robin mode allowing us to sample I and Q alternately. Provided we meet the Nyquist criteria we can work out the value of the signal at any point between samples using interpolation, thus we know what the value of Q would have been when we sampled I and vice-versa.
It turns out that the processing required to do this is trivial, you just replace the "missing" samples with zeros, and remove the outer half of the spectrum (which we would need to do anyway). Of course you don't get something for nothing, we still get 250kHz bandwidth from a 500kHz ADC.
There is a write up on the technique here: 101-things.readthedocs.io/en/latest/radio_receiver.html#sampling-iq-data-using-a-round-robin-adc.
@@101Things-ds8tc I beilieve (after reading your article) you have a 250 khz bandwidth, if that is the case then why not just directly sample the signal at 500khz, you will get 250khz anyway, much easier! . Why even use tyloe mixer? use a balanced switching mixer, much much easier with very common and cheap thru hole parts. I made an sdr using pico direct sampling using a switching mixer, will link it soon
Cool, your project sounds very interesting, I'm always interested in minimalist receiver designs!
I chose a Tayloe detector for my design because they are (relatively) simple and perform very well with low loss, very good sensitivity and linearity. One of the main advantages of IQ sampling is that it can distinguish positive and negative frequencies, (signals which are above and below the local oscillator). For this reason I/Q mixers are sometimes called "image-rejecting" mixers.
You can use a single mixer, and sample the output directly using an ADC, but one downside of this approach is that it can't distinguish the positive and negative frequencies (they just get added together and can't be separated in software), so it might be susceptible to interference from adjacent channels.
To avoid interference, you need to filter out images in hardware before sampling with an ADC. Filtering image signals in hardware can be just as complex as IQ sampling, but it can perform better (e.g. in a superheterodyne receiver).
Simple direct conversion receivers, do work well for AM signals though, with AM signals, the positive and negative frequencies are the same, so you don't need to worry too much about them getting added together.
I love the simplicity of this! 73 de VK2AOE
Thanks :-) That's what I was aiming for!
Thanks!