Posts tagged with “timehat”

Inexpensive GNSS Signal Splitter

GNSS receivers, like many other tools and pieces of equipment, have a tendency to replicate. Every time you turn around, there's another friendly timekeeping and position finding device on your desk, ready and waiting for some coax with some fresh GNSS signals. Unfortunately, well positioned antennas do not replicate as quickly as receivers do, so you may end up with windowsills lined with puck antennas - or worse, receivers that aren't doing anything at all!

While you, like me, may be able to put one or two antennas in a location that gets excellent sky view (up on your roof or a tower, for instance) choosing which receiver gets to connect directly to it is not an easy decision to make. Thankfully, there is a piece of technology that makes this decision a bit easier. If you read the title of this post, you may know that I'm talking about GNSS signal splitters. These are handy and fairly simple devices that split one antenna signal into two or more, allowing you to connect multiple GNSS receivers to one well positioned antenna. This is especially useful if you want to directly compare the performance of multiple GNSS receivers, or if you want to one or more units active for use in a project or another task, while the other connections on the splitter can be available for fiddling around with.

GNSS splitters tend to be very expensive, hundreds of dollars or more, because their purchasers tend to be industrial or commercial such that cost is no object - this makes things tricky for the hobbyist. One less expensive option that exists is the Time Machines Corp. splitter, which they sell a four port version of for $80. I have one of these units in our basement, and can confirm that it does work very well. The 3D printed case may turn off some folks, though, and while $80 is a lot less expensive than $400, it is still by no means "cheap".

I put two GNSS antennas on the roof a few months ago, with one running to the basement (into the aforementioned splitter) and the other running to the office. The latter of the two had no splitter at all, but while I mostly used it to tinker with, not having the ability to split the signal wasn't a huge deal - initially. Now, of course, I do want that capability, so I have to figure out a solution. Quite a while ago I came across the idea to get a normal RF splitter, which can be had for much less than a GPS-specific splitter, and modify it to be a GNSS splitter. Since I had hit a point where I wanted to hang multiple receivers off of the line coming into the office, I needed another splitter. Not wanting to spend another $80 on a Time Machines Corp. splitter, I decided to poke around a bit more at the DIY route.

Before I go too much further, I should take a moment to explain the difference between an "RF splitter" and a "GNSS splitter". GNSS signals are, of course, RF, so this may be a differentiation that makes little sense - but there is one important difference. Many RF splitters on the market are actually RF splitter/combiners, which means they can be used for both receiving and transmitting. Their construction is usually fairly simple - one RF connector with its signals being divided amongst multiple other connectors (or, conversely, multiple connectors being combined into one, depending on how you look at it). Depending on their rated frequency range and power handling characteristics, their actual construction can be quite nuanced, but generally speaking you have inductors (either as discrete components or PCB traces) to provide filtering, and resistors, to keep the circuit balanced. What they often don't have, however, are DC blocking capacitors. The crucial component to turn a generic RF splitter into a GNSS splitter.

GNSS receivers, as the name implies, do not transmit RF - they only receive the data transmitted from GNSS satellites. Often, however, they do put DC voltage on the center conductor of the coax specifically to power the low noise amplifier contained within the GNSS antenna. This setup is not ubiquitous, but it is very common, especially with more modern GNSS receiver configurations. The signals transmitted by GNSS satellites are very low power, and as such it is very common to build a low noise amplifier, or LNA, directly onto the receiving antenna to help boost signals that might otherwise be drowned out by local interference, or that might be very low on horizon. These LNAs are often powered by 3 to 5v DC (sometimes as high as 12v) and they greatly increase the effectiveness of GNSS receivers. Some GNSS receivers have external circuitry for powering and monitoring these LNAs, and in some configurations the LNA is part of the receiver itself, rather than being part of the antenna. The power drawn by the LNA is very low, tens of milliamps on newer antennas, something discrete GNSS receivers can easily handle.

What GNSS receivers can not handle, however, is having other DC voltages pushed into them. I have read multiple accounts of individuals connecting a handful of GNSS receivers to a plain RF splitter only to have them all fail within a minute or two because their front ends were blown out by DC injected by their neighbors. In some receivers it is possible to disable this DC output in software, but you have to be very careful - outside DC coming in can still blow them out. This scenario is what differentiates RF splitters from GNSS splitters. This is what the DC blocking capacitors are for.

Capacitors are transparent to AC (RF) but will block DC in both directions - to a point, anyway. For the low voltages and amperages involved here, they are an excellent solution to the GNSS splitting problem. The typical configuration is as follows: one port along the splitter does not get a DC block fitted to it - this port is connected to the one receiver that will power the LNA in the antenna. The rest of the ports in the splitter have capacitors positioned in line with the incoming RF. The amplified signal coming down from the antenna's LNA to each of those ports is able to easily traverse the capacitors, but the DC voltage coming up from those receivers is stopped by them, preventing either the LNA or the other receivers' front ends from being overloaded. In some cases, a resistor to ground is needed between the receiver and the blocking capacitor in order to put some load on the LNA-powering circuit of the receiver. This is sometimes required because some receivers will declare a fault condition if they don't see any current being pulled by the antenna's LNA. A valid concern, but not particularly relevant in this case. The receivers that I have primarily tested and worked with can be configured to complain about this condition, but do not do so by default.

So now that you've made it this far, and you understand why these devices exist and what sets them apart from "normal" RF splitters, I'm going to explain what I actually did. As I mentioned above, I have been thinking about getting my hands on another splitter for a while now, and as such I would periodically check ebay for good options to work with. Last week I found a listing for a four-way Meca power splitter/combiner, 0.8-3GHz, listed at $0.99. A perfect candidate for this project. To my pleasant surprise, I won it for $1.25 - go figure. Even if you can't find one that cheap, I regularly see similar devices for sale for $30 or less. These are absolute "jellybean" components in the RF world and the secondhand market is absolutely rife with them.

When it arrived and I popped the lid, I was very pleased to see a very tidy device with an uncoated FR4 PCB and copper traces without solder mask, making the required modification very easy. My plan was to leave the leftmost connector as the "DC passthrough" connector, and then the three to the right would have the blocking capacitors fitted. The only reason for this decision was to match the layout of my other GNSS splitter - any of the four ports could be used as the bypass port.

The first step in the modification was to cut the trace between the second connector and the rest of the circuit. I achieved this, somewhat messily, with a small flatblade screwdriver. A very small dremel or similar tool might be cleaner, but since this was uncoated copper on bare FR4 it was very easy to remove. Use an ohmmeter to verify that the copper is completely removed.

The next step is to mount your DC blocking capacitor across the copper traces to reconnect it with the rest of the circuit. I used an 0805 10nF ceramic capacitor. Before you do the other two connectors, this is a good opportunity to test it out. Attach a GNSS receiver that you know outputs voltage for an LNA, and measure that voltage on the antenna connector. Measure for that voltage one the second connector - there shouldn't be any. If this is the case, connect a second receiver and verify that it works as expected.

On the other side, the procedure was slightly different. I removed the bottom-most resistor in the chain, then cut out the copper between the traces and the pads that ran to each connector. Again, verify that these traces are completely removed.

Next, I soldered in two more capacitors across each of the breaks.

At this point, test the rest of the connectors and verify their operation. I had four receivers going on this splitter and each reporting many SVs with an SNR of over 40.

Finally, no project is complete without a slightly off-center label.

This was a fun and easy project that cost me less than $10 all in. Even if I had to buy a splitter at $30 it would have been well worth it. There are a lot of ways you could implement something like this yourself, as there are many different designs of RF splitters out there, not to mention different blocking capacitor values to try, as well as adding bleed resistors to trick the LNA-power monitors into thinking they are doing something.

I hope you found this post beneficial or at least interesting, and I'd love to hear from you either way!

Antennas on the Roof

I have been into electronics my whole life, and radio most of it. I got my amateur radio license early in my 20s, and while I haven't been super active on the communication side of things, I do try and keep up with the technology. Sometime in the early 2010s, when it was discovered that cheap USB digital TV receivers could be used as wide band software defined radios, I dug hard into that. Listening in on ham bands, commercial and public safety traffic, pulling down weather satellite images, and decoding aircraft transponders, among other things.

I have always been into GPS as well, but only recently did I really dig into it for anything other than positioning. I knew that GPS-disciplined clocks existed, but always assumed that they were well beyond my scope.

Receiving and decoding aircraft transponder signals, ADS-B/MLAT has long since been one of my favorite applications of these USB SDRs due to its intersection of radios, aircraft, and GIS. The data coming out of ADS-B systems is very useful for working with real time GIS systems, but realistically, it's just plain cool.

The trick is that ADS-B transmits at 1090MHz, high enough frequency to get disrupted by pretty much anything - structures, trees, roofs, etc. On top of that, the signals broadcast from the aircraft aren't particularly powerful, so you really want a high gain antenna and a wide-band filter to cut out as much as you can. Thankfully, both of these things are generally available and neither are particularly expensive. The tricky part, as it figures, is getting the antenna up in the air.

In college, when I first got into this, I had lots of space and the airwaves were fairly quiet (rural area) so it worked well. The next place we lived I hung an antenna in the attic, and the performance was pretty rough - the place after that was the same. The apartment we lived in after that, we had a balcony on the third floor, so while it worked well, everything behind the antenna, or about 200º worth of azimuth, was entirely masked by the rest of the building.

Where we are now is pretty RF-quiet, and we have a house that's well suited for putting an antenna mast up, about 30ft off the ground. Not incredibly high, but high enough to get over the built environment and get a full sweep of coverage. So all there is to do is rig it up. Only putting up an ADS-B antenna would be a waste of a mast, though, so it's a good thing that over the past couple of years I've picked up GPS timekeeping as a hobby.

Most of the time, a decent GPS puck antenna hanging off a modern sensitive receiver will work just fine sitting on a windowsill. This is what I recommend for folks interested in running a TimeHat out of their home. I wanted to scale up from that for my own setup for a few reasons. First is simply because I have the means to - I already have a few high-gain reference/timing antennas with brackets, and I'm putting up the mast anyway - adding two reference antennas isn't going to cause any problems. Second, I want to use a few older receivers that really need a high gain signal: Trimble Thunderbolt and Copernicus II, True Position GPSDO, some older hopf gear, etc. All are capable and suitable pieces of equipment, but they are limited to 8 or 12 channels, GPS only, so a puck antenna in a windowsill often is only going to cut it for a few hours a day. Finally, I want to run these antennas into four or six way splitters, so I want as much gain coming out as possible.

mast setup

This is the completed setup. The only component I didn't already have was the standoff bracket for the ADS-B antenna. One reference antenna is directly on top of the mast, and the other is offset slightly just beneath it. This isn't a completely optimal situation, because the GPS antennas could possibly mask each other slightly, but this is really a non-issue. The issue is getting it up on the roof.

mast ground

I had that mast assembled and parked in the basement for a few months before putting it up. A combination of factors held up that step - timing, weather, and, of course, the actual "how" of getting the thing hauled up 30ft and mounted to the side of the house. In the photo above, all that is shown is the top of the mast. The mast itself is a six foot long piece of half inch steel tube, and on the bottom and about four feet up are two brackets that stand it off about six inches from the side of the house. The top bracket attaches to the peak of the roof, and the bottom one attaches to the top of the window frame.

I eventually decided on the tried and true fiberglass extension ladder for my method of going up. I looked into hiring help or renting a lift or something, but those options were prohibitively expensive. Renting a 32 foot ladder from home depot was only about $50, plus about $40 to buy a ladder stabilizer to offset it sufficiently from the side of the house, and of course provide some additional stability for me.

car ladder

Frankly one of the most difficult parts of the whole process was standing the ladder up against the side of the house. Between my wife and myself we managed, but it wasn't quick and easy. The ladder with the stabilizer was probably only about 70-80lbs, but when that's a 30-some foot lever swinging around in the air, things get interesting.

I didn't get any pictures of the mounting process when I was up there, but there's really not a whole lot to say. I wasn't entirely certain how I was going to actually get the mast up there with me. Initially I suppose I figured that I was going to carry it up with me, but after the first time going up the ladder it was clear that wasn't going to be a realistic option, simply due to the fact that it was too heavy and the mounting brackets would get caught on the rungs of the ladder. What I settled on, much more reasonably, was dropping a rope over the ladder stabilizer, tying it off on the mast (at the bottom and top, so it would come up straight), then climbing up to the top and pulling it up. There I could relatively easily brace it into position and drive in the lag bolts.

house ladder

There are three coaxial cables coming off, one GPS antenna is running down the front roof edge where it then drops down along the street power conduit, then pops into the basement, feeding the GPS receivers on the rack. The other GPS and ADS-B lines run into the eave vent and then drop through the ceiling right there into my office.

There's also a heavy bare copper wire (6ga, I think) clamped to the mast, running down the same path as the line going to the basement. Rather than going to the basement it's terminated as a proper grounding stake underneath our power meter.

house mast (Yes, I know a few siding shingles are missing up there, it's not a big deal.)

So, how does this setup perform? Well, it performs great. Satellite coverage for both antennas is incredible - there's a hole over the north pole, of course, but now that the antennas are up over the roof line there is great visibility to the south.

gpsd stats

ADS-B varies, of course, given the number of aircraft currently in the air. Coverage is impressive, however, most of Maine excluding the Portland area, and well into New Brunswick. The greatest range that I've seen so far has been about 200 miles, to an airliner at about 40,000ft over the Atlantic, off the coast of Massachusetts.

adsb stats

More TimeHats!

Back in April of this year, a renewed interest on the Time Nuts mailing list developed regarding my TimeHats. The first run of them back at the beginning of the year was fairly small, only 20 units, and only about 15 of them went to folks on the TimeNuts list. They developed a good reputation and I received some very positive public feedback - prompting more interest. I posted saying that I hadn't planned on making more than those initial 20, but that I hadn't yet developed a new revision, so if people were interested I could do another run of identical units, I just needed to know how many parts to order.

The interest ended up being more significant than I had anticipated. A lot more! To the tune of about 150 as it stands today. Due to the current global parts shortage I decided against taking any kind of pre-orders (though it would have helped financially) because I didn't know if I would run into any issues delivering units. At the moment I am waiting for the second big delivery of GPS receivers and antennas - 100 in total. I have already assembled, tested, and shipped about 50 units.

I took a number of pictures along the way as I have assembled them, so I wanted to post them here as a sort of "photo essay".

The first parts to arrive were the µSD cards, 70 of them.

Next up were the PCBs and RTC modules, as well as other little odds and ends like batteries, screws, standoffs, etc.

There's lots of processing that needs to be done, lots of intermediary steps. The holes in the PCBs are slightly too small for my M3 screws, so they have to be drilled out a big larger (I do this with stacks of boards, so it goes fairly quickly). The headers from both the RTC modules and GPS modules need to be removed, and in the case of the GPS modules, the holes must be clean and clear as they are re-used - in the case of the RTC modules we use the second header that is available.

Going with full-size 40 pin headers was a mistake, even though I got them very cheap. They took FOREVER to solder. The next go around I will use much smaller headers that only use the pins I need - in this case it's only a small handful clustered at the top.

Before the modules could be soldered onto their boards, they had to be tested, so I added two female headers to a PCB to make testing quick. A great thing about both of these modules is that they can be fully tested without rebooting the whole system, meaning testing is relatively fast.

Next, it was time to start assembling! This went pretty quickly.

And before long I had 97 boards waiting for GPS modules.

It took a while, but the GPS modules and antenna finally showed up! (And I'm still waiting for more.....)

Then they needed the same testing and processing as the RTCs did.

With both modules installed, proper testing could commence. This took a while.

But once completed, they got parked in the box and are ready to ship!

TimeHat ❤ Nokia FYGM

FYGM and TimeHat

For the past few monts GNSS-disciplined time servers have been taking up a large percentage of my hobby time. Building and distribuiting the TimeHat went very well, and it gave me a bit of extra capital to dig into a few things that I might not have been able to otherwise, like picking up some "real" GNSS timing modules! The unit I was most interested in was the Nokia FYGM, a GNSS timing receiver made to work with Nokia cell site equipment. The FYGM has a u-blox LEA-M8T, one of the better timing-focused u-blox modules available. Lots of people buy these (and other) timing modules from decomissioned cell sites through Chinese scrappers and recyclers just to harvest the receiver, but I wanted to keep them as "together" as possible.

Unlike typical hobbyist GNSS modules, the FYGM has a some extra hardware on it, namely an 8051 MCU. I have more information on this on the wiki, here, so I'll keep this short. To start, why not simply emancipate the M8T from this board? I have a few reasons:

  • I don't want to design a new carrier for the M8T
  • The original board has high quality power supplies for the M8T and active antenna
  • It also provides excellent antenna protection circuitry
  • The included aluminium case is really nice
  • The status LEDs (driven by the MCU) are useful
  • Once the board boots, it's not hard to get the MCU out of our way

That MCU, the 8051, started as being the biggest thorn in my side. Before I had one of these units in my hands all I had to go off of was ebay listing pictures and a couple of posts on the TimeNuts mailing list, but that was enough to get started. In addition to antenna input, the FYGM has one other connector - a 12 pin DIN amphenol-looking thing. Thankfully all of the FYGMs I have found for sale inclide a completed cable to mate with this (using an HDMI connector on the host device end, with CAT7 as the cable itself), otherwise this connector could be a real pain to deal with, becuase it's not an amphenol, or anything that seems to be generally available. Only 8 of the pins on this connector are used, Ground, DC in (taking anywhere from 12 to 35v), and then three RS422 differential pairs for Tx, Rx, and PPS. Two RS422 transceivers on the bottom of the module provide this signaling. My initial intention was to try and use these as-is, so I got some hardware to work with RS422 - more on that later.

Once I got an FYGM in my hands, I started tracing all of the connectors and headers. I was disappointed to learn that the RS422 transeivers' input does not come directly from the M8T, but rather it from the 8051. This meant that it probably wouldn't be spitting out UART signals directly from M8T, something that turned out to be true. On the bright side, the four pin connector adjacent to the M8T is, in fact, UART directly from the M8T, meaning that bypassing the 8051 seemed like a possibility, and it technically still is. The ten pin connector next ot the 8051 is a programming and debugging header for that device, so perhaps one day I can read its configuration out or even reprogram it to make it more useful to me. The more immediate use that header has is the exposed reset pin - dropping a jumper between it and ground causes the 8051 to not boot at all, so through the UART pins next to the M8T I can interface with it directly, and completely ignore the MCU. I didn't end up doing this though.


Well, to put it plainly, the engineers who developed this thing had some clue as to what they were doing - remember, this device is intended to be a highly precise GNSS time source for a clock in a cell site. If we can benefit from the work they put into developing this thing, why not? When the FYGM boots, the 8051 sends a number of strings to the M8T to put it into a configuration that makes it optimal for use in its intended purpose - which just happens to be the purpose I have for it! As far as I have been able to tell, once these strings are sent, the 8051 gets out of the way entirely, it simply takes UART from the M8T, process it, and spits it out over R422. Initially this was a disappointment, but... I don't need to use the RS422 - I can run the signals straight from that UART header to the host - and that's exactly what I ended up doing.

Early on I had started to design a Pi Hat with an HDMI port, a DC in jack for 12-35v, a 5v power supply for the Pi, and RS422 transeivers for the UART and PPS signals. As much as I like the aesthetic of this, it's just not reasonably feasible. Seeing as the UART from the M8T isn't connected directly to the RS422 transeiver on the FYGM, I would have to connect them directly with some bodge wires, but this means that the 8051 has to be taken out of the loop, and for the reasons described above, I don't want to do that anymore. What I ended up doing is pulling the pins out of the eight pin JST connector, everything but ground and DC in, and I am connecting to them directly to the UART signals out of the M8T. This also lets me do some sneaky stuff. It's kind of ugly, but it works well and allows me to continue to use the DIN connector which is solastic'd in place.


Again, this is ugly - but it works. If you look closely you can see the sneakyness... As you can probably tell from the picture at the top of this post, what I have done is cut the included cable down to about a foot and run it straight onto one of the TimeHat boards, feeding in Tx, Rx, and PPS just as the MAX-M8Q modules do. Power comes in through that barrel jack zip tied to the cable. If you look closetly, though, you'll see something going to the 5v pins of the TimeHat, what's up with that? Well, I spent a while think about how best to handle powering this whole mess, and I really liked the idea of integrating the Pi and FYGM as closely as possible. The UART header on the FYGM has a pin for 3v3 input, so I could power the M8T directly. The 8051 and active antenna circuits have their power power regulators though, these are fed from 6.3v coming from the main power supply on the board.

The Pi has no easy way to source 6.3v, but you know what? Turns out it will run just fine on 6.3v! I haven't spent much time at all studying the power front end on the Pi, so I just threw 6.3v on the 5v rail and sure enough, it works just fine! This may very well impact something in a negative light, but I'm just going to let it roll for now - I'll update if it causes any problems, but I don't suspect that it will. Basically, what I'm doing is feeing 16v into the FYGM's main power supply, then pulling the 6.3v back out and into the 5v rail on the Pi along with the other signals mentioned earlier. How much power is safe to sync from this 6.3v rail? Probably not a lot - but - keep in mind that I have the Pis that I use in this role configured for very low power consumption - no WiFi, no BT, no GPU, no USB devices, and the CPU is clocked down about as low as it can go. Using a kill-a-watt, I measured the whole setup to pull a whopping 1.9 watts from the wall, including all the power supply overhead.

What does this mean as far as time server performance is concerned? Well, I don't know yet. I haven't done much of that measuring yet. I just recently got my GNSS antenna splitter, so I can finally start to compare receivers using the same signal source, which is a step in the right direction. What really needs to happen next, before I can start seriously start making this measurements, is getting a GNSS antenna mounted up above the roof line. I have my mast built and brackets in place, all that's left is to actually attach it to the house - I'm still working on figuring that out, more to come shortly, I hope.

That said, even in my "less than optimal" configuration, things are looking good. The Pi here is a Pi2, and that is on purpose. Can pairing a less-than-optimal Pi with a really good GNSS receiver help? Who knows! Here's what the chronyc sources output looks like at the moment:

FYGM chronyc sources

And here's what cgps looks like:

FYGM cgps

The 0.35 TDOP is what really stands out here. This receiver's antenna is in the basement, sitting on the ledge of a casement window. Using a high-mounted helical antenna sticking out of a 2nd story window I have seen TDOP below 0.2, so I expect this to improve well beyond the capabilities of the Pi once I get it mounted on the side of the house.