Akademisk Radioklubb


Author: LA9SSA (page 1 of 2)

Securing the antenna park for Ylva

Norway is often/sometimes plagued by fierce autumn/winter/spring/summer storms. Here in Trondheim, we’re usually well sheltered from the worst storms due to the city’s location within a fjord. This results in a rather tempered climate (as per Norway’s standards), with a mixture of mild rain, mild winds, mild snow and occasional sunlight being the norm throughout a normal hour in Trondheim. This is usually more of a concern for the frustrated inhabitants rather than a concern for our antennas on the roof of Studentersamfundet. Once a fierce storm actually hits Trondheim, however, the worries intensify.

Storms in Trondheim often coincide with the late fall. Shorter days and the leaves falling off the trees function as a pavlovian trigger for all former station masters of ARK to start waking up in a cold sweat every slightly windy night. According to previous station master LA5GKA, it takes approximately 4-5 years for a station master to stop worrying about the antennas at ARK when the wind speed increases. (This also has a weak correlation with the average time it takes for the average station master to get married and start producing children and get other concerns in his life. :-))

ARK has some experience with bad storms. In 1992, for example, we had “Nyttårsorkanen”, which bereaved ARK of our previous attempt at a satellite dish. During the recent years,  we’ve had the storms named “Dagmar” in 2011 and “Ivar” in 2013. Dagmar blew some of the elements of our VHF/UHF array off the roof, requiring us to do a major rebuilding of the entire array during 2012. This was not finished until early fall 2012, and the array was not fully operative until much later. (The array was later replaced by a brand new UHF/VHF-array in connection with a pre-project for LA3WUA’s master thesis at NTNU).

The previous UHF/VHF array during a rehaul in 2011. Maybe extra bitter that parts of it got blown down half a year later. Photo: LA2USA Espen Molven, from http://bilder.la1k.no/antennejobbing11.

With the long period during which the UHF/VHF array was QRT in mind, this naturally made us a bit nervous the next time a major storm hit Trondheim. We probably went a bit overboard with the antenna securing. For “Ivar” in 2013, for example, we secured all of our arrays with extra ropes. This was probably not necessary, ropes wouldn’t have saved the arrays from becoming destroyed, but they would at least have ensured that no arrays could fall off the roof and damage something/someone else. Our antennas survived, however. LA2T, the other local ham radio organization here in Trondheim, weren’t so lucky.

We have later taken a less nervous approach to antenna securing, but we always do measures if the wind reaches above 20 meters per second. The next major storm was going to be “Ylva” around the 23rd of November. The forecast said that the temperature would increase from -10 degrees Celcius to +10 degrees Celcius, and that the wind speeds would reach above 30 m/s. Our station master, LB5DH Henrik, therefore made the necessary preparations on Wednesday the same week.

Antennas aligned with the expected direction of the wind.

The HF array mast was winched down to its lowest position, and all array antennas were aligned with the expected wind direction, to lessen the impact of the wind and reduce any vibrations. The satellite dish was rotated in such a way that the wind load would be as little as possible, i.e. with the dish pointing straight upwards towards the sky.

There was also one extra problem with the satellite dish: The rotor pole had already gotten slightly bent.

Photo: LB5DH Henrik Dobbe Flemmen

With the experience with the previous satellite dish in 1992 in mind, we therefore were extra nervous, and were determined not to let the satellite dish be destroyed by the first and best storm, like what happened to the previous dish in 1992. We therefore made some special preparations for the satellite dish by securing it to its pole using straps.

Photo: LB5DH Henrik Dobbe Flemmen

Photo: LB5DH Henrik Dobbe Flemmen

In the end, it turned out that the northern parts of Norway got the worst parts of the storm, and that the winds in Trondheim were only slightly mild at best. We’re still on the guard, however, as always. Remote control over the antennas makes it more convenient to adjust for changing wind directions, and we’re also thinking to invest in a rotating webcam to better monitor the antennas.

Aligning the antennas with the wind speed to avoid vibrations and resonance effects, and doing regular maintenance to avoid loose bolts is probably our best bet for preparing for storms. While not exactly excited to see whether our precautions are enough, we still have mild optimistic feelings for the future and a vague hope that our antennas should survive to see another year.

Telefonitest 2017 QTH NUTS

Telefonitesten (Norwegian: the Telephony Test) is a Norwegian-only Ham Radio competition occurring every fall. ARK has a tradition of participating in this event, and we find it to be a very good introduction to contesting for new hams.

This year, we decided to try to participate in the contest at a different location than Samfundet in order to avoid being hindered by e.g. sound checks. Thanks to intense lobbying from LA3WUA, we were able to borrow the venues belonging to the local student satellite group, NUTS (NTNU Test Satellite) , at the NTNU campus at Gløshaugen.

NUTS seen from the outside.

NUTS has convenient direct access to the roof of the Department of Electronic Systems at NTNU, including a lift from the ground floor and straight into their venues on the fifth floor. We got the go-ahead after lunch on Friday, started packing at 17.30 NT and had our dipoles and rigs (including a rig and PA borrowed from LA1BFA) ready on the roof by 22:30 NT. Since it gets dark around 16.00 in the afternoon at this time of the year, we could not get any good pictures of the assembly and teardown.

Spiderbeam 15 m aluminium mast used as anchor point for 40 m and 80 m dipoles.

LB5DH, LB6RH and LA6XTA replacing a broken balun at the 40 m dipole.

NUTS 2 m / 70 cm ground station.

Low hanging 80 m dipole for Near Vertical Incidence Skywave (NVIS).

In addition to running the contest at a different location, we had a couple of operators down at Samfundet listening to the 40m and 80m bands using our IC-9100 rig and the Flex 6500 rig, and reporting new calls to the main operators at Gløshaugen. The Samfundet shack and the NUTS shack are fortunately less than 500 m apart (CQ WW rules).

LB5QG and LA6XTA working the receive stations during the third period.

LB5DH and LB5QG listening to QST-LA in the break between the second and third periods.

The operators at Gløshaugen could then focus on calling CQ, and conveniently pounce calls on the other bands that were searched for and spotted by the operators down at the listening stations. This was achieved by creating a privately hosted DX cluster.  ARK’s IRC channel was also diligently used in the coordination effort.

LA1BFA working 80 m in the first period.

LB6RH working 40 m in the first period.

LB5DH working 80 m in period three.

In the end, we got a total of 132 QSOs. While this might not seem like such a high number, the number of participants in this contest is limited (45 unique calls in our log). Success in the contest depends on whether all the participants of the contest can be run at all periods, and on all bands, or whether we are limited by the propagation conditions. Being able to get that single contact becomes important, as the margins are very small. It is imperative to both call CQ and search and pounce at the same time. Being unable to run the last period on Saturday due to sound checks at Samfundet has, for example, normally led us to hit the bottom charts of this contest.

Distribution of QSOs in the two bands run in this contest. The 40m conditions were rather low during the first two periods. Period 1 was on Saturday 13.00-15.00 UTC, while period 2 and 3 were on Sunday 07.00-09.00 UTC and 13.00-15.00 UTC, respectively.

Typically, single operators will switch between the 40m and 80m band after the first hour of the period. We never remember the order of the two. After looking at the plots above, we still don’t know the order of the two :-).

These plots also reveal some interesting facts about the propagation conditions during the contest. The main mode of propagation for 40m and 80m in Norway is NVIS (Near vertical incidence skywave). We chose to employ low-hanging dipoles at the NUTS site to get a high take-off angle. To reach the northern-most parts of Norway, F-layer propagation with lower take-off angle would be desirable, but since the population density is much higher in southern Norway, this was not our main focus.

NVIS propagation is highly impacted by the latitude and the number of sunspots. Since our latitude is high, and the number of sunspots currently is low, the maximum NVIS frequency is likely below 7 MHz during the most of the day. Luckily, as seen in the plots above, we got a small opening at the end of period two that lasted to about the middle of period three.

Beyond this, our theory is that the maximum usable frequency was too low for good 40 m conditions during the main bulk of the contest. From a operator’s perspective, the 40 m conditions during period three were quite interesting. The period started with great conditions on 40 m and lots of contacts. After an hour, the Norwegian calls became faint as the noise floor increased, and by the end of the period, we were suddenly able to hear only European stations. The increase in noise floor and European stations indicate that the D-layer started disappearing, and longer propagation paths via the F-layer started to become possible.

In addition to the plots above, we also looked up address information of the contacts from the Norwegian ham database, found the corresponding coordinates using geopy and plotted these on maps using cartopy. Maps for each period are shown below.

Thanks a lot to NUTS for loaning us their QTH! It was a pure pleasure being able to avoid the interference problems at Samfundet, and enjoy the view and atmosphere of their convenient and airy rooms from the top of Gløshaugen. Thanks to all the operators, thanks to LA1BFA for lending us his PA, rig and hours of his time both during rigging and running the contest, and thanks to the other participants of the contest. We are looking forward to the results.

More photos can be viewed at bilder.la1k.no/telefonitest2017/. This also includes some photos from the initial phase of an attempt at overhauling our 160m dipole, and the photographer going wild with the nice autumn weather.

Quick analysis of the LM100UKA logs using Python and Pandas

UKA-17 is over, and LM100UKA is no more. As a part of the series, “LA3WUA and LA9SSA discover that Python is actually quite nice” ([1], [2]),  we used this opportunity to experiment with some plotting of the contacts from the logs generated by our logging program, N1MM, using Python, Pandas and pyplot.

Pandas is a data analysis library which can make it more convenient to do data wrangling in Python. It is built on top of numpy, with all the efficiency and ease of manipulation which that entails. In addition, it has convenient data structures, capabilities for metadata, easy slicing, merging and grouping, and a whole clusterfuck of various operations that can be applied efficiently to rows or columns.

N1MM saves its logs as sqlite files by default, which constitute complete, file-based SQL databases. Pandas has convenient facilities for reading various input data, including SQL queries, and we’ll start from there.

Given an N1MM log file, e.g. qsos.s3db, an SQL connection can be established to this file using

import sqlite3

sql_connection = sqlite3.connect('qsos.s3db')

If this SQLite file contains ham radio logs generated by N1MM, it will contain a table called DXLOG. All of its information can then be read into a Pandas dataframe using

import pandas as pd

qso_data = pd.read_sql_query("SELECT * FROM DXLOG", sql_connection)

qso_data will now contain all the QSO information in a large data matrix, with each row containing a contact, and each column corresponding to a field in the SQL database table. We can, for example, extract all unique operators in the log using qso_data["Operator"].unique(), or qso_data.operator.unique(), or even numpy.unique(qso_data["Operator"]). We could extract all calls and timestamps run by LA1BFA using qso_data[qso_data.Operator == "LA1BFA"].[['Call',
, or all contacts run against LA-callsigns using qso_data[qso_data.CountryPrefix == 'LA'].

Using basic functionality, we were able to generate a few plots from this data.

The number of QSOs distributed across the days since we started using the callsign. The general level of activity is more or less equal before and after the start of UKA, with the most activity occurring during CQWWRTTY and a burst of activity at the very beginning.

The number of QSOs as a function of hour during the day (UTC). This distribution follows more or less what is expected from the distribution of people at ARK, with a post-work/post-study day frenzy at around 16.00 NT and after 18.00 NT (UTC time had an offset of -2 hours from Norwegian time during UKA).

The same plot as above, but split on the used band. “Day” and “night” bands (14.0 MHz and 7.0 MHz, respectively) can clearly be seen, along with spurious use of e.g. 10.0 MHz during the afternoon.

The distribution of QSOs among the various operators.

The distribution of operators during the building period and UKA itself. A variety of operators participated during the building period, while the start of UKA itself posed some difficulties in both avoiding  interference and being able to get into Samfundet due to stricter access regimes. Mainly LB5QG and  LB1HH kept going during this last phase.

The distribution of operators during the hours of the day. LB5QG has done a considerable effort in producing QSOs at all hours of the day.

World map with filled countries corresponding to the countries we have run. This also involved reading of a HTML table from the ITU website into a Pandas dataframe in order to convert from callsign prefix to country, made easy by pandas.read_html(..) :-). Here, we could also technically have used the ClubLog API to look up country information from the callsigns, but would probably put a bit of a strain on the servers if we were to do that for all calls in the log. Instead, we hacked together a solution using the official ITU allocation tables.

The script used in generating the above plots can be found at github. This is made to analyze all .s3db-files in a folder, and differs a bit from the code snipped shown in the beginning of this post.

Only our most recent, still-in-use logs are in .s3db-format, however, as we strive to convert to ADIF format or similar during the archival process. We’ll also look into what we can extract from the larger bulk of older logs.

Unified software rotor control over the local network

ARK has recently collected all rotor controllers on a single Raspberry Pi-device and made these available for software control from all Linux machines on the local network. We’ve also enabled rotor control from N1MM on Windows. This post outlines how we did it.

Continue reading

Introduction to the libpredict API

libpredict is an ANSI C library for predicting satellite orbits based on TLEs, developed by ARK. This was primarily developed for use in flyby, but can also be useful on its own. If you just want to track a satellite, flyby is usually a better choice, but if you want to go down to a deeper level and be able to apply satellite prediction to more advanced and complex usecases in a more flexible way, libpredict might be suitable.

The goal of libpredict was mainly to separate the satellite calculations from predict for use in its fork, flyby, and enable reuse of the API in other satellite applications. C implementation became a requirement due to the well-defined binary compatibility for C libraries and the use of C in both predict and flyby. While the core routines are in C, we will also at some point be providing high-level bindings for other languages like python. See also: Development of flyby and libpredict.

This post outlines in detail how libpredict can be used to track satellites in a programming language, and is long and technical and probably mostly for those with special interest in the topic. If life gets too frustrating and boring, you can scroll down to the plots and rest your eyes on colorful satellite tracks:-). An earlier post, Satellite tracking using flyby, gives a top-down motivation for why we are doing this at all and a more user-friendly approach to satellite tracking.

Continue reading

Older posts