I've been experimenting trying to use the propeller as a software defined radio (SDR) when I ran across this forum (thanks to Phil).
I've been having some success demodulating signals in the 160 meter ham band (1800 to 2000 Khz).
At the top of the band (2000 Khz) USB is a commercial station, NY Aviation Weather. I am NOT close to this station and can only hear it at night, so this is NOT a particularly strong signal.
I am using an MRF-102 preamp that I use with my other SDR setups. This is the first attempt at demodulating SSB using the propeller...
I've done practically nothing to the code other than select the frequencies !!!
=====
User-selectable settings.
SAMPRATE = 8000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 2000_000 'Local oscillator I & Q frequency.
OUTPUT = UPPER 'Channel selection for output.
=====
Sampling rate for the filter was experimentally determined to sound best around 8000.
Right now I'm listening to a group on 1945 Khz LSB
=====
User-selectable settings.
SAMPRATE = 8000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 1945_000 'Local oscillator I & Q frequency.
OUTPUT = LOWER 'Channel selection for output.
=====
Keep in mind I do have a resonate full size 160 meter dipole on the system that I also use for transmit. I am able to hear and demodulate signals right down to the atmospheric noise floor. Most of the success is due the antenna and input filtering.
I am noticing the bias on the input pin doesn't seem right for best sensitivity. I notice that when I change ADCOUT to a pin that is NOT hooked to the feedback resistor, then reload the prop, the sensitivity slowly comes up by 20 db or so as the input coupling capacitor charge changes then the signal starts to clip, then fades out (due to lack of feedback regulating the bias point). I''m trying various bias pot arrangements to adjust the amount of feedback with the hope of trying to stabilize the circuit at the more sensitive point.
I've been on the forum for YEARS but up till now have had nothing to say or report...
Attached is a zip file containing an MP3 file which demonstrates the issue of altering the bias on the input pin 'ADCIN '.
The first part of the recording starts out with ADCOUT configured in the normal fashion (connected to the feedback resistor).
While the recording is running I changed ADCOUT to a pin that is NOT hooked to the feedback resistor. This allowed the input bias to drift.
Much to my surprise the gain slowly came up by approx. 20 db and the distortion on the signal went away. The signal eventually reached the clipping point then faded out as the input pin bias got to the point where it cut off the signal.
When cutoff occurred I changed ADCOUT back to the pin hooked to the feedback resistor and the signal returned to normal and so did the slight distortion on the signal.
The signals in the recording are approx. a 1000 miles from me so these are NOT strong local signals...
A TREMENDOUS improvement in the system can be had if I can figure out a better way to bias this pin...
Hmm, interesting! Maybe try a higher-valued feedback resistor? That would improve sensitivity and gain, but keep the cap properly biased to minimize clipping.
Actually I had much better success with lower value feedback resistors, ~ 470k.
This gave me an idea as to what the problem was.
I've ALWAYS had issues with leakage between pins on the board I'm using. It's so bad that at times I can see the LED glowing on an adjacent pin when one of the neighboring pins is high. It's always been this way. Since the day I got the board. It's almost like it was a defective board but when I first got it I was new to the prop and wasn't sure if this was normal or not. Now I know it isn't.
Anyway, to make a long story short, I tried another board and the problem isn't there. Then went back to the board with the problem as I had an idea what might correct the issue.
I was using pin 3 for ADCIN and pin 4 for ADCOUT and I remember having issues like this before with this particular board.
I switched ADCOUT to pin 5 to get it away from pin 3. That helped. Then I had another idea. I programmed pin 4 so it was always low and that solved the problem.
Keep in mind this is an issue with this particular board. It has excessive leakage between everything, almost like it was not completely etched. It behaves like it's water soaked and has high resistance bridges between everything. Most people will not have this problem, but just in case they do, they might benefit by my experience. I bought it many years ago and I'm not sure if Parallax was having some quality control issues back then or what.
Now that I have the input pin working properly, here's a new recording of NY Aviation Weather on 2000 Khs USB, and while the recorder is running I reprogram for 1945 LSB, then back to 2000 Khz USB.
I made the recording a bit longer this time to demonstrate the quality and sensitivity that I am getting.
Parameters for this recording:
=====
'User-selectable settings.
SAMPRATE = 10000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 2000_000 'Local oscillator I & Q frequency.
OUTPUT = UPPER 'Channel selection for output.
=====
and
=====
'User-selectable settings.
SAMPRATE = 10000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 1945_000 'Local oscillator I & Q frequency.
OUTPUT = LOWER 'Channel selection for output.
=====
I now have an SDR receiver using the prop that is every bit as good any of my other sdr systems and probably every bit as good as my $1000+ communications receiver....
I switched ADCOUT to pin 5 to get it away from pin 3. That helped. Then I had another idea. I programmed pin 4 so it was always low and that solved the problem.
You may want to force pin 2 & 6 low also on that board.
I suspect the Prop itself may have been damaged at some point and is now leaky.
You could try a thoroughly clean the board in a "dishwasher" to get rid of the crud.
And a final rinse in 92% isopropal alcohol then drying to remove the water.
I don't wish to take this thread off topic, but here's the scoop on the board.
When I first got the board it came preloaded with a program that flashed the row of LED's on the board. I noticed that the LED's adjacent to the one that was turned on were glowing dimly. At first I thought this was an optical issue with light being couple from one LED to the next one but after examining the LED's under a small microscope and using a voltmeter I determined it was an electrical problem.
Like you, I assumed washing the board might improve the problem so I did the alcohol wash. It did nothing.
Next I left the board outside to bake in the sun. That REALLY helped but did not eliminate the issue. I tried several more bakes in the sun which also helped but never completely eliminated the problem. However, the board was now working good enough for normal logic level experiments. However, using a high value resistor for feedback (like the A/D input to this project) is when the leakage issue really comes to light.
It wasn't until last night when I accidentally grabbed this same board for the SDR experiment that I remembered the leakage problem and I remembered the way I handled it before.
I wrote a small loop that set every pin as an output and programmed it low. After that only the pins needed for the task at hand were reprogrammed as needed.
I added that to the front of the SDR code and that completely fixed the problem. So pins 2 & 6 (as well as every other UN-needed pin are also low).
To anyone reading this, a normal propeller board does NOT have this problem. So this is something most of you will never have to deal with and I don't have the problem with any other propeller board. It's only this particular board and it seems to affect everything on the board...
Due to my success with the 160 meter SDR project (I also have it transmitting, but CW only at present) I probably should start a seperate thread devoted to that project. This morning, 160 meters is dead (as usual) so I tried running the code on 40 meters (7 Mhz) and it's working as well on that band as it does on 160 meters (1.8 to 2.0 Mhz) so this may turn into a multi-band ham rig!!!
I did some weak signal tests this morning and the prop is hearing signals right down to atmospheric noise, same as my $1000+ communications receiver...
I want to thank Phil for providing the missing pieces. I had been working on the project off and on for several years but never was able to put all the pieces together until now.
I don't wish to take this thread off topic, but here's the scoop on the board.
When I first got the board it came preloaded with a program that flashed the row of LED's on the board. I noticed that the LED's adjacent to the one that was turned on were glowing dimly. At first I thought this was an optical issue with light being couple from one LED to the next one but after examining the LED's under a small microscope and using a voltmeter I determined it was an electrical problem.
Are you using the Propeller Demo Board? If you look at the schematic, you will see the pairs of pins from P16 to P23 are tied together with resistors for the VGA 2-bit DACs, so what you are seeing as "leakage", is normal.
I was searching for this and looks exactly what I need!! Thank you Phil!!
I just need to sum 250Hz to a 50Hz-3000 Khz spectrum with one board, creating a 300Hz-3250Hz spectrum, then do the reverse with other board ( minus 250Hz) , recovering the original range.(just for voice)
Comments
I've been having some success demodulating signals in the 160 meter ham band (1800 to 2000 Khz).
At the top of the band (2000 Khz) USB is a commercial station, NY Aviation Weather. I am NOT close to this station and can only hear it at night, so this is NOT a particularly strong signal.
I am using an MRF-102 preamp that I use with my other SDR setups. This is the first attempt at demodulating SSB using the propeller...
'Sounds good! Can you provide more details about your setup, including a schematic for the preamp, and maybe the code that you finally used?
And, BTW, welcome to the Parallax forum!
Thanks,
-Phil
=====
User-selectable settings.
SAMPRATE = 8000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 2000_000 'Local oscillator I & Q frequency.
OUTPUT = UPPER 'Channel selection for output.
=====
Sampling rate for the filter was experimentally determined to sound best around 8000.
Right now I'm listening to a group on 1945 Khz LSB
=====
User-selectable settings.
SAMPRATE = 8000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 1945_000 'Local oscillator I & Q frequency.
OUTPUT = LOWER 'Channel selection for output.
=====
Keep in mind I do have a resonate full size 160 meter dipole on the system that I also use for transmit. I am able to hear and demodulate signals right down to the atmospheric noise floor. Most of the success is due the antenna and input filtering.
I am noticing the bias on the input pin doesn't seem right for best sensitivity. I notice that when I change ADCOUT to a pin that is NOT hooked to the feedback resistor, then reload the prop, the sensitivity slowly comes up by 20 db or so as the input coupling capacitor charge changes then the signal starts to clip, then fades out (due to lack of feedback regulating the bias point). I''m trying various bias pot arrangements to adjust the amount of feedback with the hope of trying to stabilize the circuit at the more sensitive point.
I've been on the forum for YEARS but up till now have had nothing to say or report...
The first part of the recording starts out with ADCOUT configured in the normal fashion (connected to the feedback resistor).
While the recording is running I changed ADCOUT to a pin that is NOT hooked to the feedback resistor. This allowed the input bias to drift.
Much to my surprise the gain slowly came up by approx. 20 db and the distortion on the signal went away. The signal eventually reached the clipping point then faded out as the input pin bias got to the point where it cut off the signal.
When cutoff occurred I changed ADCOUT back to the pin hooked to the feedback resistor and the signal returned to normal and so did the slight distortion on the signal.
The signals in the recording are approx. a 1000 miles from me so these are NOT strong local signals...
A TREMENDOUS improvement in the system can be had if I can figure out a better way to bias this pin...
-Phil
This gave me an idea as to what the problem was.
I've ALWAYS had issues with leakage between pins on the board I'm using. It's so bad that at times I can see the LED glowing on an adjacent pin when one of the neighboring pins is high. It's always been this way. Since the day I got the board. It's almost like it was a defective board but when I first got it I was new to the prop and wasn't sure if this was normal or not. Now I know it isn't.
Anyway, to make a long story short, I tried another board and the problem isn't there. Then went back to the board with the problem as I had an idea what might correct the issue.
I was using pin 3 for ADCIN and pin 4 for ADCOUT and I remember having issues like this before with this particular board.
I switched ADCOUT to pin 5 to get it away from pin 3. That helped. Then I had another idea. I programmed pin 4 so it was always low and that solved the problem.
Keep in mind this is an issue with this particular board. It has excessive leakage between everything, almost like it was not completely etched. It behaves like it's water soaked and has high resistance bridges between everything. Most people will not have this problem, but just in case they do, they might benefit by my experience. I bought it many years ago and I'm not sure if Parallax was having some quality control issues back then or what.
Now that I have the input pin working properly, here's a new recording of NY Aviation Weather on 2000 Khs USB, and while the recorder is running I reprogram for 1945 LSB, then back to 2000 Khz USB.
I made the recording a bit longer this time to demonstrate the quality and sensitivity that I am getting.
Parameters for this recording:
=====
'User-selectable settings.
SAMPRATE = 10000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 2000_000 'Local oscillator I & Q frequency.
OUTPUT = UPPER 'Channel selection for output.
=====
and
=====
'User-selectable settings.
SAMPRATE = 10000 'Sampling rate for filter (should be submultiple of LOFREQ).
LOFREQ = 1945_000 'Local oscillator I & Q frequency.
OUTPUT = LOWER 'Channel selection for output.
=====
I now have an SDR receiver using the prop that is every bit as good any of my other sdr systems and probably every bit as good as my $1000+ communications receiver....
I suspect the Prop itself may have been damaged at some point and is now leaky.
You could try a thoroughly clean the board in a "dishwasher" to get rid of the crud.
And a final rinse in 92% isopropal alcohol then drying to remove the water.
Duane J
I don't wish to take this thread off topic, but here's the scoop on the board.
When I first got the board it came preloaded with a program that flashed the row of LED's on the board. I noticed that the LED's adjacent to the one that was turned on were glowing dimly. At first I thought this was an optical issue with light being couple from one LED to the next one but after examining the LED's under a small microscope and using a voltmeter I determined it was an electrical problem.
Like you, I assumed washing the board might improve the problem so I did the alcohol wash. It did nothing.
Next I left the board outside to bake in the sun. That REALLY helped but did not eliminate the issue. I tried several more bakes in the sun which also helped but never completely eliminated the problem. However, the board was now working good enough for normal logic level experiments. However, using a high value resistor for feedback (like the A/D input to this project) is when the leakage issue really comes to light.
It wasn't until last night when I accidentally grabbed this same board for the SDR experiment that I remembered the leakage problem and I remembered the way I handled it before.
I wrote a small loop that set every pin as an output and programmed it low. After that only the pins needed for the task at hand were reprogrammed as needed.
I added that to the front of the SDR code and that completely fixed the problem. So pins 2 & 6 (as well as every other UN-needed pin are also low).
To anyone reading this, a normal propeller board does NOT have this problem. So this is something most of you will never have to deal with and I don't have the problem with any other propeller board. It's only this particular board and it seems to affect everything on the board...
Due to my success with the 160 meter SDR project (I also have it transmitting, but CW only at present) I probably should start a seperate thread devoted to that project. This morning, 160 meters is dead (as usual) so I tried running the code on 40 meters (7 Mhz) and it's working as well on that band as it does on 160 meters (1.8 to 2.0 Mhz) so this may turn into a multi-band ham rig!!!
I did some weak signal tests this morning and the prop is hearing signals right down to atmospheric noise, same as my $1000+ communications receiver...
I want to thank Phil for providing the missing pieces. I had been working on the project off and on for several years but never was able to put all the pieces together until now.
Are you using the Propeller Demo Board? If you look at the schematic, you will see the pairs of pins from P16 to P23 are tied together with resistors for the VGA 2-bit DACs, so what you are seeing as "leakage", is normal.
I just need to sum 250Hz to a 50Hz-3000 Khz spectrum with one board, creating a 300Hz-3250Hz spectrum, then do the reverse with other board ( minus 250Hz) , recovering the original range.(just for voice)
Do you think thats possible?