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.

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.

Low-cost Drift Buoy Plies the Atlantic for Nearly a Year

Put a message in a bottle and toss it in the ocean, and if you’re very lucky, years later you might get a response. Drop a floating Arduino-fied buoy into the ocean and if you’ve engineered it well, it may send data back to you for even longer.

At least that’s what [Wayne] has learned since his MDBuoyProject went live with the launching of a DIY drift buoy last year. The BOM for the buoy reads like a page from the Adafruit website: Arduino Trinket, an RTC, GPS module, Iridium satellite modem, sensors, and a solar panel. Everything lives in a clear plastic dry box along with a can of desiccant and a LiPo battery.

The solar panel has a view through the case lid, and the buoy is kept upright by a long PVC boom on the bottom of the case. Two versions have been built and launched so far; alas, the Pacific buoy was lost shortly after it was launched. But the Atlantic buoy picked up the Gulf Stream and has been drifting slowly toward Europe since last summer, sending back telemetry. A future version aims to incorporate an Automatic Identification System (AIS) receiver, presumably to report the signals of AIS transponders on nearby ships as they pass.

We like the attention to detail as well as the low cost of this build. It’s a project that’s well within reach of a STEM program, akin to the many high-altitude DIY balloon projects we’ve featured before.

Continue reading “Low-cost Drift Buoy Plies the Atlantic for Nearly a Year”

Apparently Time IS Money

Some people like to tweak cars. Some like to overclock PCs. Then there are the guys like [Jack Zimmermann] who are obsessed with accurate time. He’s working on a project that will deploy NTP (Network Time Protocol) servers in different African countries and needed small, cheap, energy-efficient, and accurate servers. What he wound up with is a very accurate setup for around $200. Along the way, he built some custom hardware, and hacked a computer to sync to the GPS clock reference.

His original attempt was with a Raspberry Pi 3. However, the network adapter isn’t the fastest possible, both because it is 100 MBPS and, primarily, because it is connected via the USB bus. Network latency due to these limitations makes it difficult to serve accurate time.

His solution includes an Odroid C2. For $50 it is a very capable computer with four cores, gigabit Ethernet, and can even use eMMC storage which is faster than the usual SD card. You can still use a conventional SD card, though, if you prefer.

Continue reading “Apparently Time IS Money”

[Kwan]’s Clock Displays Seconds, and Thirds

We have no idea if the background story is true or not, but we’re not going to let something like “truth” get in the way of a good story. The way [Kwan3217] tells it, first there were hours on sundials. Then when these were divided into sixty minute sections, they were called “minutes”. “Seconds” comes from a second division by sixty, into “second minutes”. The “third” division into sixty would give a time unit that lasts a sixtieth of a second.

[Kwan3217] built a clock that displays these third minutes. Weighing in at just a tiny bit over 16.6666 milliseconds each, the thirds’ hand is going to be spinning pretty fast, so he used LEDs. And if you’re going to display thirds, you’ve got to get them right, so he backs the clock up with GPS. There’s a full video playlist about it, and phenomenal detail in the project logs. Continue reading “[Kwan]’s Clock Displays Seconds, and Thirds”

Where Are the Autonomous Lawnmowers?

It’s impossible to know when society began to manicure its front lawns. Truth be told — cutting the grass was, and still is a necessity. But keeping the weeds at bay, trimming, edging and so forth is not. Having a nice lawn has become a status symbol of modern suburbia all across the globe. When the aliens arrive, one of the first things they will surely notice is how nice our front lawns are. This feature of our civilization could have only been made possible with the advent of specialized grass-cutting machines.

reel mower
Reel Mower [Public Domain]
It could be argued that the very first lawnmowers were live stock. The problem was they were quite high maintenance devices and tended to provide a very uneven cut, which did not bode well for families striving for the nicest front lawn on the dirt road. Coupled with the foul odor of their byproducts, the animals became quite unpopular and were gradually moved out of site into the back yards. Other solutions were sought to maintain the prestigious front yard.

The first mechanical lawnmower was invented in 1830 by a man named Edwin Budding, no doubt in an effort to one-up his neighbor, who still employed a Scythe. Budding’s mower looked much like today’s classic reel mowers, where a rotating cylinder houses the blades and rotates as the mower is pushed forward. Budding was granted a patent for his device by England, much to the dismay of his fellow neighbors — most of whom were forced to buy Budding’s mower due to the fact that everyone else in the neighborhood bought one, even though they weren’t actually needed.

By the early 1930’s, the cold war started by Budding and his neighbor had spread to almost every front yard on earth, with no end in sight. Fast forward to the modern era and the lawn and garden market did 10 billion in sales in 2014 alone. Technological advances have given rise to highly advanced grass-munching machines. For smaller yards, most use push mowers powered by a single cylinder IC engine. Many come with cloth bags to collect the clippings, even though everyone secretly hates using them because they gradually fill and make the mower heavier and therefore more difficult to push. But our neighbors use them, so we have to too.  Larger yards require expensive riding mowers, many of which boast hydrostatic transmissions, which owners eagerly brag about at neighborhood get-togethers, even though they haven’t the slightest clue of what it actually is.

Us hackers are no different. We have front lawns just like everyone else. But unlike everyone else (including our neighbors) we have soldering irons. And we know how to use them. I propose we take a shot-across-the-bow and disrupt the neighborhood lawn war the same way Budding did 85 years ago. So break out your favorite microcontroller and let’s get to work!

Continue reading “Where Are the Autonomous Lawnmowers?”

Homemade Subaru Head Unit is Hidden Masterpiece

The Subaru BRZ (also produced for Toyota as the GT86) is a snappy sportster but [megahercas6]’s old US version had many navigation and entertainment system features which weren’t useful or wouldn’t work in his native Lithuania. He could have swapped out the built in screen for a large 4G Android tablet/phone, but there’s limited adventure in that. Instead, he went ahead and built his own homemade Navigation system by designing and integrating a whole bunch of hardware modules resulting in one “hack” of an upgrade.

The system is built around a Lenovo 4G phone-tablet running android and supporting GPS, GLONASS as well as the Chinese BeiDou satellite navigation systems. He removed the original daughter board handling the USB OTG connection on the tablet, and replaced it with his version so he could connect it to his external USB board via a flat ribbon cable. The USB board contains a Cypress 4-port USB hub. One port is used as the USB HID device to allow external buttons for system control — Power, Volume Up/Down, Fwd/Rev, Play/Pause, and Phone Answer/Hangup. The second port is used as a regular USB input to allow connecting external devices such as flash drives. The third one goes to a reversing camera while the fourth port goes to a USB DAC.

The USB DAC is another hardware board by itself and also includes a Bluetooth module which integrates his phone’s audio and control functions with the on-board system. There’s also an audio mixer which allows him to use the phone audio without having to miss out on the navigation prompts from the tablet. Both boards also contain several peripheral circuits such as amplifiers and DC power supplies. Audio to the speakers is routed through six LM3886 based power amplifier boards. And the GPS module receives its own special low-noise amplifier board to ensure extremely strong reception at all times. That’s a total of ten boards custom built for this project. He’s also managed to source all the original harness connectors so his system is literally a snap in replacement. The final assembly looks pretty dashing.

For some strange reason, the Lenovo tablet uses 4.35V as the ‘fully charged” value for its LiPo instead of the more common 4.20V, so even with the whole system connected to a hefty 12V lead acid battery from which he’s deriving the 4.20V charging voltage for the tablet, it still complains about “low battery” — and he’s looking for advice on how he can resolve that issue short of blowing up the LiPo by using the higher charge voltage. Besides that, he’s (obviously a kickass) hardware designer and a little bit rusty on the software and programming side of things, for which he’s looking for inputs from the community. His introductory video is almost 30 minutes long, but the shorter demo video after the break shows the system after installation in his car. He’s posted all of his Altium hardware source files on the project page, but until he shares PDF versions, it would be difficult for most of us to look at his work.

Continue reading “Homemade Subaru Head Unit is Hidden Masterpiece”