A Full Stack GPS Receiver

The usual way of adding GPS capabilities to a project is grabbing an off-the-shelf GPS module, plugging it into a UART, and reading the stream of NMEA sentences coming out of a serial port. Depending on how much you spend on a GPS module, this is fine: the best modules out there start up quickly, and a lot of them recognize the logical AND in ITAR regulations.

For [Mike], grabbing an off-the-shelf module is out of the question. He’s building his own GPS receiver from the ground up using a bit of hardware and FPGA hacking. Already he’s getting good results, and he doesn’t have to futz around with those messy, ‘don’t build ballistic missiles’ laws.

The hardware for this build includes a Kiwi SDR ‘cape’ for the BeagleBone and a Digilent Nexus-2 FPGA board. The SDR board captures raw 1-bit samples taken at 16.268 MHz, and requires a full minute’s worth of data to be captured. That’s at least 120 Megabytes of data for the FPGA to sort through.

The software for this project first acquires the GPS signal by finding the approximate frequency and phase. The software then locks on to the carrier, figures out the phase, and receives the 50bps ‘NAV’ message that’s required to find a position solution for the antenna’s location. The first version of this software was exceptionally slow, taking over 6 hours to process 200 seconds of data. Now, [Mike] has improved the channel tracking code and made it 300 times faster. That’s real-time processing of GPS data, using commodity off-the-shelf hardware. All the software is available on the Gits, making this a project that can very easily be replicated by anyone. We would expect the US State Department or DOD to pay [Mike] a visit shortly.

Of course, this isn’t the first time someone has built a GPS receiver from scratch. A few years ago, less than 1-meter accuracy was possible with an FPGA and a homebrew RF board.

A Remotely Tuned Magnetic Loop Antenna

If you are a radio amateur, you may be familiar with the magnetic loop antenna. It’s different from most conventional wire antennas, taking the form of a tuned circuit with a very large single-turn coil and a tuning capacitor. Magnetic loops have the advantage of extreme selectivity and good directionality, but the danger of a high voltage induced across that tuning capacitor and the annoyance of needing to retune every time there is a frequency change.

[Oleg Borisov, RL5D] has a magnetic loop, and soon tired of the constant retuning. His solution is an elegant one, he’s made a remote retuning setup using a stepper motor, an Arduino, and a Bluetooth module (translated here). The stepper is connected to the capacitor via a short flexible coupling, and tuning is performed with the help of a custom Android app. We’d be interested to know what the effect of a high RF field is on these components, but he doesn’t report any problems so it must be working.

He’s posted a video of the unit in operation which we’ve posted below the break, if you’ve ever had to constantly retune a magnetic loop you will appreciate the convenience.

Continue reading “A Remotely Tuned Magnetic Loop Antenna”

Phase Modulation With An FPGA

There are two radio modulation schemes everyone should know. Amplitude modulation changes the amplitude — or ‘volume’, if you will — of a carrier frequency and turns all radio into channels owned and operated by a church. Frequency modulation changes the pitch of a carrier frequency and is completely run by Clear Channel. Amateur radio operators are familiar with dozens of other modulation schemes, but there’s one hardly anyone touches. Phase modulation is weird and almost unheard of, but that doesn’t mean you can’t implement it on an FPGA. [nckm] is transmitting audio using phase modulation on an FPGA (Russian, here’s the Google Translatrix).

This hardware is just an Altera MAX10 board, with a single input used for serial data of the audio to be transmitted, and two outputs, each connected to a few bits of wire for a quarter-wave antenna. No, there’s no output filter or anything else except for a few bits of wire. It’s an experiment, chillax.

The Verilog for this project receives an audio signal as serial data in mono, 22050 BPS, 8-bit unsigned samples. These samples are fed into a dynamic PLL with phase shift in the FPGA. Shifting the phases also changes the frequency, so [nckm] can receive this audio signal with the FM transmitter on his phone.

Is this really phase modulation if it’s being received by an FM radio? Eh, maybe. PM and FM are closely related, but certainly distinguishable as modulation schemes in their own right. You can grab [nckm]’s code over on the gits, or check out the video demo below.

Continue reading “Phase Modulation With An FPGA”

Simple Range Testing For LoRa Modules

WiFi and Bluetooth have their use cases, but both have certain demands on things like battery life and authentication that make them unsuitable for a lot of low-power use cases. They’re also quite limited in range. There are other standards out there more suitable for low-power and wide area work, and thankfully, LoRa is one of them. Having created some LoRa pagers, [Moser] decided to head out and test their range.

Now, we’ve done range tests before. Often this involves sending one party out with a radio while the other hangs back at base. Cellphones serve as a communications link while the two parties go back and forth, endlessly asking “Is it working now? Hang on, I’ll take a few steps back — what about now?”

It’s a painful way to do a range test. [Moser]’s method is much simpler; set a cellphone to log GPS position, and have the pager attempt to send the same data back to the base station. Then, go out for a drive, and compare the two traces. This method doesn’t just report straight range, either — it can be used to find good and bad spots for radio reception. It’s great when you live in an area full of radio obstructions where simple distance isn’t the only thing affecting your link.

Build details on the pagers are available, and you can learn more about LoRa here. While you’re at it, check out the LoRa tag for more cool builds and hacks.

Simple Scanner Finds The Best WiFi Signal

Want to know which way to point your WiFi antenna to get the best signal? It’s a guessing game for most of us, but a quick build of a scanning WiFi antenna using mostly off-the-shelf components could point you in the right direction.

With saturation WiFi coverage in most places these days, optimizing your signal might seem like a pointless exercise. And indeed it seems [shawnhymel] built this more for fun than for practical reasons. Still, we can see applications where a scanning Yagi-Uda antenna would come in handy. The build started with a “WiFi divining rod” [shawnhymel] created from a simple homebrew Yagi-Uda and an ESP8266 to display the received signal strength indication (RSSI) from a specific access point. Tired of manually moving the popsicle stick and paperclip antenna, he built a two-axis scanner to swing the antenna through a complete hemisphere.

The RSSI for each point is recorded, and when the scan is complete, the antenna swings back to the strongest point. Given the antenna’s less-than-perfect directionality — [shawnhymel] traded narrow beam width for gain — we imagine the “strongest point” is somewhat subjective, but with a better antenna this could be a handy tool for site surveys, automated radio direction finding, or just mapping the RF environment of your neighborhood.

Yagi-Uda antennas and WiFi are no strangers to each other, whether it be a WiFi sniper rifle or another recycling bin Yagi.  Of course this scanner isn’t limited to WiFi. Maybe scanning a lightweight Yagi for the 2-meter band would be a great way to lock onto the local Ham repeater.

Continue reading “Simple Scanner Finds The Best WiFi Signal”

Pi Network Attenuators: Impedance Matching For The Strong Of Signal

If you catch a grizzled old radio amateur propping up the bar in the small hours, you will probably receive the gravelly-voiced Wisdom of the Ancients on impedance matching, antenna tuners, and LC networks. Impedance at RF, you will learn, is a Dark Art, for which you need a lifetime of experience to master. And presumably a taste for bourbon and branch water, to preserve the noir aesthetic.

It’s not strictly true, of course, but it is the case that impedance matching at RF with an LC network can be something of a pain. You will calculate and simulate, but you will always find a host of other environmental factors getting in the way when it comes down to achieving a match. Much tweaking of values ensues, and probably a bit of estimating just how bad a particular voltage standing wave ratio (VSWR) can be for your circuit.

Continue reading “Pi Network Attenuators: Impedance Matching For The Strong Of Signal”

4.4 GHz Frequency Synthesis Made Easy

How hard is it to create a synthesizer to generate frequencies between 35 MHz to 4.4 GHz? [OpenTechLab] noticed a rash of boards based on the ADF4351 that could do just that priced at under $30. He decided to get one and try it out and you can find his video results below.

At that price point, he didn’t expect much from it, but he did want to experiment with it to see if he could use it as an inexpensive piece of test gear. The video is quite comprehensive (and weighs in at nearly an hour and a half). It covers not just the device from a software and output perspective but also talks about the theory behind these devices.  [OpenTechLab] even sniffed the USB connection to find the protocol used to talk to the device. He wasn’t overly impressed with the performance of the board but was happy enough with the results at the price and he plans to make some projects with it.

Continue reading “4.4 GHz Frequency Synthesis Made Easy”