I let WSPR run overnight on 40m, not a very good turnout at all, propagation must be down.
So it turns out, that just by changing a DLL file in SDR# and changing from Quadrature to Q Branch, you can get HF on a dongle without an upconverter or modifications to the hardware. And most surprising of all is it actually works ok. I do have some AM broadcast breakthrough and I will need to add in a Highpass filter to remove it, but other than that, it looks like it works quite ok.
So i bought an RTL-SDR dongle to play with. And after fighting with windows 10 to install the drivers and then fighting with the software to recognize the dongle I finally got it working and able to receive signals. Connected to a 40m dipole, its not really the best antenna to be receiving VHF and above, but after a few tests listening to a local 2m repeater, a bit of simplex from my HT on 2 and 70cm, i figured it was time to actually look for some signals to listen to.
So with SDR# running, I tuned into Brisbane Air Port air traffic control for a bit of a stickybeak to see whats going on. Also at the same time, I have started to play with screen recording software and video editing software with the plan to start making the odd youtube on what I am doing. Anywho, with all that in mind, I do have some plans for different things to do with the dongle. I have some bits and pieces in the mail already to add to this and well watch this space, more to come. Oh and the reason why i got this was to use it to learn how to use GNU Radio. That is the ultimate plan and to learn some things as we go about doing that.
Here is a little video from earlier:
I just want to say that soldering TSSOP at home packages sucks big fat balls. What a pain in the arse this has been. I spent lots of tine chasing out solder bridges. But they are done now and I guess i can start to use them. Oh and if you want to know what it is, its a compander, to be used to make an audio compressor for the uBitx, Bitx and the receiver I am building, and maybe ALC as well.
So for the receiver I am building I figured that some sort of filtering is going to be required in the audio stages. Not entirely sure yet on the final make up of things, but to start with I thought that I would design and evaluate a high pass filter to cut out the low frequencies as this is likely to be fixed weather i am receiving CW or SSB. Though for the low pass filter, i do want either variable bandwidth or select able widths. More on that later.
As with all filters more orders, more betters LOL. And so i jumped online to a calculator tool and quickly designed up a 3rd order Sallen-Key highpass with a cutoff of 350hz. The simulation looked reasonable so i then simulated it in LTSpice just to confirm things and check the OpAmp i had chosen was going to be ok.
Schematic of 3rd Order Sallen-Key Highpass Filter.
Simulation Bode Plot
Next the circuit was built on a solder-less breadboard, the OpAmp is an NE5532 and negative supply rail is an LM2662 Charge Pump. This gives the OpAmp plenty of room to swing when powered with + – 5v.
For the initial testing the OpAmp was fed with 1vpp 600hz sinewave.
Dumb people do dumb things and I spend 10mins wondering why I had 10x gain in a circuit that should have unity gain, then i noticed i had the scope probe on 1x not 10x where it usually lives. There is my 10x gain.
For final shits and gigles i busted out the bode plotter and swept the filter from 10hz to 5000hz to see just how it really looks, and other than a little noise down close to DC, which i think is just the frequency generator not liking being that low, the filter itself is pretty much as designed. -40db at 100hz should be good enough for the kinds of girls i go out with.
Next job will be to either add in a couple of low pass filters for typical CW and SSB filter widths or have a crack with switched capacitor lowpass filters and make it variable. Thats a job for another day.
I have been slowly and by slowly I mean very slowly working on the audio amp stage for a receiver that I am building. Its a slow effort as i try things, fail things and then finally decide on an actual plan. So, I was looking at using a TDA2822 in bridge mode as i have a bunch of those in my parts box here, but after building it and blowing a few up I figured stuff it, its time for a different tack.
Then i saw these on ebay, I have used the PAM8403 boards before but in a different configuration with a dual gang pot on there, they are class E, uber efficient and sound nice, so i figured fuck it, lets stop trying to make the parts count high and lets just use something that works. And yes these things work.
So i busted out the digital calipers and took a few measurements and knocked up a component for Sprint Layout and can now get to the next stage in the audio stage plan, compression, filtering, pre-amp and AGC. That is, if i do not get distracted by something else shiny and play with it for a while. 🙂
Universal Radio Case arrived in the mail today. Looks good and its heavy duty that is for sure. A big surprise is that it came with all the assorted hardware you might need, pots, jacks, sockets even a speaker and perspex LCD protector. This thing is the bomb and a beast.
You can buy these from Sunil a radio amateur in India and all round good guy at: https://amateurradiokits.in/
Rob’s Hot Sauce Recipe Ingredients:
- 1Kg chilli’s
- 3 red onions
- 2 bulbs of garlic
- a knob of ginger
- 2 cans of tomatos
- 5 tablespoons salt
- 1 cup sugar
- 1 1/2 cups of vinegar
These measures are only as a guide, i do it all to taste and sometimes you need more salt, sugar or vinegar.
Roughly chop everything and add to a pot with sugar and salt.
Add water to just cover everything and then bring to a boil, reduce and simmer for an hour or there abouts.
Blend the crap out of it in small batched and add in the tomatoes.
After blending pass through a strainer to remove any skins, seeds and other things that have died from chemical burns, add back to the pot, bring to boil and add in the vinegar until you get the sauce consistency you like and simmer till the tomatos are cooked. 30 mins or so. I like my sauce to be about the same as ketchup.
Bottle into clean and sterile jars while HOT. Its a good idea to use a funnel and asbestos hands aka gloves as its close to 100deg C still. Let cool and enjoy the crap out of it. Should keep for just about forever, but if it lasts much more than a couple of months you are just not trying hard enough.
Here is the code I used for the weather station that connects the wifi network, then to a mysql database to save data. I think most of it is self explanatory, change a few passwords and login details as well as the database and table names and it should be good to go.
sprintf(INSERT_SQL,”INSERT INTO weatherstation.SensorData VALUES ( ”, now(), now(), ‘%d’, ‘%d’, ‘%d’, ‘%d’, ‘%d’ )”,temp, humidity, pressure, heatindex, dewpoint);
This line might look a bit odd, 8 elements but only 5 variables, the first table element is a primary key that auto increments, the next 2, now() inserts the server data and server time followed by the 5 variables. These need to be in that exact order when you create the database table.
#include <Wire.h> // must be included here so that Arduino library object file references work
#define DHTPIN D7
#define DHTTYPE DHT22
/*Network and Database connections*/
const char* ssid = "WIFI NETWORK NAME";
const char* password = "WIFI PASSWORD";
char user = "DATABASE USER";
char pass = "DATABASE PASSWORD";
IPAddress server_addr(000, 000, 000, 000); //Database IP Address
DHT dht(DHTPIN, DHTTYPE); //init temp sensor
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
MySQL_Connection conn((Client *)&client);
char INSERT_SQL = "TEST";
int Rain = 0;
const long interval = 60000; // 60k miliseconds = 1 min
unsigned long previousMillis = 0;
dht.begin(); //start temp sensor
while (WiFi.status() != WL_CONNECTED)
delay(1000); // delay to allow time to conenct
while (conn.connect(server_addr, 3306, user, pass) != true)
delay(1000); // delay to allow time to connect
unsigned long currentMillis = millis(); //Do stuff here every 15 mins
if (currentMillis - previousMillis >= interval)
previousMillis = currentMillis;
dewpoint = temp - ((100 - humidity)/5.);
/* Get a new sensor event */
pressure = event.pressure;
humidity = dht.readHumidity();
temp = dht.readTemperature();
heatindex = dht.computeHeatIndex(temp, humidity, false);
MySQL_Cursor *sql = new MySQL_Cursor(&conn);
sprintf(INSERT_SQL,"INSERT INTO weatherstation.SensorData VALUES ( '', now(), now(), '%d', '%d', '%d', '%d', '%d' )",temp, humidity, pressure, heatindex, dewpoint);