Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X

Disk Jockey

A company called Diskology makes a great product called the Disk Jockey (“DJ”). I personally own two of these (one attached to my server at home, and another attached to my workstation.) This is a fantastic product, albeit with a few minor quirks that you should be aware of before using the device.

2014-09-28 16.05.45

In its simplest form, the DJ operates like any of your run-of-the-mill hard drive dock. Even better, it can function as a two disk dock. On the back are connectors for eSATA and USB, although I tend to prefer eSATA for performance reasons.

When the disk jockey is not plugged in to a computer, it operates as a stand-alone device that can perform a variety of functions: disk copying, wiping, and verification. For any of us who frequently need to duplicate disks, wipe disks, or verify that two disks are identical, these standalone functions are invaluable and a great time saver.

However, the greatest power of the DJ comes from its drive combining options. For example, you can connect two disks to the DJ in what it calls a ‘mirror’ or ‘combine’ volume. When you select one of these options, the DJ then presents itself to your workstation as a logical volume. In the case of a ‘mirror’, it’s a bit like RAID1, and in ‘combine’, it’s a little like RAID0. However, it’s important to realize that the DJ’s ‘mirror’ and ‘combine’ modes are different from traditional RAID.

Mirror: In a traditional RAID1 mirror, the controller has a way to verify the consistency of the volume. That is to say, if you connect two drives in a RAID1, write some data, then remove one drive and replace it with another, it will realize a drive is inconsistent and begin matching up the drives to be consistent with one another. The DJ’s ‘mirror’ mode works differently: any writes go to both drives, but any reads only come from the disk connected to the ‘source’ side of the DJ.

This is an important distinction, because if you manage to connect the wrong disk to the ‘destination’ side of the DJ, it won’t realize that there’s a mismatch and then will blindly overwrite the data there.

We can test this by connecting two disks to the DJ in ‘mirror’ mode and writing a sequence of entirely null bytes to the volume. Examining the disks individually will show that both disks are full of nothing but null bytes. Now, connect one disk of the pair and overwrite the entire disk with hex 0x01. After, reconnect the pair, but keep the disk overwritten on the ‘destination’ side. Write hex 0xFF bytes to the first 512 bytes.

Examining the disks individually will show that both drives indeed have 512 bytes worth of 0xFF at the top. But the first disk will have 0x00 for the remainder, while the second will have 0x01. There is no consistency checking on the DJ.

Combine: This mode of the DJ operates like RAID0, except again, without consistency checking. Thus, it’s easy to accidentally swap the two drives, and the DJ will happily create a stripe without checking that the drives are connected backwards. This isn’t as fatal as in the ‘mirror’ scenario, but can be if the user continues with some kind of write operation.

So long as you’re aware of these quirks, the DJ is an excellent device of superb quality. The mirrored mode is especially useful as part of a on-site/off-site backup strategy. Its standalone functions are great time savers. The eSATA connectivity ensures fast transfer speeds, too. This device is well worth the money.

Backups

Everyone knows that they should take backups of their digital media. It also seems that everyone knows that everyone else rarely does so. As human beings, we tend to get a little sloppy about things that aren’t strictly necessary or of an immediate need.

Jamie Zawinski has a pretty good article about backups here, and you should read it.

Of course, everyone’s situation is different. I have a large RAID array (24TB), which meant deploying a single external disk for a backup wasn’t possible. I also tend to be a little extra paranoid about my data, so I had the following requirements:

  • Physically Redundant Storage: A copy of the backup must reside in two physical locations, so that if one burns to the ground, all of the data is safe at another.
  • Intensive Integrity Checking: It’s not good enough to just let a backup disk sit spinning and then write the changes to it. There must be a way to frequently check all of the data on the backup disk to ensure that it’s still a good backup when the time comes.
  • Ease of Use: An automated process that will begin backups automatically, without supervision, and then report backup success or failure after.

Problem #1: Physically Redundant Storage

A company called Diskology makes a great product called the Disk Jockey (“DJ”). The DJ allows you to connect two SATA disks to it to make quick on-the-fly disk mirrors, stripes, and also serves as a basic SATA disk dock as well. The version I picked up has USB and eSATA connectors. In the case of backups, I connect two disks of equal size to the DJ, select “mirror” mode, and then the DJ appears to the OS as a single disk. (For example, if there are two 2TB disks connected to the DJ, it shows up as one 2TB disk to the OS in “mirror” mode.)

Whatever writes you make to the DJ will be written to both disks in mirrored mode. Whatever reads you do from the DJ will be read from one. This has some interesting implications that you should be aware of, and I talk about them in greater detail here.

The result of all of this is that I keep one disk off-site at work. I bring home one side of the disk mirror from work every day, then attach it to the DJ along with the other side of the mirror I keep at home. When going to work in the morning, I do the opposite.

Problem #2: Intensive Integrity Checking

The problem with most “set and forget” backup regimes is that you might need some obscure piece of data from the disk down the road, only to find that the section of the disk where that data is has long gone bad. You don’t know that it’s gone bad because you’ve never tried to read it (in the case of data that rarely changes.) The solution to this is to always read the entirety of your backup disk during every backup cycle, and then report failures immediately.

The default behaviour of rsync is to simply check the modification time and file size, and if there’s a match, it doesn’t read the file on the backup disk at all. Many other backup solutions operate in a similar fashion.

I chose to solve this problem by using rsync’s –checksum (-c) option. This forces rsync to read each and every file on both sides of the backup to compare whether it should be replaced on the backup disk or not. The downside is that this is very slow, so in my case, a backup run will typically take 12 hours or longer.

An alternative to this would be to simply blow away the backup volume, and then do a complete backup on every backup run. There’s a big problem with this approach, though: if something happens during the backup run, you have an incomplete backup. The checksumming method ensures that the data on the backup volume is never erased ahead of time.

Problem #3: Ease of Use

So the backup procedure I have is now very simple:

  • After work, I attach the drives to the DJ,
  • A backup script runs automatically overnight,
  • I detach the drives from the DJ, keep one at home, and bring one in to work.

The script does all of the heavy lifting. It splits my array into easily managable chunks. The backup script has a –info flag that allows me to quickly see the status of all of my backups:

   Last Backup                  Used Free UUID
M  Tue Sep  2 20:00:04 PDT 2014 1.3T  66G 18e61a61-6502-6510-8086-0065d1917f97
S  Wed Sep  3 20:00:05 PDT 2014 1.4T 487G 0cfdeff4-6502-6510-8086-145408f4e658
Tb Sun Sep  7 20:00:06 PDT 2014 2.4T 374G c54d93c9-6502-6510-8086-7395b84d22d7
Z  Mon Sep  8 18:00:04 PDT 2014 627G 291G 57df37aa-6502-6510-8086-a9ac378f85d5
Ta Tue Sep  9 18:00:04 PDT 2014 2.2T 519G 45ff4122-6502-6510-8086-cf0a1f0ea6d7
Y  Tue Sep 16 18:00:14 PDT 2014 1.6T 295G 385afa54-6502-6510-8086-82120fc9d546
G  Wed Sep 17 18:00:03 PDT 2014 1.6T 264G 44d010a8-6502-6510-8086-f1032299ef49
A  Mon Sep 22 18:00:04 PDT 2014 1.5T 393G 08ece419-6502-6510-8086-59d4cb0e617c

The backup runs every day at 6:00pm (formerly 8:00pm – I had to push it back because the backup times were running too long for me to pick it up before work.) Regardless, I find that an hour between quitting time and backup start time is sufficient to connect the drives to the DJ. If I miss a backup day, it’s not such a big deal – you can see in this example, the oldest backup is about three weeks old.

Each letter to the far left represents a logical collection of files on the array. The “T” series is so large that it needs to span two 3TB disk pairs. Each disk contains a simple ext4 volume so that if the worst happens, it’s as simple as mounting it on virtually any Linux rescue boot image, and doing a single “rsync” to get the contents back.

If something goes wrong with a backup, it will be flagged in the status display.

The downside to all of this is that it’s possible for data to go for a long time without a backup (in this example, eight pairs of backup disks means it will take two weeks’ worth of working days before wheeling around to the first disk pair again.) That’s a risk I’m willing to take.

Ultimately it’s up to you how you craft your backup solution, but they should generally all fit the same mold: redundant, stable, and easy to use.

Cassette Tape Preservation

A few months ago, my grandfather passed away. He was 88 years old, and had lived a long, happy, and fulfilling life – there were no regrets or sour feelings about his passing.

While his belongings were being sorted through, they happened upon this:

2014-08-17 11.00.59

I have no doubt that this kind of thing happens all the time when someone passes away. I can’t imagine the number of unknown or blank CD’s, VHS, cassette tapes, and all kinds of other media that must be discarded as garbage. Who knows what they contain? At some point, it was probably important to the person who kept it.

So, I decided to preserve this tape and listen to what was on it. The first step was to dig through my box of USB miscellanea and revive some old hardware:

2014-08-17 11.01.29

This is an Ion Tape Express. It’s more or less the size of a walkman, but connects to your computer via USB. There’s a C-Media audio-to-digital chip within the enclosure which helps to minimize how far the analog signal must go before it’s converted to digital. You can pick one of these up at Radio Shack for about $60, and they’re fully Linux compatible.

I have no doubts that a better analog-to-digital conversion could be done with both a high-end tape deck and analog-to-digital converter. But for household amateurs such as myself, the Ion Tape Express is a good intersection of price and space (after all, how many tapes do you convert in a year?) I have no interest in taking up a lot of space with high end audio gear that won’t get used all that often.

The conversion is as simple as pressing “play” on the Ion, and then record in your favourite audio editing/recording software. In my case, I decided to use Audacity.

2014-08-17-175030_631x287_scrot

In the end, only the first 30 minutes of the first side of the tape had content. I recorded all 90 minutes of the tape and preserved it as a 41khz .wav file. Ultimately, the tape contained nothing of real value, but disk storage is so cheap and dense that it doesn’t matter: I’ve now digitally preserved something of my grandfather’s that should last for all time so long as it’s stored and backed up correctly by those who come after me.

Image

Pirate Vietnamese Famicom Carts

Photo 2012-12-26 11 56 35 AM

It’s Christmas here in Vietnam, and look what Santa brought me: a selection of pirate famicom cartridges!

Stadium Gate Station

The BC pavilion at Expo ’86. Stadium Gate Station can be seen at the far end of the monorail track. Photo courtesy of Jerrye and Roy Klotz MD, licensed under Creative Commons.

The theme of the 1986 World Exposition in Vancouver was Transportation. Vancouver’s state of the art driverless, computer-driven SkyTrain mass transit system had just opened, showcasing the best in Canadian engineering talent. The expo grounds were filled with varying examples of transportation. Japan had its HSST high-speed rail system on display. Gondolas transported expo-goers high above from one podium to the next, giving breathtaking views of the expo grounds. Water ferries carried passengers across False Creek from one area of the expo to the next. The history of world transportation was chronicled at Expo ’86, from the steam engine to modern magnetic propulsion.

Monorail in service at Vancouver’s Expo ’86. Photo courtesy of Ian Alexander Martin, licensed under Creative Commons.

Most attractions were built as temporary features, and the Expo ’86 Monorail was no exception. Built as both an exhibit and method to transport expo-goers from one site to the other quickly, the monorail spanned the entire length of the expo grounds. Because of this, the monorail can be seen in the background of many Expo ’86 photos, and was fondly remembered by attendees. After the expo, the monorail was dismantled and sold to the Alton Towers amusement park in England.

When most people think of abandoned transit stations, they think of New York or London, with their maze of tracks and tunnels going back a hundred years. Most people attending an event or concert in the Plaza of Nations have no clue that an abandoned station is just over their shoulder, footsteps away.

A section of the monorail actually ran through several of the temporary buildings. One trio of temporary buildings, the Plaza of Nations, still stood as it did in 1986, a full twenty years after the expo was over. Few people will remember that Stadium Gate Station was a stop on the monorail route, and actually stopped within the Plaza of Nations building itself. In fact, rumours circulated the Vancouver Transit mailing list for some time about an ‘abandoned’ monorail station, so I decided to go for a walk around the Plaza of Nations to find it. In the photo to the left above, you can see the last remnants of the monorail track, held up by metalic, white pillars as it curves around.

Finding the station itself proved to be a bit of a challenge. I walked around all three buildings numerous times before spotting the telltale ‘U’ shape of a guideway where the rail would have gone. You can clearly see this, on the second floor of the building in the picture to the right. Gaining access was a simple matter of climing up a set of stairs (used as exit stairs while the station was active) that was only blocked off by a chain. As you can see from the photo, there is equipment all around, preparing for the building demolition.

Stepping into the station is like stepping back in time. It is amazingly free of graffiti and vandalism, thanks to its inconspicuous location. In fact, with a little cleanup and restoration, the station could be ready to resume full service the next day.

As you can see from the photo to the left, the station is surprisingly intact. The wooden slats along the roof are all in pristine condition, the station signs in excellent shape. The metal bars guide passengers to the individual train doors. Even the lights and speakers are still all intact. All that’s missing is the one solid rail down the middle of the guideway, and you’d have a perfectly functional station.

The exit markings are still in perfect condition, used to guide passengers out of the station. We get a good look down the center of the empty guideway. You can still see most of the intact multi-colored lights where the wooden slats end on the roof.

Unfortunately, this piece of history is now gone – it’s been demolished.  The Plaza of Nations, which housed Stadium Gate Station, was originally built as a temporary structure. It was supposed to be destroyed immediately after Expo ’86, along with the rest of the temporary structures. However, the Government of BC saw new possibilities in the use of the Plaza of Nations, so it (and Stadium Gate Station along with it) stood for over twenty years after the expo. Now, the only remaining remnant of the Expo ’86 Monorail is a short section where it passed through the opposite building.

Liechtenstein

01-Feldkirch_Hbf

I’ve always wanted to visit a micro-state. There’s just something neat about paying a visit to a truly sovereign country that is smaller than most cities. Liechtenstein is certainly no exception; it’s been settled in one form or another since the Roman days, and has been recognized as a sovereign country for longer than my home country of Canada has.

02-Feldkirch

So, Liechtenstein has always been on my list of ‘must visit’ countries, if only to say that I’ve set foot on the soil there. My original plan called for a train ride from Munich into the heart of Liechtenstein, a short two hour visit, and then back to Munich. But there was something that wasn’t glamorous enough about this plan. It needed something else.

03-Feldkirch_Soccer

After looking at a map of Liechtenstein, I decided that I could actually walk from one side of the country to the other. An Austrian “OEC” (express) train took me on a breathtaking trip through the Austrian alps from Innsbruck to Feldkirch. After a quick bite to eat at the Feldkirch train station (which turned out to be a very modern, clean facility,) I set off to walk the three kilometers within Feldkirch to the Liechtenstein border.

04-Border

The City of Feldkirch reminded me of the towns of Banff or Jasper in Alberta. It had that nice, high ‘alpine’ feel to it. The water was that ‘national park’ shade of green or blue. The weather was perfect for a hike across a whole country; it was about twelve degrees above and mostly sunny. As I continued to march along, the old European city gave way to a breathtaking view of the Rhine Valley.

05-Grenzuebergangsstelle

Along the way, you could see people doing all sorts of everyday things. A group of school kids playing soccer, someone walking out of a hardware store with the day’s project supplies, another person lights up a smoke and enjoys the great weather. In this photo, you can see the houses in Feldkirch, Austria in the foreground, and then houses in Schellenberg, Liechtenstein in the background. It also became increasingly clear why people would settle in this area: the Rhine Valley is completely walled in on practically all sides by the towering alps.

06-Schaanwald

The Principality of Liechtenstein is not a member of the European Union, nor has it implemented the Schengen Agreement which allows free movement of European citizens between sovereign countries. Because of this, there is still a checkpoint at the Liechtenstein-Austria border manned by Swiss guards.

07-FL_Countryside

I approached a guard house on foot, and engaged one of the Swiss border agents there. He didn’t seem to be too happy to see me. Whether that was because he was busy doing something else or because I was on foot is still up for debate. I asked the guard if he spoke English, to which he shook his head rapidly and said, “No.” I then frowned and said, “Do I need to show my passport?” The guard sighed and pointed at the desk, motioning that I should put my passport there. I did so, and he scanned it on some sort of imaging device (I presume, to check if I’m a wanted criminal, or something.) He then asked, “Where are you going?” I answered, “Liechtenstein.” That seemed to satisfy him, since he returned the passport and let me go on my way. (The photo to the right shows a sign marking the end of Austria. The word below it, “Grenzuebergangsstelle” means, “Border Crossing Point.”

08-FL_Countryside2

It was at that point that I crossed into the smallest doubly land-locked country in the world, a country with a population barely above the size of a large town or small city. Schaanwald was the first municipality on my trip across the country, a small border town set on a hill looking over the Rhine Valley. I noticed that gas in Liechtenstein was very expensive, almost two Swiss Francs per liter (more than $2.00 Canadian.) The license plates are a simple white on black prefixed with “FL” (Fürstentum Liechtenstein, or “Principality of Liechtenstein.”)

09-FL_Bus

The Liechtenstein countryside is simply a pleasure to hike through. There are multitudes of hiking and biking trails everywhere. The country capitalizes on its natural beauty extensively, promoting all kinds of outdoor activities. It’s almost a shame that I only had five hours to spend in Liechtenstein before I had to catch a train in Switzerland.

10-Schaan-Vaduz_Bf

I hiked through the small town of Schaanwald, and then the even smaller town of Nendeln. The houses and side streets gave way to a highway that wound its way down around the side of a mountain, into the Rhine Valley. Thanks to the great weather, there were a large number of bikes and motorcycles in attendance. The majority of vehicles on the road were from Liechtenstein, with a healthy minority from Austria, Switzerland, and Germany.

The Principality also has a fantastic transit system. It was great that I was walking from one end of the country to the other, but it would be very easy to catch a bus along the same route. In this photo, you can see the distinctive neon green ‘Liechtenstein Bus’ picking up a passenger across the street from one of the Hilti offices. (Hilti is the largest employer in all of Liechtenstein.) The bus starts in Feldkirch, Austria, goes across Liechtenstein, and ends in Buchs, Switzerland. Thus, this ordinary transit bus crosses two international borders many times in the course of a day.

It would have been a great honour to take the bus or train across Liechtenstein, but walking across made the whole journey more interesting. I eventually made it to the city of Schaan, just north of the capital of Vaduz. It was here where I originally intended to take a train. In this photo, you can see an Austrian train pulling in, stopping on its way to Feldkirch. The railway line that cuts across Liechtenstein (more or less following the same route I was hiking,) is owned by the Austrian railway company. Like the Liechtenstein Bus, several trains travel from Switzerland to Austria (and vice-versa) via Liechtenstein every day.

11-Rhine

The city of Schaan gave away to the countryside as I continued on, this time looking more like the Fraser Valley than anything else. It wasn’t much more of a walk before I came upon the bridge that crossed the Rhine, marking the western border of the Principality of Liechtenstein. In this photo, the land to the right is Liechtenstein, and to the left is Switzerland. I had crossed the whole width of the country in about two hours.

12-Schweiz

I also have to apologize for the poor quality of this photo, the sign demarcating the beginning of Switzerland. As you can see, the sun was already relatively low on the horizon, making it difficult for me to get a good shot of the demarcation sign and Swiss flag. There are no border controls on the Swiss-Liechtenstein border, since the Swiss guards check everything on the Austrian-Liechtenstein side.

13-FL_Bus_at_Border

From the bridge it was only a short walk over to Buchs, a town on the eastern border of Switzerland. At the point that I crossed into Switzerland, I had set foot on four separate countries in one day (Germany, Austria, Liechtenstein, and Switzerland.) The picture to the right looks back at the border from Switzerland (the little circular sign on the bridge marks the border,) with a Liechtenstein bus straddling the border in transit to Buchs, Switzerland. I looked back on the Principality one last time before continuing my journey to the Buchs Hauptbahnhof (Central Station,) to endure four more hours on the train back to Munich.

TinyTrak

A TinyTrak is a small APRS tracker available for puchase from Byonics. It interfaces with a GPS unit and is tiny enough to fit into a vehicle or carry with you while on a hike. These diverse little units are able to decode incoming serial data (be it from a computer or GPS device,) and then re-encode it into 1200 baud AFSK for broadcast on a radio. The power consumption is very low, making it ideal for environments where power may be limited.

I chose to have the TinyTrak sent to me unassembled. This saves $10 off of the base price and makes for a fun hour of assembly.

TinyTrak 3 awaiting assembly
TinyTrak 3 awaiting assembly

The assembly is not difficult, and in fact serves as a great project for those wishing to learn basic soldering skills. Byonics ships the TinyTrak with easy to follow assembly instructions.

All done!
All done!

The next step is to assemble a cable for your brand of radio. I decided to use it alongside my Kenwood TM-V7, since it normally does not have APRS capability. Later, I will interface it with a more rugged Motorola Maxtrac radio, which will be used soley for APRS. The TM-V7 utilizes a 6-pin Mini-DIN socket, exactly the same as a computer PS2 plug, to send and receive digital data. This makes it easy to sacrifice an old computer PS2 cable. You can see the cable plugged in to its socket on the left-hand side of the radio in the picture below.

The Maxtrac makes use of a 16-pin connector, similar to old floppy and IDE cables, but with fewer pins. Again, sacrificing an old floppy cable to create an interface for the TinyTrak is easy.

Kenwood TM-V7 w/ TinyTrak3 interface cable and Motorola Maxtrac
Kenwood TM-V7 w/ TinyTrak3 interface cable and Motorola Maxtrac

Surprisingly, the toughest part of this project was assembling the cable. I spent hours scouring the Internet for accurate interface diagrams before I realized that Byonics had great radio interface diagrams on their website. I wholeheartedly suggest that you look there for a diagram, first. You can click here to see what the diagram for the TM-V7 cable looks like.

TinyTrak3 in service
TinyTrak3 in service

After that, it’s a matter of plugging the TinyTrak into a computer to program it via the serial port. The software used to program the device runs on Win32, but fortunately there are lots of old Win32 machines lying around doing nothing. I configured the TinyTrak to beacon every 30 minutes while stationary, and every 60 seconds while on the move.

Building a J-Pole Antenna

jpole

A j-pole is a very inexpensive homebrew antenna that is quite easy to assemble from several pieces of half-inch copper pipe. There are countless articles on the Internet on how to assemble a j-pole, but this article will show you my first experience in assembling a home-built j-pole. Essentially, assembling a j-pole is more akin to a basic plumbing project than it is a radio project.

Please be aware of the hazards of assembling your own antenna. Tiny pieces of copper will be prevailant (during the cutting), the pipe will get extremely hot (while soldering the pieces together), and never touch an antenna while transmitting. Work in a well ventilated area so that you don’t inhale fumes from soldering.

First, it’s necessary to buy several lengths of half-inch copper pipe from your local hardware store. Depending on how good the store is, they may pre-cut the pipe into the lengths you need, or they may not. For a j-pole to work on the two meter band (144mhz to 148mhz in Canada,) you will need at least 230cm of copper pipe. Also obtain 2 end caps, 1 ninety degree ‘elbow’, and 1 ‘tee’ connector. These are all common plumbing parts.

Cut the copper into pieces following these exact measurements: 147.20cm for the radiating element, 48.84cm for the matching section (or ‘stub’), and 4.59cm for the center piece which will separate the radiating element and the stub. These measurements are based on a center operating frequency of 146mhz. If you need measurements for an alternate frequency, this site has a very useful j-pole measurement calculator.

I purchased a hacksaw to cut the copper into correct lenths. However, I learned that you can get a convenient copper pipe cutting tool that does the job in a fraction of the time (and costs a fraction of what a hacksaw costs.) The leftover pipe will be used to put at the bottom of the antenna, as a support pipe.

Next, sand the ends of the copper pipe with plumber’s sandpaper, which will help make the solder bind to the copper better. Fit the ends of the pipe together with end-caps on top of the radiating element and the stub. Fit the end of the radiating element into the top of the tee, the center section into the side of the tee, and the support pipe into the bottom. Take this time to measure the pipe from end to end again, as the measurement will affect the operating frequency.

Using a butane torch, heat up the tee connector (do not apply heat directly to the copper pipe itself — only to the connector) until it is hot enough to apply regular electrical solder. The solder should melt right into the joint upon contact, binding to the copper pipe and connector. I’ve been told not to use plumber’s solder, that regular electrical solder is best for this job. Do the same for soldering the matching section to the angle joint, and then again for the angle joint to the center piece. Allow the pieces to cool between soldering — copper retains heat for a long period of time.

After that, it’s a matter of attaching a connector to the matching section by way of soldering it. I used three different methods and connectors. Any method works well, but the easiest is to solder the wire directly on to the antenna. A more professional way to do it would be to solder a PL259 female connector to the matching section. The point of first contact for the wire or connector must be exactly 4.8cm up from the top edge of the piece of center pipe.

Soldering on connectors and wires was by far the most difficult part of assembly. Try to have a SWR meter handy to measure the RF power coming back down the transmission line. After some work, all four of my j-poles get 1.5:1 SWR or less from 144mhz through 148mhz.

My array of J-Poles
My array of J-Poles